omads/omadsextensions/adapters/agenda/src/nsmlagendadataprovider.cpp
branchRCL_3
changeset 24 8e7494275d3a
parent 8 ad0f53516d84
child 25 4f0867e42d62
equal deleted inserted replaced
23:2bb96f4ecad8 24:8e7494275d3a
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 
    18 
    19 // INCLUDE FILES
    19 // INCLUDE FILES
       
    20 #include "nsmlagendadataprovider.h"
       
    21 #include "nsmlagendadatastore.h"
       
    22 #include "nsmldebug.h"
       
    23 #include "nsmldsimpluids.h"
    20 #include <SmlDataProvider.h>
    24 #include <SmlDataProvider.h>
    21 #include <ecom.h>
    25 #include <ecom.h>
    22 #include <barsc.h>
    26 #include <barsc.h>
    23 #include <bautils.h>
    27 #include <bautils.h>
    24 #include <NSmlAgendaDataStore_1_1_2.rsg>
    28 #include <NSmlAgendaDataStore_1_1_2.rsg>
       
    29 #include <NSmlAgendaDataStore_1_2.rsg>
    25 #include <SmlDataFormat.h>
    30 #include <SmlDataFormat.h>
    26 #include <implementationproxy.h>
    31 #include <implementationproxy.h>
    27 #include <data_caging_path_literals.hrh>
    32 #include <data_caging_path_literals.hrh>
    28 #include <e32property.h>
    33 #include <e32property.h>
    29 #include <DataSyncInternalPSKeys.h>
    34 #include <DataSyncInternalPSKeys.h>
    30 #include <nsmldebug.h>
       
    31 #include "nsmlagendadataprovider.h"
       
    32 #include "nsmlagendadatastore.h"
       
    33 #include "nsmlagendadebug.h"
       
    34 #include "nsmldsimpluids.h"
       
    35 
    35 
    36 // ====================================== MEMBER FUNCTIONS ========================================
    36 // ====================================== MEMBER FUNCTIONS ========================================
    37 
    37 
    38 // ------------------------------------------------------------------------------------------------
    38 // ------------------------------------------------------------------------------------------------
    39 // CNSmlAgendaDataProvider::CNSmlAgendaDataProvider
    39 // CNSmlAgendaDataProvider::CNSmlAgendaDataProvider
    41 // might leave.
    41 // might leave.
    42 // ------------------------------------------------------------------------------------------------
    42 // ------------------------------------------------------------------------------------------------
    43 //
    43 //
    44 CNSmlAgendaDataProvider::CNSmlAgendaDataProvider()
    44 CNSmlAgendaDataProvider::CNSmlAgendaDataProvider()
    45 	{
    45 	{
    46 	FLOG(_L("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): BEGIN"));
    46 	_DBG_FILE("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): BEGIN");
    47 	FLOG(_L("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): END"));
    47 	_DBG_FILE("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): END");
    48 	}
    48 	}
    49 
    49 
    50 // ------------------------------------------------------------------------------------------------
    50 // ------------------------------------------------------------------------------------------------
    51 // CNSmlAgendaDataProvider::ConstructL
    51 // CNSmlAgendaDataProvider::ConstructL
    52 // Symbian 2nd phase constructor can leave.
    52 // Symbian 2nd phase constructor can leave.
    53 // ------------------------------------------------------------------------------------------------
    53 // ------------------------------------------------------------------------------------------------
    54 //
    54 //
    55 void CNSmlAgendaDataProvider::ConstructL( )
    55 void CNSmlAgendaDataProvider::ConstructL( )
    56 	{
    56 	{
    57 	FLOG(_L("CNSmlAgendaDataProvider::NewL: BEGIN"));
    57 	_DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN");
    58 	iAgnDataStore = CNSmlAgendaDataStore::NewL();
    58 	iAgnDataStore = CNSmlAgendaDataStore::NewL();
    59 	FLOG(_L("CNSmlAgendaDataProvider::NewL: END"));
    59 	iStringPool.OpenL();
       
    60 	User::LeaveIfError( iSession.Connect() );
       
    61 	_DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN");
    60 	}
    62 	}
    61 
    63 
    62 // ------------------------------------------------------------------------------------------------
    64 // ------------------------------------------------------------------------------------------------
    63 // CNSmlAgendaDataProvider::NewL
    65 // CNSmlAgendaDataProvider::NewL
    64 // Two-phased constructor.
    66 // Two-phased constructor.
    65 // ------------------------------------------------------------------------------------------------
    67 // ------------------------------------------------------------------------------------------------
    66 //
    68 //
    67 CNSmlAgendaDataProvider* CNSmlAgendaDataProvider::NewL()
    69 CNSmlAgendaDataProvider* CNSmlAgendaDataProvider::NewL()
    68 	{
    70 	{
    69 	FLOG(_L("CNSmlAgendaDataProvider::NewL: BEGIN"));
    71 	_DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN");
    70 	CNSmlAgendaDataProvider* self = new ( ELeave ) CNSmlAgendaDataProvider();
    72 	CNSmlAgendaDataProvider* self = new ( ELeave ) CNSmlAgendaDataProvider();
    71 	CleanupStack::PushL( self );
    73 	CleanupStack::PushL( self );
    72 	self->ConstructL();
    74 	self->ConstructL();
    73 	CleanupStack::Pop( self );
    75 	CleanupStack::Pop( self );
    74 	FLOG(_L("CNSmlAgendaDataProvider::NewL: END"));
    76 	_DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN");
    75 	return self;
    77 	return self;
    76 	}
    78 	}
    77 
    79 
    78 // ------------------------------------------------------------------------------------------------
    80 // ------------------------------------------------------------------------------------------------
    79 // CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider
    81 // CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider
    80 // Destructor.
    82 // Destructor.
    81 // ------------------------------------------------------------------------------------------------
    83 // ------------------------------------------------------------------------------------------------
    82 //
    84 //
    83 CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider()
    85 CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider()
    84 	{
    86 	{
    85 	FLOG(_L("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): BEGIN"));
    87 	_DBG_FILE("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): BEGIN");
       
    88 	delete iAgnDataStore;
       
    89 	iSession.Close();
    86 	delete iDSFormat;
    90 	delete iDSFormat;
    87 	delete iAgnDataStore;
    91 	iStringPool.Close();
    88 	iFilterArray.ResetAndDestroy();
    92 	iFilterArray.ResetAndDestroy();
    89 	iFilterArray.Close();
    93 	iFilterArray.Close();
    90 	FLOG(_L("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): END"));
    94 	_DBG_FILE("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): END");
    91 	}
    95 	}
    92 
    96 
    93 // ------------------------------------------------------------------------------------------------
    97 // ------------------------------------------------------------------------------------------------
    94 // CNSmlAgendaDataProvider::DoOnFrameworkEvent
    98 // CNSmlAgendaDataProvider::DoOnFrameworkEvent
    95 // Not supported.
    99 // Not supported.
    96 // ------------------------------------------------------------------------------------------------
   100 // ------------------------------------------------------------------------------------------------
    97 //
   101 //
    98 void CNSmlAgendaDataProvider::DoOnFrameworkEvent( TSmlFrameworkEvent /*aEvent*/, TInt /*aParam1*/, TInt /*aParam2*/ )
   102 void CNSmlAgendaDataProvider::DoOnFrameworkEvent( TSmlFrameworkEvent /*aEvent*/, TInt /*aParam1*/, TInt /*aParam2*/ )
    99     {
   103     {
   100 	FLOG(_L("CNSmlAgendaDataProvider::DoOnFrameworkEvent: BEGIN"));
   104 	_DBG_FILE("CNSmlAgendaDataProvider::DoOnFrameworkEvent: BEGIN");
   101 	FLOG(_L("CNSmlAgendaDataProvider::DoOnFrameworkEvent: END"));
   105 	_DBG_FILE("CNSmlAgendaDataProvider::DoOnFrameworkEvent: END");
   102     }
   106     }
   103 
   107 
   104 // ------------------------------------------------------------------------------------------------
   108 // ------------------------------------------------------------------------------------------------
   105 // CNSmlAgendaDataProvider::DoSupportsOperation
   109 // CNSmlAgendaDataProvider::DoSupportsOperation
   106 // Return supported operation uid.
   110 // Return supported operation uid.
   107 // ------------------------------------------------------------------------------------------------
   111 // ------------------------------------------------------------------------------------------------
   108 //
   112 //
   109 TBool CNSmlAgendaDataProvider::DoSupportsOperation( TUid aOpId ) const
   113 TBool CNSmlAgendaDataProvider::DoSupportsOperation( TUid aOpId ) const
   110     {
   114     {
   111 	FLOG(_L("CNSmlAgendaDataProvider::DoSupportsOperation: BEGIN"));
   115 	_DBG_FILE("CNSmlAgendaDataProvider::DoSupportsOperation: BEGIN");
   112 	if ( aOpId == KUidSmlSupportMultipleStores )
   116 	if ( aOpId == KUidSmlSupportMultipleStores )
   113 		{
   117 		{
   114 		FLOG(_L("CNSmlAgendaDataProvider::DoSupportsOperation: END"));
   118 		_DBG_FILE("CNSmlAgendaDataProvider::DoSupportsOperation: END");
   115 		return ETrue;
   119 		return ETrue;
   116 		}
   120 		}
   117 	FLOG(_L("CNSmlAgendaDataProvider::DoSupportsOperation: END"));
   121 	_DBG_FILE("CNSmlAgendaDataProvider::DoSupportsOperation: END");
   118 	return EFalse;
   122 	return EFalse;
   119     }
   123     }
   120 
   124 
   121 // ------------------------------------------------------------------------------------------------
   125 // ------------------------------------------------------------------------------------------------
   122 // CNSmlAgendaDataProvider::DoStoreFormatL
   126 // CNSmlAgendaDataProvider::DoStoreFormatL
   123 // Return the current data store format.
   127 // Return the current data store format.
   124 // ------------------------------------------------------------------------------------------------
   128 // ------------------------------------------------------------------------------------------------
   125 //
   129 //
   126 const CSmlDataStoreFormat& CNSmlAgendaDataProvider::DoStoreFormatL()
   130 const CSmlDataStoreFormat& CNSmlAgendaDataProvider::DoStoreFormatL()
   127     {
   131     {
   128 	FLOG(_L("CNSmlAgendaDataProvider::DoStoreFormatL(): BEGIN"));
   132 	_DBG_FILE("CNSmlAgendaDataProvider::DoStoreFormatL(): BEGIN");
   129 	
   133 	
   130 	if ( iDSFormat )
   134 	if ( iDSFormat )
   131 		{
   135 		{
   132        	delete iDSFormat;
   136        	delete iDSFormat;
   133        	iDSFormat = NULL;
   137        	iDSFormat = NULL;
   134 		}
   138 		}
   135 	// RD_MULTICAL
   139 	iDSFormat = DoOwnStoreFormatL();
   136 	iDSFormat = iAgnDataStore->StoreFormatL();
   140 	
   137 	// RD_MULTICAL
   141     return *iDSFormat;
   138 	return *iDSFormat;
       
   139     }
   142     }
   140 
   143 
   141 // ------------------------------------------------------------------------------------------------
   144 // ------------------------------------------------------------------------------------------------
   142 // CNSmlAgendaDataProvider::DoListStoresLC
   145 // CNSmlAgendaDataProvider::DoListStoresLC
   143 // Return the list of datastore names.
   146 // Return the list of datastore names.
   144 // ------------------------------------------------------------------------------------------------
   147 // ------------------------------------------------------------------------------------------------
   145 //
   148 //
   146 CDesCArray* CNSmlAgendaDataProvider::DoListStoresLC()
   149 CDesCArray* CNSmlAgendaDataProvider::DoListStoresLC()
   147     {
   150     {
   148 	FLOG(_L("CNSmlAgendaDataProvider::DoListStoresLC(): BEGIN"));
   151 	_DBG_FILE("CNSmlAgendaDataProvider::DoListStoresLC(): BEGIN");
   149 	FLOG(_L("CNSmlAgendaDataProvider::DoListStoresLC(): END"));
   152 	_DBG_FILE("CNSmlAgendaDataProvider::DoListStoresLC(): END");
   150 	return iAgnDataStore->DoListAgendaFilesLC();
   153 	return iAgnDataStore->DoListAgendaFilesLC();
   151     }
   154     }
   152 
   155 
   153 // ------------------------------------------------------------------------------------------------
   156 // ------------------------------------------------------------------------------------------------
   154 // CNSmlAgendaDataProvider::DoDefaultStoreL
   157 // CNSmlAgendaDataProvider::DoDefaultStoreL
   155 // Return the name of default store name.
   158 // Return the name of default store name.
   156 // ------------------------------------------------------------------------------------------------
   159 // ------------------------------------------------------------------------------------------------
   157 //
   160 //
   158 const TDesC& CNSmlAgendaDataProvider::DoDefaultStoreL()
   161 const TDesC& CNSmlAgendaDataProvider::DoDefaultStoreL()
   159     {
   162     {
   160 	FLOG(_L("CNSmlAgendaDataProvider::DoDefaultStoreL(): BEGIN"));
   163 	_DBG_FILE("CNSmlAgendaDataProvider::DoDefaultStoreL(): BEGIN");
   161 	FLOG(_L("CNSmlAgendaDataProvider::DoDefaultStoreL(): END"));
   164 	_DBG_FILE("CNSmlAgendaDataProvider::DoDefaultStoreL(): END");
   162 	return iAgnDataStore->DoGetDefaultFileNameL();
   165 	return iAgnDataStore->DoGetDefaultFileNameL();
   163     }
   166     }
   164 
   167 
   165 // ------------------------------------------------------------------------------------------------
   168 // ------------------------------------------------------------------------------------------------
   166 // CNSmlAgendaDataProvider::DoNewStoreInstanceLC
   169 // CNSmlAgendaDataProvider::DoNewStoreInstanceLC
   167 // Return instance of data store
   170 // Return instance of data store
   168 // ------------------------------------------------------------------------------------------------
   171 // ------------------------------------------------------------------------------------------------
   169 //
   172 //
   170 CSmlDataStore* CNSmlAgendaDataProvider::DoNewStoreInstanceLC()
   173 CSmlDataStore* CNSmlAgendaDataProvider::DoNewStoreInstanceLC()
   171     {
   174     {
   172 	FLOG(_L("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): BEGIN"));
   175 	_DBG_FILE("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): BEGIN");
   173 	CNSmlAgendaDataStore* newStore = CNSmlAgendaDataStore::NewL();
   176 	CNSmlAgendaDataStore* newStore = CNSmlAgendaDataStore::NewL();
   174 	CleanupStack::PushL( newStore );
   177 	CleanupStack::PushL( newStore );
   175 	FLOG(_L("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): END"));
   178 	_DBG_FILE("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): END");
   176 	return newStore;
   179 	return newStore;
   177     } 
   180     } 
   178 
   181 
   179 // ------------------------------------------------------------------------------------------------
   182 // ------------------------------------------------------------------------------------------------
   180 // CNSmlAgendaDataProvider::DoSupportedServerFiltersL
   183 // CNSmlAgendaDataProvider::DoSupportedServerFiltersL
   181 // 
   184 // 
   182 // ------------------------------------------------------------------------------------------------
   185 // ------------------------------------------------------------------------------------------------
   183 const RPointerArray<CSyncMLFilter>& CNSmlAgendaDataProvider::DoSupportedServerFiltersL()
   186 const RPointerArray<CSyncMLFilter>& CNSmlAgendaDataProvider::DoSupportedServerFiltersL()
   184 	{
   187 	{
   185 	// This method returns empty array. It means that this Data Provider does not support filtering
   188 	// This method returns empty array. It means that this Data Provider does not support filtering
   186 	FLOG(_L("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): BEGIN"));
   189 	_DBG_FILE("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): BEGIN");
   187 	FLOG(_L("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): END"));
   190 	_DBG_FILE("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): END");
   188 	return iFilterArray;
   191 	return iFilterArray;
   189 	}
   192 	}
   190 
   193 
   191 // ------------------------------------------------------------------------------------------------
   194 // ------------------------------------------------------------------------------------------------
   192 // CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL
   195 // CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL
   193 // 
   196 // 
   194 // ------------------------------------------------------------------------------------------------
   197 // ------------------------------------------------------------------------------------------------
   195 void CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL( const CSmlDataStoreFormat& /*aServerDataStoreFormat*/, RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
   198 void CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL( const CSmlDataStoreFormat& /*aServerDataStoreFormat*/, RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
   196 	{
   199 	{
   197 	FLOG(_L("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): BEGIN"));
   200 	_DBG_FILE("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): BEGIN");
   198 	FLOG(_L("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): END"));
       
   199 	User::Leave( KErrNotSupported );
   201 	User::Leave( KErrNotSupported );
       
   202 	_DBG_FILE("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): END");
   200 	}
   203 	}
   201 
   204 
   202 // ------------------------------------------------------------------------------------------------
   205 // ------------------------------------------------------------------------------------------------
   203 // CNSmlAgendaDataProvider::CheckServerFiltersL
   206 // CNSmlAgendaDataProvider::CheckServerFiltersL
   204 // 
   207 // 
   205 // ------------------------------------------------------------------------------------------------
   208 // ------------------------------------------------------------------------------------------------
   206 void CNSmlAgendaDataProvider::DoCheckServerFiltersL( RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
   209 void CNSmlAgendaDataProvider::DoCheckServerFiltersL( RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
   207 	{
   210 	{
   208 	FLOG(_L("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): BEGIN"));
   211 	_DBG_FILE("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): BEGIN");
   209 	FLOG(_L("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): END"));
       
   210 	User::Leave( KErrNotSupported );
   212 	User::Leave( KErrNotSupported );
       
   213 	_DBG_FILE("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): END");
   211 	}
   214 	}
   212 
   215 
   213 // ------------------------------------------------------------------------------------------------
   216 // ------------------------------------------------------------------------------------------------
   214 // CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC
   217 // CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC
   215 // 
   218 // 
   216 // ------------------------------------------------------------------------------------------------
   219 // ------------------------------------------------------------------------------------------------
   217 HBufC* CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterMatchType /*aMatch*/, TDes& /*aFilterMimeType*/, TSyncMLFilterType& /*aFilterType*/, TDesC& /*aStoreName*/ )
   220 HBufC* CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterMatchType /*aMatch*/, TDes& /*aFilterMimeType*/, TSyncMLFilterType& /*aFilterType*/, TDesC& /*aStoreName*/ )
   218 	{
   221 	{
   219 	FLOG(_L("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): BEGIN"));
   222 	_DBG_FILE("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): BEGIN");
   220 	FLOG(_L("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): END"));
       
   221 	User::Leave( KErrNotSupported );
   223 	User::Leave( KErrNotSupported );
       
   224 	_DBG_FILE("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): END");
   222 	return NULL;
   225 	return NULL;
   223 	}
   226 	}
   224 	
   227 	
   225 // ------------------------------------------------------------------------------------------------
   228 // ------------------------------------------------------------------------------------------------
   226 // CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL
   229 // CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL
   227 // 
   230 // 
   228 // ------------------------------------------------------------------------------------------------
   231 // ------------------------------------------------------------------------------------------------
   229 void CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL( const RPointerArray<CSyncMLFilter>& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray<CSmlDataProperty>& /*aProperties*/, TDesC& /*aStoreName*/ )
   232 void CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL( const RPointerArray<CSyncMLFilter>& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray<CSmlDataProperty>& /*aProperties*/, TDesC& /*aStoreName*/ )
   230 	{
   233 	{
   231 	FLOG(_L("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): BEGIN"));
   234 	_DBG_FILE("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): BEGIN");
   232 	FLOG(_L("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): END"));
       
   233 	User::Leave( KErrNotSupported );
   235 	User::Leave( KErrNotSupported );
       
   236 	_DBG_FILE("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): END");
       
   237 	}
       
   238 
       
   239 // ------------------------------------------------------------------------------------------------
       
   240 // CNSmlAgendaDataProvider::DoOwnStoreFormatL
       
   241 // Read own store format from own resource file.
       
   242 // ------------------------------------------------------------------------------------------------
       
   243 //
       
   244 CSmlDataStoreFormat* CNSmlAgendaDataProvider::DoOwnStoreFormatL()
       
   245 	{
       
   246 	_DBG_FILE("CNSmlAgendaDataProvider::DoOwnStoreFormatL(): BEGIN");
       
   247 	TFileName fileName;
       
   248 	TParse parse;
       
   249 
       
   250     // Check correct Data Sync protocol
       
   251 	TInt value( EDataSyncNotRunning );
       
   252 	TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys,
       
   253                                  KDataSyncStatus,
       
   254                                  value );
       
   255 	if ( error == KErrNone &&
       
   256 	     value == EDataSyncRunning )
       
   257 	    {
       
   258 	    parse.Set( KNSmlDSAgendaDataStoreRsc_1_1_2, &KDC_RESOURCE_FILES_DIR, NULL );
       
   259 	    }
       
   260 	else // error or protocol version 1.2 
       
   261 	    {
       
   262 	    parse.Set( KNSmlDSAgendaDataStoreRsc_1_2, &KDC_RESOURCE_FILES_DIR, NULL );
       
   263 	    }		
       
   264 	
       
   265 	fileName = parse.FullName();
       
   266 	RResourceFile resourceFile;
       
   267 	BaflUtils::NearestLanguageFile( iSession, fileName );
       
   268 
       
   269 	resourceFile.OpenL( iSession, fileName );
       
   270 	CleanupClosePushL( resourceFile );
       
   271 
       
   272 	HBufC8* profileRes = resourceFile.AllocReadLC( NSML_AGENDA_DATA_STORE );
       
   273 	TResourceReader reader;
       
   274 	reader.SetBuffer( profileRes );
       
   275 
       
   276 	CSmlDataStoreFormat* dsFormat = CSmlDataStoreFormat::NewLC( iStringPool, reader );
       
   277 	CleanupStack::Pop(); // dsFormat
       
   278 	CleanupStack::PopAndDestroy( 2 ); // profileRes, resourceFile
       
   279 	_DBG_FILE("CNSmlAgendaDataProvider::DoOwnStoreFormatL(): END");
       
   280 	return dsFormat;
   234 	}
   281 	}
   235 
   282 
   236 // =================================== OTHER EXPORTED FUNCTIONS ===================================
   283 // =================================== OTHER EXPORTED FUNCTIONS ===================================
   237 #ifndef IMPLEMENTATION_PROXY_ENTRY
   284 #ifndef IMPLEMENTATION_PROXY_ENTRY
   238 #define IMPLEMENTATION_PROXY_ENTRY( aUid, aFuncPtr ) { { aUid }, ( aFuncPtr ) }
   285 #define IMPLEMENTATION_PROXY_ENTRY( aUid, aFuncPtr ) { { aUid }, ( aFuncPtr ) }
   248 // Framework needs this.
   295 // Framework needs this.
   249 // ------------------------------------------------------------------------------------------------
   296 // ------------------------------------------------------------------------------------------------
   250 //
   297 //
   251 EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
   298 EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
   252     {
   299     {
   253 	FLOG(_L("ImplementationGroupProxy() for CNSmlAgendaDataProvider: begin"));
   300 	_DBG_FILE("ImplementationGroupProxy() for CNSmlAgendaDataProvider: begin");
   254     aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
   301     aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
   255 	FLOG(_L("ImplementationGroupProxy() for CNSmlAgendaDataProvider: end"));
   302 	_DBG_FILE("ImplementationGroupProxy() for CNSmlAgendaDataProvider: end");
   256     return ImplementationTable;
   303     return ImplementationTable;
   257 	}
   304 	}
   258 
   305 
   259 
   306 
   260 //  End of File  
   307 //  End of File