syncmlfw/syncmlnotifier/src/SyncMLPreSyncPluginInterface.cpp
branchRCL_3
changeset 21 504e41245867
parent 0 b497e44ab2fc
child 28 915074efc433
equal deleted inserted replaced
19:86979fe66c4c 21:504e41245867
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 // INCLUDE FILES
    19 // INCLUDE FILES
       
    20 #include <nsmlconstants.h>
    20 #include "SyncMLPreSyncPluginInterface.h"
    21 #include "SyncMLPreSyncPluginInterface.h"
    21 #include "CPreSyncPlugin.h"
    22 #include "CPreSyncPlugin.h"
    22 
    23 
    23 _LIT(kDefault,"DEFAULT");
    24 _LIT(kDefault,"DEFAULT");
    24 
    25 
    95     RImplInfoPtrArray infoArray;
    96     RImplInfoPtrArray infoArray;
    96     TBool bHandleSync = false;
    97     TBool bHandleSync = false;
    97     CPreSyncPlugin* syncPlugin = NULL;
    98     CPreSyncPlugin* syncPlugin = NULL;
    98     CPreSyncPlugin* defaultSyncPlugin = NULL;
    99     CPreSyncPlugin* defaultSyncPlugin = NULL;
    99 
   100 
       
   101 	CleanupRImplInfoPtrArrayPushL( &infoArray );
       
   102 
   100     // Get list of all implementations
   103     // Get list of all implementations
   101     TRAPD(error, ListAllImplementationsL( infoArray ));
   104     TRAPD(error, ListAllImplementationsL( infoArray ));
   102     
   105     
   103     if (error != KErrNone)
   106     if (error != KErrNone)
   104         {
   107         {
       
   108 		CleanupStack::PopAndDestroy( &infoArray );
   105         return NULL;
   109         return NULL;
   106         }
   110         }
   107 
   111 
   108     // Instantiate plugins for all impUIds by calling 
   112     // Instantiate plugins for all impUIds by calling 
   109     // InstantiatePlugInFromImpUidL
   113     // InstantiatePlugInFromImpUidL
   135 				delete syncPlugin;
   139 				delete syncPlugin;
   136 			}
   140 			}
   137 		}
   141 		}
   138     }
   142     }
   139 
   143 
   140     infoArray.ResetAndDestroy();
   144     CleanupStack::PopAndDestroy( &infoArray );
   141 	if(bHandleSync == true)
   145 	if(bHandleSync == true)
   142 	{		
   146 	{		
   143 		//delete defaultSyncPlugin;
   147 		//delete defaultSyncPlugin;
   144 	    if(defaultSyncPlugin != NULL)
   148 	    if(defaultSyncPlugin != NULL)
   145 	    {
   149 	    {
   146 	    CleanupStack::PopAndDestroy(defaultSyncPlugin);
   150 	    delete defaultSyncPlugin;
   147 	    }
   151 	    }
       
   152 	    CleanupStack::PushL(syncPlugin);
   148 		return syncPlugin;
   153 		return syncPlugin;
   149 	}
   154 	}
   150 	else
   155 	else
   151 	{
   156 	{      
       
   157         CleanupStack::PushL(defaultSyncPlugin);
   152 		return defaultSyncPlugin;
   158 		return defaultSyncPlugin;
   153 	}    
   159 	}    
   154  }
   160  }
   155 
   161 
   156 // -----------------------------------------------------------------------------
   162 // -----------------------------------------------------------------------------
   169 CPreSyncPlugin* CPreSyncPluginInterface::InstantiatePlugInFromImpUidL( const TUid& aImpUid )
   175 CPreSyncPlugin* CPreSyncPluginInterface::InstantiatePlugInFromImpUidL( const TUid& aImpUid )
   170 {    
   176 {    
   171    // REComSession
   177    // REComSession
   172     CPreSyncPlugin *preSyncPlugin= NULL;
   178     CPreSyncPlugin *preSyncPlugin= NULL;
   173     preSyncPlugin = CPreSyncPlugin::NewL(aImpUid);
   179     preSyncPlugin = CPreSyncPlugin::NewL(aImpUid);
   174     CleanupStack::PushL(preSyncPlugin);
       
   175     return preSyncPlugin;
   180     return preSyncPlugin;
   176 /*
   181 /*
   177    TAny* implementation = REComSession::CreateImplementationL ( aImpUid, 
   182    TAny* implementation = REComSession::CreateImplementationL ( aImpUid, 
   178                 _FOFF( CPreSyncPlugin , iDtor_ID_Key) );
   183                 _FOFF( CPreSyncPlugin , iDtor_ID_Key) );
   179    CPreSyncPlugin* self = REINTERPRET_CAST( CPreSyncPlugin*, implementation );
   184    CPreSyncPlugin* self = REINTERPRET_CAST( CPreSyncPlugin*, implementation );