emailservices/nmclientapi/inc/nmapidatapluginfactory.h
changeset 23 2dc6caa42ec3
parent 18 578830873419
child 76 38bf5461e270
equal deleted inserted replaced
20:ecc8def7944a 23:2dc6caa42ec3
    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 */