11 #include <QWaitCondition>
12 #include <platform_global.h>
13 #include "memoryheap.h"
16 #define VREM_PLUGIN_INSTANCE(IMPLEMENTATION) \
18 static QPointer<IMPLEMENTATION> _instance; \
19 _instance = new IMPLEMENTATION; \
23 #define VREM_PLUGIN(PLUGIN, PLUGINCLASS) \
24 Q_PLUGIN_VERIFICATION_DATA \
25 Q_EXTERN_C Q_DECL_EXPORT \
26 const char * Q_STANDARD_CALL qt_plugin_query_verification_data() \
27 { return qt_plugin_verification_data; } \
28 Q_EXTERN_C Q_DECL_EXPORT QObject * Q_STANDARD_CALL qt_plugin_instance() \
29 VREM_PLUGIN_INSTANCE(PLUGINCLASS)
47 int numberOfInstances;
69 QMutexLocker jlock( & LoaderPluginLock);
70 return numberOfInstances;
73 #if QT_VERSION >= 0x050000
74 Q_PLUGIN_METADATA(IID
"Platform.PluginClass/1.0" )
86 virtual void preload(
int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses )
88 Q_UNUSED(InstanceName)
104 virtual void load(
int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses )
106 Q_UNUSED(InstanceName)
123 virtual void ReleaseInstance(
int UniqueID )
138 void Begin(
int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses);
145 void End(
int UniqueID);
148 void signal_UnloadUs(
int uniqueId);
150 void signal_load(
int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses );
151 void signal_unload(
int UniqueID);
154 void slot_load(
int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses);
155 void slot_unload(
int UniqueID);
157 void slot_UnLoadUsFromThread(
int uniqueId);
161 Q_DECLARE_INTERFACE (
PluginClass,
"Platform.PluginClass/1.0" );
The PluginClass class the base for all plugin.
Definition: pluginclass.h:41
int getNumberOfInstances(void)
returns the total number of times this plugin was loaded into menory
Definition: pluginclass.h:67
virtual void unload(int UniqueID)
unload called by the loader on close, it is in the plugin thread
Definition: pluginclass.h:118
virtual void load(int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses)
load called by the loader, it is in the thread of the plugin on init
Definition: pluginclass.h:104
virtual void preload(int UniqueID, QString InstanceName, QString pluginName, VremVArray Arguments, VremVArray Licenses)
preload called by the loader, it is in the main thread on init
Definition: pluginclass.h:86
QMutex LoaderPluginLock
locks the plugin for thread destruction and creation and addition
Definition: pluginclass.h:52
QWaitCondition rtnToEnd
Wait state for wake up.
Definition: pluginclass.h:55