![]() |
Carousel
|
The DirectoryComponentProvider uses to load custom components from the specified library path. More...
#include <DirectoryComponentProvider.h>
Inherits IDirectoryComponentProvider.
Public Member Functions | |
DirectoryComponentProvider (QObject *parent=nullptr) | |
DirectoryComponentProvider (const QString &path, QObject *parent=nullptr) | |
DirectoryComponentProvider (const QString &path, const QString &definitionExtension, QObject *parent=nullptr) | |
QList< IComponent * > | components () const |
const QString & | extension () const |
QDir::Filters | filters () const |
QDirIterator::IteratorFlags | flags () const |
bool | initialize () |
bool | isInitialized () const |
const QString & | path () const |
void | registerComponent (IComponent *component) |
void | setExtension (const QString &definitionExtension) |
void | setFilters (QDir::Filters filters) |
void | setFlags (QDirIterator::IteratorFlags flags) |
void | setPath (const QString &path) |
QList< IComponent * > | update () |
![]() | |
QObject (QObject *parent) | |
QObject (QObject *parent, const char *name) | |
bool | blockSignals (bool block) |
QObject * | child (const char *objName, const char *inheritsClass, bool recursiveSearch) const |
const QObjectList & | children () const |
const char * | className () const |
bool | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const |
void | deleteLater () |
void | destroyed (QObject *obj) |
bool | disconnect (const QObject *receiver, const char *method) |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) |
void | dumpObjectInfo () |
void | dumpObjectTree () |
QList< QByteArray > | dynamicPropertyNames () const |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
T | findChild (const QString &name) const |
QList< T > | findChildren (const QRegExp ®Exp) const |
QList< T > | findChildren (const QString &name) const |
bool | inherits (const char *className) const |
void | insertChild (QObject *object) |
void | installEventFilter (QObject *filterObj) |
bool | isA (const char *className) const |
bool | isWidgetType () const |
void | killTimer (int id) |
virtual const QMetaObject * | metaObject () const |
void | moveToThread (QThread *targetThread) |
const char * | name () const |
const char * | name (const char *defaultName) const |
QString | objectName () const |
QObject * | parent () const |
QVariant | property (const char *name) const |
void | removeChild (QObject *object) |
void | removeEventFilter (QObject *obj) |
void | setName (const char *name) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | signalsBlocked () const |
int | startTimer (int interval) |
QThread * | thread () const |
Protected Member Functions | |
virtual FileComponentProvider * | createFileComponentProvider (const QString &definitionPath) |
bool | onInitialize () |
![]() | |
bool | checkConnectArgs (const char *signal, const QObject *object, const char *method) |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const char *signal) |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const char *signal) |
int | receivers (const char *signal) const |
QObject * | sender () const |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *event) |
Additional Inherited Members | |
![]() | |
bool | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
bool | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
![]() | |
QByteArray | normalizeSignalSlot (const char *signalSlot) |
![]() | |
objectName | |
The DirectoryComponentProvider uses to load custom components from the specified library path.
DirectoryComponentProvider does not instantiate components from the shared libraries, it uses FileComponentProvider instead.
To export your component in shared library you have to define it:
and to export it in MyComponent.cpp file using macros EXPORT_COMPONENT:
You also should provide definition for the component:
XmlDefinitionParser will be used to read this meta-information, by which ProxyComponent should load the real component.
Then you should override BootloaderBase::createComponentProvider() to return DirectoryComponentProvider pointer or BootloaderBase::configureComponentProvider() to specify path for the library:
During boot loading sequence DirectoryComponentProvider will find all component definitions in the plugins/ directory and instantiate proxy components for them, which creates real components by demand.
|
virtual |
Gets the all components registered at the provider.
Implements IComponentProvider.
|
virtual |
Initializes the provider, which may load and validate the components. Returns true, if initialization was succesful; otherwise, returns false.
Implements IComponentProvider.
|
virtual |
Returns true, if provider alreadyinitialzied; otherwise, returns false.
Implements IComponentProvider.
|
virtual |
Registers the specified component at the provider. Usually, you can register the same components or components with same names using existing providers, but when components will be pushed to the IComponentManager from the providers - the last one doesn't allow duplicating components. Null pointers will be skipped.
Implements IComponentProvider.
|
virtual |
Sets the root directory path containing component definitions.
Implements IDirectoryComponentProvider.
|
virtual |
Sets the definition files extension "*.definition" is by default.
Implements IDirectoryComponentProvider.
|
virtual |
Sets the filters for searching files in the specified path.
QDir::NoDotAndDotDot | QDir::Readable are by default.
Implements IDirectoryComponentProvider.
|
virtual |
Sets the flag for iterating over files in the specified path.
QDirIterator::Subdirectories is by default.
Implements IDirectoryComponentProvider.
|
virtual |
Gets the directory path containing component definitions.
Implements IDirectoryComponentProvider.
|
virtual |
Gets the definition files extension.
Implements IDirectoryComponentProvider.
|
virtual |
Gets the filters for searching files in the specified path.
Implements IDirectoryComponentProvider.
|
virtual |
Gets the flag for iterating over files in the specified path.
Implements IDirectoryComponentProvider.
|
virtual |
Loads definitions from the specified root path and tries to create proxy the components from them if they have not created yet.
Returns list of the new discovered components.
Implements IDirectoryComponentProvider.
|
protected |
Initializes the provider and calls update() to load components.
|
protectedvirtual |
Creates a file provider to instantiate component from the definition.
Note that it takes ownership for the provider.