16 */ |
16 */ |
17 |
17 |
18 #ifndef NMAPIDATAPLUGINFACTORY_H |
18 #ifndef NMAPIDATAPLUGINFACTORY_H |
19 #define NMAPIDATAPLUGINFACTORY_H |
19 #define NMAPIDATAPLUGINFACTORY_H |
20 |
20 |
21 |
21 #include <QList> |
22 #include "nmenginedef.h" |
|
23 |
22 |
24 class NmDataPluginInterface; |
23 class NmDataPluginInterface; |
25 class QDir; |
24 class QDir; |
26 class QPluginLoader; |
25 class QPluginLoader; |
|
26 class QObject; |
|
27 |
|
28 |
|
29 class NmId; |
27 |
30 |
28 /*! |
31 /*! |
29 \class NmDataPluginFactory |
32 \class NmApiDataPluginFactory |
30 \brief The class NmDataPluginFactory provides interface to create NmDataPluginInterface |
33 \brief The class NmApiDataPluginFactory provides interface to create NmDataPluginInterface |
31 instance. |
34 instance. |
32 */ |
35 */ |
33 class NmDataPluginFactory |
36 class NmApiDataPluginFactory |
34 { |
37 { |
35 public: |
38 public: |
36 static NmDataPluginFactory *instance(); |
39 static NmApiDataPluginFactory *instance(); |
37 static void releaseInstance(NmDataPluginFactory *&instance); |
40 static void releaseInstance(NmApiDataPluginFactory *&instance); |
38 NmDataPluginInterface *interfaceInstance(QObject *plugin); |
41 NmDataPluginInterface *interfaceInstance(); |
39 NmDataPluginInterface *interfaceInstance(NmId mailboxId); |
42 QObject *plugin(); |
40 QObject *pluginInstance(NmId mailboxId); |
43 |
41 QList<QObject*>* pluginInstances(); |
|
42 QObject *loadPlugin(const QDir &pluginDir, const QString& pluginName); |
|
43 private: |
44 private: |
44 NmDataPluginFactory(); |
45 NmApiDataPluginFactory(); |
45 virtual ~NmDataPluginFactory(); |
46 virtual ~NmApiDataPluginFactory(); |
46 static NmDataPluginFactory *mInstance; |
47 |
|
48 QObject *loadPlugin(); |
|
49 |
|
50 static NmApiDataPluginFactory *mInstance; |
47 static int mReferenceCount; |
51 static int mReferenceCount; |
48 static QList<QObject*> *mPluginArray; |
52 static QObject *mPlugin; |
49 static QList<QPluginLoader*> mPluginLoaderArray; |
53 static QPluginLoader *mPluginLoader; |
50 }; |
54 }; |
51 |
55 |
52 #endif /* NMDATAPLUGINFACTORY_H_ */ |
56 #endif /* NMAPIDATAPLUGINFACTORY_H */ |