emailservices/nmclientapi/src/nmapidatapluginfactory.cpp
changeset 30 759dc5235cdb
parent 23 2dc6caa42ec3
child 48 10eaf342f539
equal deleted inserted replaced
27:9ba4404ef423 30:759dc5235cdb
    12  * Contributors:
    12  * Contributors:
    13  *
    13  *
    14  * Description:
    14  * Description:
    15  *
    15  *
    16  */
    16  */
       
    17 
       
    18 #include "emailtrace.h"
    17 
    19 
    18 #include "nmdataplugininterface.h"
    20 #include "nmdataplugininterface.h"
    19 #include "nmapidatapluginfactory.h"
    21 #include "nmapidatapluginfactory.h"
    20 
    22 
    21 // Qt
    23 // Qt
    46 /*!
    48 /*!
    47 
    49 
    48  */
    50  */
    49 NmApiDataPluginFactory::NmApiDataPluginFactory()
    51 NmApiDataPluginFactory::NmApiDataPluginFactory()
    50 {
    52 {
    51 
    53     NM_FUNCTION;
    52 }
    54 }
    53 
    55 
    54 /*!
    56 /*!
    55 
    57 
    56  */
    58  */
    57 NmApiDataPluginFactory::~NmApiDataPluginFactory()
    59 NmApiDataPluginFactory::~NmApiDataPluginFactory()
    58 {
    60 {
       
    61     NM_FUNCTION;
       
    62     
    59     if (mPlugin) {
    63     if (mPlugin) {
    60         delete mPlugin;
    64         delete mPlugin;
    61         mPlugin = NULL;
    65         mPlugin = NULL;
    62     }
    66     }
    63     
    67     
    70 /*!
    74 /*!
    71 
    75 
    72  */
    76  */
    73 NmApiDataPluginFactory *NmApiDataPluginFactory::instance()
    77 NmApiDataPluginFactory *NmApiDataPluginFactory::instance()
    74 {
    78 {
       
    79     NM_FUNCTION;
       
    80     
    75     if (!mInstance) {
    81     if (!mInstance) {
    76         mInstance = new NmApiDataPluginFactory();
    82         mInstance = new NmApiDataPluginFactory();
    77     }
    83     }
    78     mReferenceCount++;
    84     mReferenceCount++;
    79     return mInstance;
    85     return mInstance;
    82 /*!
    88 /*!
    83 
    89 
    84  */
    90  */
    85 void NmApiDataPluginFactory::releaseInstance(NmApiDataPluginFactory *&instance)
    91 void NmApiDataPluginFactory::releaseInstance(NmApiDataPluginFactory *&instance)
    86 {
    92 {
       
    93     NM_FUNCTION;
       
    94     
    87     //can't have passed out instances if we don't have any
    95     //can't have passed out instances if we don't have any
    88     if (mInstance) {
    96     if (mInstance) {
    89         if (instance == mInstance) {
    97         if (instance == mInstance) {
    90             instance = NULL;
    98             instance = NULL;
    91             mReferenceCount--;
    99             mReferenceCount--;
   101 /*!
   109 /*!
   102 
   110 
   103  */
   111  */
   104 NmDataPluginInterface *NmApiDataPluginFactory::interfaceInstance()
   112 NmDataPluginInterface *NmApiDataPluginFactory::interfaceInstance()
   105 {
   113 {
       
   114     NM_FUNCTION;
       
   115     
   106     if (!mPlugin) {
   116     if (!mPlugin) {
   107         mPlugin = loadPlugin();
   117         mPlugin = loadPlugin();
   108     }
   118     }
   109     return qobject_cast<NmDataPluginInterface*> (mPlugin);
   119     return qobject_cast<NmDataPluginInterface*> (mPlugin);
   110 }
   120 }
   112 /*!
   122 /*!
   113 
   123 
   114  */
   124  */
   115 QObject *NmApiDataPluginFactory::loadPlugin()
   125 QObject *NmApiDataPluginFactory::loadPlugin()
   116 {
   126 {
       
   127     NM_FUNCTION;
       
   128     
   117     if (!mPluginLoader) {
   129     if (!mPluginLoader) {
   118         const QString KPluginDirectory = "c:\\resource\\plugins";
   130         const QString KPluginDirectory = "c:\\resource\\plugins";
   119         QDir pluginDir = QDir(KPluginDirectory);
   131         QDir pluginDir = QDir(KPluginDirectory);
   120         const QString KFrameworkPluginName = "nmframeworkadapter.qtplugin";
   132         const QString KFrameworkPluginName = "nmframeworkadapter.qtplugin";
   121         /*!
   133         /*!
   133     return mPlugin;
   145     return mPlugin;
   134 }
   146 }
   135 
   147 
   136 QObject *NmApiDataPluginFactory::plugin()
   148 QObject *NmApiDataPluginFactory::plugin()
   137 {
   149 {
       
   150     NM_FUNCTION;
       
   151     
   138     if (!mPlugin) {
   152     if (!mPlugin) {
   139         mPlugin = loadPlugin();
   153         mPlugin = loadPlugin();
   140     }
   154     }
   141     return mPlugin;
   155     return mPlugin;
   142 }
   156 }