emailuis/nmailuiengine/src/nmdatapluginfactory.cpp
changeset 43 99bcbff212ad
parent 40 2c62ef3caffd
equal deleted inserted replaced
42:139d4b7b2938 43:99bcbff212ad
    36 /*!
    36 /*!
    37 
    37 
    38  */
    38  */
    39 NmDataPluginFactory::NmDataPluginFactory()
    39 NmDataPluginFactory::NmDataPluginFactory()
    40 {
    40 {
    41 
    41     NM_FUNCTION;
    42 }
    42 }
    43 
    43 
    44 /*!
    44 /*!
    45 
    45 
    46  */
    46  */
    47 NmDataPluginFactory::~NmDataPluginFactory()
    47 NmDataPluginFactory::~NmDataPluginFactory()
    48 {
    48 {
       
    49     NM_FUNCTION;
       
    50     
    49     if (mPluginArray) {
    51     if (mPluginArray) {
    50         qDeleteAll(mPluginArray->begin(), mPluginArray->end());
    52         qDeleteAll(mPluginArray->begin(), mPluginArray->end());
    51         mPluginArray->clear();
    53         mPluginArray->clear();
    52         delete mPluginArray;
    54         delete mPluginArray;
    53         mPluginArray = NULL;
    55         mPluginArray = NULL;
    60 /*!
    62 /*!
    61 
    63 
    62  */
    64  */
    63 NmDataPluginFactory *NmDataPluginFactory::instance()
    65 NmDataPluginFactory *NmDataPluginFactory::instance()
    64 {
    66 {
       
    67     NM_FUNCTION;
       
    68     
    65     if (!mInstance) {
    69     if (!mInstance) {
    66         mInstance = new NmDataPluginFactory();
    70         mInstance = new NmDataPluginFactory();
    67     }
    71     }
    68     mReferenceCount++;
    72     mReferenceCount++;
    69     return mInstance;
    73     return mInstance;
    72 /*!
    76 /*!
    73 
    77 
    74  */
    78  */
    75 void NmDataPluginFactory::releaseInstance(NmDataPluginFactory *&instance)
    79 void NmDataPluginFactory::releaseInstance(NmDataPluginFactory *&instance)
    76     {
    80     {
       
    81     NM_FUNCTION;
       
    82     
    77     //can't have passed out instances if we don't have any
    83     //can't have passed out instances if we don't have any
    78     if (mInstance) {
    84     if (mInstance) {
    79         if (instance == mInstance) {
    85         if (instance == mInstance) {
    80             instance = NULL;
    86             instance = NULL;
    81             mReferenceCount--;
    87             mReferenceCount--;
    90 /*!
    96 /*!
    91 
    97 
    92  */
    98  */
    93 NmDataPluginInterface *NmDataPluginFactory::interfaceInstance(QObject *plugin)
    99 NmDataPluginInterface *NmDataPluginFactory::interfaceInstance(QObject *plugin)
    94 {
   100 {
       
   101     NM_FUNCTION;
       
   102     
    95     NmDataPluginInterface *pluginInterface = NULL;
   103     NmDataPluginInterface *pluginInterface = NULL;
    96     if (plugin) {
   104     if (plugin) {
    97         pluginInterface= qobject_cast<NmDataPluginInterface*>(plugin);
   105         pluginInterface= qobject_cast<NmDataPluginInterface*>(plugin);
    98         }
   106         }
    99     return pluginInterface;
   107     return pluginInterface;
   102 /*!
   110 /*!
   103 
   111 
   104  */
   112  */
   105 NmDataPluginInterface *NmDataPluginFactory::interfaceInstance(NmId mailboxId)
   113 NmDataPluginInterface *NmDataPluginFactory::interfaceInstance(NmId mailboxId)
   106 {
   114 {
       
   115     NM_FUNCTION;
       
   116     
   107     return interfaceInstance(pluginInstance(mailboxId));
   117     return interfaceInstance(pluginInstance(mailboxId));
   108 }
   118 }
   109 
   119 
   110 /*!
   120 /*!
   111 
   121 
   112  */
   122  */
   113 NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(QObject *plugin)
   123 NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(QObject *plugin)
   114 {
   124 {
       
   125     NM_FUNCTION;
       
   126     
   115     NmApplicationStateInterface *pluginInterface = NULL;
   127     NmApplicationStateInterface *pluginInterface = NULL;
   116     if (plugin) {
   128     if (plugin) {
   117         pluginInterface= qobject_cast<NmApplicationStateInterface*>(plugin);
   129         pluginInterface= qobject_cast<NmApplicationStateInterface*>(plugin);
   118         }
   130         }
   119     return pluginInterface;
   131     return pluginInterface;
   122 /*!
   134 /*!
   123 
   135 
   124  */
   136  */
   125 NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(NmId mailboxId)
   137 NmApplicationStateInterface *NmDataPluginFactory::applicationStateInterfaceInstance(NmId mailboxId)
   126 {
   138 {
       
   139     NM_FUNCTION;
       
   140     
   127     return applicationStateInterfaceInstance(pluginInstance(mailboxId));
   141     return applicationStateInterfaceInstance(pluginInstance(mailboxId));
   128 }
   142 }
   129 
   143 
   130 /*!
   144 /*!
   131 
   145 
   132  */
   146  */
   133 QObject *NmDataPluginFactory::pluginInstance(NmId mailboxId)
   147 QObject *NmDataPluginFactory::pluginInstance(NmId mailboxId)
   134 {
   148 {
       
   149     NM_FUNCTION;
       
   150     
   135     QObject *value(NULL);
   151     QObject *value(NULL);
   136 
   152 
   137     quint64 tmp = mailboxId.id();
   153     quint64 tmp = mailboxId.id();
   138     quint32 pluginId = tmp >> 32;
   154     quint32 pluginId = tmp >> 32;
   139     if (pluginId == TESTPLUGINID || 
   155     if (pluginId == TESTPLUGINID || 
   156 /*!
   172 /*!
   157 
   173 
   158  */
   174  */
   159 QList<QObject*> *NmDataPluginFactory::pluginInstances()
   175 QList<QObject*> *NmDataPluginFactory::pluginInstances()
   160 {
   176 {
       
   177     NM_FUNCTION;
       
   178     
   161     //if plugins have not been already created, do it now.
   179     //if plugins have not been already created, do it now.
   162     if (!mPluginArray) {
   180     if (!mPluginArray) {
   163         mPluginArray = new QList<QObject*>();
   181         mPluginArray = new QList<QObject*>();
   164     }
   182     }
   165     if (mPluginArray->count() == 0) {
   183     if (mPluginArray->count() == 0) {
   192  */
   210  */
   193 QObject *NmDataPluginFactory::loadPlugin(
   211 QObject *NmDataPluginFactory::loadPlugin(
   194     const QDir &pluginDir,
   212     const QDir &pluginDir,
   195     const QString &pluginName )
   213     const QString &pluginName )
   196 {
   214 {
       
   215     NM_FUNCTION;
       
   216     
   197     /*!
   217     /*!
   198         This creates plugin entity.
   218         This creates plugin entity.
   199      */
   219      */
   200     QPluginLoader *loader = new QPluginLoader(pluginDir.absoluteFilePath(pluginName));
   220     QPluginLoader *loader = new QPluginLoader(pluginDir.absoluteFilePath(pluginName));
   201 
   221