diff -r 2bb96f4ecad8 -r 8e7494275d3a omads/omadsextensions/adapters/agenda/src/nsmlagendadataprovider.cpp --- a/omads/omadsextensions/adapters/agenda/src/nsmlagendadataprovider.cpp Thu Aug 19 09:41:17 2010 +0300 +++ b/omads/omadsextensions/adapters/agenda/src/nsmlagendadataprovider.cpp Tue Aug 31 15:05:37 2010 +0300 @@ -17,21 +17,21 @@ // INCLUDE FILES +#include "nsmlagendadataprovider.h" +#include "nsmlagendadatastore.h" +#include "nsmldebug.h" +#include "nsmldsimpluids.h" #include #include #include #include #include +#include #include #include #include #include #include -#include -#include "nsmlagendadataprovider.h" -#include "nsmlagendadatastore.h" -#include "nsmlagendadebug.h" -#include "nsmldsimpluids.h" // ====================================== MEMBER FUNCTIONS ======================================== @@ -43,8 +43,8 @@ // CNSmlAgendaDataProvider::CNSmlAgendaDataProvider() { - FLOG(_L("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): BEGIN"); + _DBG_FILE("CNSmlAgendaDataProvider::CNSmlAgendaDataProvider(): END"); } // ------------------------------------------------------------------------------------------------ @@ -54,9 +54,11 @@ // void CNSmlAgendaDataProvider::ConstructL( ) { - FLOG(_L("CNSmlAgendaDataProvider::NewL: BEGIN")); + _DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN"); iAgnDataStore = CNSmlAgendaDataStore::NewL(); - FLOG(_L("CNSmlAgendaDataProvider::NewL: END")); + iStringPool.OpenL(); + User::LeaveIfError( iSession.Connect() ); + _DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN"); } // ------------------------------------------------------------------------------------------------ @@ -66,12 +68,12 @@ // CNSmlAgendaDataProvider* CNSmlAgendaDataProvider::NewL() { - FLOG(_L("CNSmlAgendaDataProvider::NewL: BEGIN")); + _DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN"); CNSmlAgendaDataProvider* self = new ( ELeave ) CNSmlAgendaDataProvider(); CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); - FLOG(_L("CNSmlAgendaDataProvider::NewL: END")); + _DBG_FILE("CNSmlAgendaDataProvider::NewL: BEGIN"); return self; } @@ -82,12 +84,14 @@ // CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider() { - FLOG(_L("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): BEGIN")); + _DBG_FILE("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): BEGIN"); + delete iAgnDataStore; + iSession.Close(); delete iDSFormat; - delete iAgnDataStore; + iStringPool.Close(); iFilterArray.ResetAndDestroy(); iFilterArray.Close(); - FLOG(_L("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::~CNSmlAgendaDataProvider(): END"); } // ------------------------------------------------------------------------------------------------ @@ -97,8 +101,8 @@ // void CNSmlAgendaDataProvider::DoOnFrameworkEvent( TSmlFrameworkEvent /*aEvent*/, TInt /*aParam1*/, TInt /*aParam2*/ ) { - FLOG(_L("CNSmlAgendaDataProvider::DoOnFrameworkEvent: BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoOnFrameworkEvent: END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoOnFrameworkEvent: BEGIN"); + _DBG_FILE("CNSmlAgendaDataProvider::DoOnFrameworkEvent: END"); } // ------------------------------------------------------------------------------------------------ @@ -108,13 +112,13 @@ // TBool CNSmlAgendaDataProvider::DoSupportsOperation( TUid aOpId ) const { - FLOG(_L("CNSmlAgendaDataProvider::DoSupportsOperation: BEGIN")); + _DBG_FILE("CNSmlAgendaDataProvider::DoSupportsOperation: BEGIN"); if ( aOpId == KUidSmlSupportMultipleStores ) { - FLOG(_L("CNSmlAgendaDataProvider::DoSupportsOperation: END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoSupportsOperation: END"); return ETrue; } - FLOG(_L("CNSmlAgendaDataProvider::DoSupportsOperation: END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoSupportsOperation: END"); return EFalse; } @@ -125,17 +129,16 @@ // const CSmlDataStoreFormat& CNSmlAgendaDataProvider::DoStoreFormatL() { - FLOG(_L("CNSmlAgendaDataProvider::DoStoreFormatL(): BEGIN")); + _DBG_FILE("CNSmlAgendaDataProvider::DoStoreFormatL(): BEGIN"); if ( iDSFormat ) { delete iDSFormat; iDSFormat = NULL; } - // RD_MULTICAL - iDSFormat = iAgnDataStore->StoreFormatL(); - // RD_MULTICAL - return *iDSFormat; + iDSFormat = DoOwnStoreFormatL(); + + return *iDSFormat; } // ------------------------------------------------------------------------------------------------ @@ -145,8 +148,8 @@ // CDesCArray* CNSmlAgendaDataProvider::DoListStoresLC() { - FLOG(_L("CNSmlAgendaDataProvider::DoListStoresLC(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoListStoresLC(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoListStoresLC(): BEGIN"); + _DBG_FILE("CNSmlAgendaDataProvider::DoListStoresLC(): END"); return iAgnDataStore->DoListAgendaFilesLC(); } @@ -157,8 +160,8 @@ // const TDesC& CNSmlAgendaDataProvider::DoDefaultStoreL() { - FLOG(_L("CNSmlAgendaDataProvider::DoDefaultStoreL(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoDefaultStoreL(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoDefaultStoreL(): BEGIN"); + _DBG_FILE("CNSmlAgendaDataProvider::DoDefaultStoreL(): END"); return iAgnDataStore->DoGetDefaultFileNameL(); } @@ -169,10 +172,10 @@ // CSmlDataStore* CNSmlAgendaDataProvider::DoNewStoreInstanceLC() { - FLOG(_L("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): BEGIN")); + _DBG_FILE("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): BEGIN"); CNSmlAgendaDataStore* newStore = CNSmlAgendaDataStore::NewL(); CleanupStack::PushL( newStore ); - FLOG(_L("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoNewStoreInstanceLC(): END"); return newStore; } @@ -183,8 +186,8 @@ const RPointerArray& CNSmlAgendaDataProvider::DoSupportedServerFiltersL() { // This method returns empty array. It means that this Data Provider does not support filtering - FLOG(_L("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): BEGIN"); + _DBG_FILE("CNSmlAgendaDataProvider::DoSupportedServerFiltersL(): END"); return iFilterArray; } @@ -194,9 +197,9 @@ // ------------------------------------------------------------------------------------------------ void CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL( const CSmlDataStoreFormat& /*aServerDataStoreFormat*/, RPointerArray& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ ) { - FLOG(_L("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): BEGIN"); User::Leave( KErrNotSupported ); + _DBG_FILE("CNSmlAgendaDataProvider::DoCheckSupportedServerFiltersL(): END"); } // ------------------------------------------------------------------------------------------------ @@ -205,9 +208,9 @@ // ------------------------------------------------------------------------------------------------ void CNSmlAgendaDataProvider::DoCheckServerFiltersL( RPointerArray& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ ) { - FLOG(_L("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): BEGIN"); User::Leave( KErrNotSupported ); + _DBG_FILE("CNSmlAgendaDataProvider::DoCheckServerFiltersL(): END"); } // ------------------------------------------------------------------------------------------------ @@ -216,9 +219,9 @@ // ------------------------------------------------------------------------------------------------ HBufC* CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray& /*aFilters*/, TSyncMLFilterMatchType /*aMatch*/, TDes& /*aFilterMimeType*/, TSyncMLFilterType& /*aFilterType*/, TDesC& /*aStoreName*/ ) { - FLOG(_L("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): BEGIN"); User::Leave( KErrNotSupported ); + _DBG_FILE("CNSmlAgendaDataProvider::DoGenerateRecordFilterQueryLC(): END"); return NULL; } @@ -228,9 +231,53 @@ // ------------------------------------------------------------------------------------------------ void CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL( const RPointerArray& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray& /*aProperties*/, TDesC& /*aStoreName*/ ) { - FLOG(_L("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): BEGIN")); - FLOG(_L("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): END")); + _DBG_FILE("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): BEGIN"); User::Leave( KErrNotSupported ); + _DBG_FILE("CNSmlAgendaDataProvider::DoGenerateFieldFilterQueryL(): END"); + } + +// ------------------------------------------------------------------------------------------------ +// CNSmlAgendaDataProvider::DoOwnStoreFormatL +// Read own store format from own resource file. +// ------------------------------------------------------------------------------------------------ +// +CSmlDataStoreFormat* CNSmlAgendaDataProvider::DoOwnStoreFormatL() + { + _DBG_FILE("CNSmlAgendaDataProvider::DoOwnStoreFormatL(): BEGIN"); + TFileName fileName; + TParse parse; + + // Check correct Data Sync protocol + TInt value( EDataSyncNotRunning ); + TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys, + KDataSyncStatus, + value ); + if ( error == KErrNone && + value == EDataSyncRunning ) + { + parse.Set( KNSmlDSAgendaDataStoreRsc_1_1_2, &KDC_RESOURCE_FILES_DIR, NULL ); + } + else // error or protocol version 1.2 + { + parse.Set( KNSmlDSAgendaDataStoreRsc_1_2, &KDC_RESOURCE_FILES_DIR, NULL ); + } + + fileName = parse.FullName(); + RResourceFile resourceFile; + BaflUtils::NearestLanguageFile( iSession, fileName ); + + resourceFile.OpenL( iSession, fileName ); + CleanupClosePushL( resourceFile ); + + HBufC8* profileRes = resourceFile.AllocReadLC( NSML_AGENDA_DATA_STORE ); + TResourceReader reader; + reader.SetBuffer( profileRes ); + + CSmlDataStoreFormat* dsFormat = CSmlDataStoreFormat::NewLC( iStringPool, reader ); + CleanupStack::Pop(); // dsFormat + CleanupStack::PopAndDestroy( 2 ); // profileRes, resourceFile + _DBG_FILE("CNSmlAgendaDataProvider::DoOwnStoreFormatL(): END"); + return dsFormat; } // =================================== OTHER EXPORTED FUNCTIONS =================================== @@ -250,9 +297,9 @@ // EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount ) { - FLOG(_L("ImplementationGroupProxy() for CNSmlAgendaDataProvider: begin")); + _DBG_FILE("ImplementationGroupProxy() for CNSmlAgendaDataProvider: begin"); aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy ); - FLOG(_L("ImplementationGroupProxy() for CNSmlAgendaDataProvider: end")); + _DBG_FILE("ImplementationGroupProxy() for CNSmlAgendaDataProvider: end"); return ImplementationTable; }