KDECore
KLibFactory Class Reference
If you develop a library that is to be loaded dynamically at runtime, then you should return a pointer to your factory. More...
#include <klibloader.h>
Signals | |
void | objectCreated (QObject *obj) |
Public Member Functions | |
QObject * | create (QObject *parent=0, const char *name=0, const char *classname="QObject", const QStringList &args=QStringList()) |
KLibFactory (QObject *parent=0, const char *name=0) | |
virtual | ~KLibFactory () |
Protected Member Functions | |
virtual QObject * | createObject (QObject *parent=0, const char *name=0, const char *className="QObject", const QStringList &args=QStringList())=0 |
virtual void | virtual_hook (int id, void *data) |
Detailed Description
If you develop a library that is to be loaded dynamically at runtime, then you should return a pointer to your factory.The K_EXPORT_COMPONENT_FACTORY macro is provided for this purpose:
K_EXPORT_COMPONENT_FACTORY( libkspread, KSpreadFactory )
The first macro argument is the name of your library, the second specifies the name of your factory.
NOTE: you probably want to use KGenericFactory<PluginClassName> instead of writing your own factory.
In the constructor of your factory you should create an instance of KInstance like this:
s_global = new KInstance( "kspread" );
If you want to load a library, use KLibLoader. You can query KLibLoader directly for a pointer to the libraries factory by using the KLibLoader::factory() function.
The KLibFactory is used to create the components, the library has to offer. The factory of KSpread for example will create instances of KSpreadDoc, while the Konqueror factory will create KonqView widgets. All objects created by the factory must be derived from QObject, since QObject offers type safe casting.
KLibFactory is an abstract class. Reimplement the createObject() method to give it functionality.
Definition at line 333 of file klibloader.h.
Constructor & Destructor Documentation
KLibFactory::KLibFactory | ( | QObject * | parent = 0 , |
|
const char * | name = 0 | |||
) |
Create a new factory.
- Parameters:
-
parent the parent of the QObject, 0 for no parent name the name of the QObject, 0 for no name
Definition at line 71 of file klibloader.cpp.
KLibFactory::~KLibFactory | ( | ) | [virtual] |
Definition at line 76 of file klibloader.cpp.
Member Function Documentation
QObject * KLibFactory::create | ( | QObject * | parent = 0 , |
|
const char * | name = 0 , |
|||
const char * | classname = "QObject" , |
|||
const QStringList & | args = QStringList() | |||
) |
Creates a new object.
The returned object has to be derived from the requested classname.
It is valid behavior to create different kinds of objects depending on the requested classname
. For example a koffice library may usually return a pointer to KoDocument. But if asked for a "QWidget", it could create a wrapper widget, that encapsulates the Koffice specific features.
create() automatically emits a signal objectCreated to tell the library about its newly created object. This is very important for reference counting, and allows unloading the library automatically once all its objects have been destroyed.
- Parameters:
-
parent the parent of the QObject, 0 for no parent name the name of the QObject, 0 for no name classname the name of the class args a list of arguments
Definition at line 81 of file klibloader.cpp.
QObject * KLibFactory::createObject | ( | QObject * | parent = 0 , |
|
const char * | name = 0 , |
|||
const char * | className = "QObject" , |
|||
const QStringList & | args = QStringList() | |||
) | [protected, pure virtual] |
Creates a new object.
The returned object has to be derived from the requested classname.
It is valid behavior to create different kinds of objects depending on the requested className
. For example a koffice library may usually return a pointer to KoDocument. But if asked for a "QWidget", it could create a wrapper widget, that encapsulates the Koffice specific features.
This function is called by create()
- Parameters:
-
parent the parent of the QObject, 0 for no parent name the name of the QObject, 0 for no name className the name of the class args a list of arguments
Implemented in KGenericFactory< Product, ParentType >, KGenericFactory< KTypeList< Product, ProductListTail >, QObject >, and KGenericFactory< KTypeList< Product, ProductListTail >, KTypeList< ParentType, ParentTypeListTail > >.
Definition at line 90 of file klibloader.cpp.
void KLibFactory::objectCreated | ( | QObject * | obj | ) | [signal] |
void KLibFactory::virtual_hook | ( | int | id, | |
void * | data | |||
) | [protected, virtual] |
Definition at line 577 of file klibloader.cpp.
The documentation for this class was generated from the following files: