diff -r ad0f53516d84 -r b922b9936679 omads/omadsextensions/adapters/contacts/src/NSmlContactsDataProvider.cpp --- a/omads/omadsextensions/adapters/contacts/src/NSmlContactsDataProvider.cpp Fri Feb 19 22:40:37 2010 +0200 +++ b/omads/omadsextensions/adapters/contacts/src/NSmlContactsDataProvider.cpp Fri Mar 12 15:41:30 2010 +0200 @@ -34,10 +34,10 @@ #include #include #include -#include "NSmlContactsDataProvider.h" +#include #include "nsmldebug.h" #include "nsmlconstants.h" -#include "NSmlDataModBase.h" +#include #include "nsmldsimpluids.h" #include "nsmlchangefinder.h" @@ -47,7 +47,7 @@ // CNSmlContactsDataProvider::NewL // ----------------------------------------------------------------------------- // -CNSmlContactsDataProvider* CNSmlContactsDataProvider::NewL() +EXPORT_C CNSmlContactsDataProvider* CNSmlContactsDataProvider::NewL() { _DBG_FILE("CNSmlContactsDataProvider::NewL(): begin"); CNSmlContactsDataProvider* self = NewLC(); @@ -60,7 +60,7 @@ // CNSmlContactsDataProvider::NewLC // ----------------------------------------------------------------------------- // -CNSmlContactsDataProvider* CNSmlContactsDataProvider::NewLC() +EXPORT_C CNSmlContactsDataProvider* CNSmlContactsDataProvider::NewLC() { _DBG_FILE("CNSmlContactsDataProvider::NewLC(): begin"); @@ -75,7 +75,7 @@ // CNSmlContactsDataProvider::CNSmlContactsDataProvider // ----------------------------------------------------------------------------- // -CNSmlContactsDataProvider::CNSmlContactsDataProvider() +EXPORT_C CNSmlContactsDataProvider::CNSmlContactsDataProvider() { _DBG_FILE("CNSmlContactsDataProvider::CNSmlContactsDataProvider(): begin"); _DBG_FILE("CNSmlContactsDataProvider::CNSmlContactsDataProvider(): end"); @@ -85,13 +85,14 @@ // CNSmlContactsDataProvider::ConstructL // ----------------------------------------------------------------------------- // -void CNSmlContactsDataProvider::ConstructL() +EXPORT_C void CNSmlContactsDataProvider::ConstructL() { _DBG_FILE("CNSmlContactsDataProvider::ConstructL(): begin"); User::LeaveIfError( iRfs.Connect() ); - iContactsDataStore = CNSmlContactsDataStore::NewL(); + iContactsDataStore = CreateDataStoreLC(); + CleanupStack::Pop( iContactsDataStore ); iStringPool.OpenL(); @@ -102,7 +103,7 @@ // CNSmlContactsDataProvider::~CNSmlContactsDataProvider // ----------------------------------------------------------------------------- // -CNSmlContactsDataProvider::~CNSmlContactsDataProvider() +EXPORT_C CNSmlContactsDataProvider::~CNSmlContactsDataProvider() { _DBG_FILE("CNSmlContactsDataProvider::~CNSmlContactsDataProvider(): begin"); @@ -122,7 +123,7 @@ // CNSmlContactsDataProvider::DoOnFrameworkEvent // ----------------------------------------------------------------------------- // -void CNSmlContactsDataProvider::DoOnFrameworkEvent( TSmlFrameworkEvent /*aFrameworkEvent*/, TInt /*aParam1*/, TInt /*aParam2*/ ) +EXPORT_C void CNSmlContactsDataProvider::DoOnFrameworkEvent( TSmlFrameworkEvent /*aFrameworkEvent*/, TInt /*aParam1*/, TInt /*aParam2*/ ) { _DBG_FILE("CNSmlContactsDataProvider::DoOnFrameworkEvent(): begin"); _DBG_FILE("CNSmlContactsDataProvider::DoOnFrameworkEvent(): end"); @@ -132,7 +133,7 @@ // CNSmlContactsDataProvider::DoSupportsOperation // ----------------------------------------------------------------------------- // -TBool CNSmlContactsDataProvider::DoSupportsOperation( TUid aOpId ) const +EXPORT_C TBool CNSmlContactsDataProvider::DoSupportsOperation( TUid aOpId ) const { _DBG_FILE("CNSmlContactsDataProvider::DoSupportsOperation(): begin"); @@ -151,7 +152,7 @@ // CNSmlContactsDataProvider::DoStoreFormatL // ----------------------------------------------------------------------------- // -const CSmlDataStoreFormat& CNSmlContactsDataProvider::DoStoreFormatL() +EXPORT_C const CSmlDataStoreFormat& CNSmlContactsDataProvider::DoStoreFormatL() { _DBG_FILE("CNSmlContactsDataProvider::DoStoreFormatL(): begin"); @@ -167,22 +168,8 @@ TFileName resourceFileName; resourceFileName.Copy( TParsePtrC( dllFileName ).Drive() ); - // Check correct Data Sync protocol - TInt value( EDataSyncNotRunning ); - TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys, - KDataSyncStatus, - value ); - if ( error == KErrNone && - value == EDataSyncRunning ) - { - resourceFileName.Append(KNSmlContactsStoreFormatRsc_1_1_2); - parse.Set( resourceFileName, &KDC_RESOURCE_FILES_DIR, NULL ); - } - else // error or protocol version 1.2 - { - resourceFileName.Append(KNSmlContactsStoreFormatRsc_1_2); - parse.Set( resourceFileName, &KDC_RESOURCE_FILES_DIR, NULL ); - } + + parse.Set( GetStoreFormatResourceFileL(), &KDC_RESOURCE_FILES_DIR, NULL ); fileName = parse.FullName(); @@ -211,7 +198,7 @@ // CNSmlContactsDataProvider::DoListStoresLC // ----------------------------------------------------------------------------- // -CDesCArray* CNSmlContactsDataProvider::DoListStoresLC() +EXPORT_C CDesCArray* CNSmlContactsDataProvider::DoListStoresLC() { _DBG_FILE("CNSmlContactsDataProvider::DoListStoresLC(): begin"); _DBG_FILE("CNSmlContactsDataProvider::DoListStoresLC(): end"); @@ -223,7 +210,7 @@ // CNSmlContactsDataProvider::DoDefaultStoreL // ----------------------------------------------------------------------------- // -const TDesC& CNSmlContactsDataProvider::DoDefaultStoreL() +EXPORT_C const TDesC& CNSmlContactsDataProvider::DoDefaultStoreL() { _DBG_FILE("CNSmlContactsDataProvider::DoIdentifier(): begin"); _DBG_FILE("CNSmlContactsDataProvider::DoIdentifier(): end"); @@ -235,12 +222,11 @@ // CNSmlContactsDataProvider::DoNewStoreInstanceLC // ----------------------------------------------------------------------------- // -CSmlDataStore* CNSmlContactsDataProvider::DoNewStoreInstanceLC() +EXPORT_C CSmlDataStore* CNSmlContactsDataProvider::DoNewStoreInstanceLC() { _DBG_FILE("CNSmlContactsDataProvider::DoNewStoreInstanceLC(): begin"); - CNSmlContactsDataStore* newDataStore = CNSmlContactsDataStore::NewL(); - CleanupStack::PushL( newDataStore ); + CNSmlContactsDataStore* newDataStore = CreateDataStoreLC(); _DBG_FILE("CNSmlContactsDataProvider::DoNewStoreInstanceLC(): end"); @@ -251,7 +237,7 @@ // CNSmlContactsDataProvider::DoSupportedServerFiltersL // // ------------------------------------------------------------------------------------------------ -const RPointerArray& CNSmlContactsDataProvider::DoSupportedServerFiltersL() +EXPORT_C const RPointerArray& CNSmlContactsDataProvider::DoSupportedServerFiltersL() { // This method returns empty array. It means that this Data Provider does not support filtering _DBG_FILE("CNSmlContactsDataProvider::DoSupportedServerFiltersL(): BEGIN"); @@ -263,7 +249,7 @@ // CNSmlContactsDataProvider::DoCheckSupportedServerFiltersL // // ------------------------------------------------------------------------------------------------ -void CNSmlContactsDataProvider::DoCheckSupportedServerFiltersL( const CSmlDataStoreFormat& /*aServerDataStoreFormat*/, RPointerArray& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ ) +EXPORT_C void CNSmlContactsDataProvider::DoCheckSupportedServerFiltersL( const CSmlDataStoreFormat& /*aServerDataStoreFormat*/, RPointerArray& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ ) { _DBG_FILE("CNSmlContactsDataProvider::DoCheckSupportedServerFiltersL(): BEGIN"); User::Leave( KErrNotSupported ); @@ -274,7 +260,7 @@ // CNSmlContactsDataProvider::CheckServerFiltersL // // ------------------------------------------------------------------------------------------------ -void CNSmlContactsDataProvider::DoCheckServerFiltersL( RPointerArray& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ ) +EXPORT_C void CNSmlContactsDataProvider::DoCheckServerFiltersL( RPointerArray& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ ) { _DBG_FILE("CNSmlContactsDataProvider::DoCheckServerFiltersL(): BEGIN"); User::Leave( KErrNotSupported ); @@ -285,7 +271,7 @@ // CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC // // ------------------------------------------------------------------------------------------------ -HBufC* CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray& /*aFilters*/, TSyncMLFilterMatchType /*aMatch*/, TDes& /*aFilterMimeType*/, TSyncMLFilterType& /*aFilterType*/, TDesC& /*aStoreName*/ ) +EXPORT_C HBufC* CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray& /*aFilters*/, TSyncMLFilterMatchType /*aMatch*/, TDes& /*aFilterMimeType*/, TSyncMLFilterType& /*aFilterType*/, TDesC& /*aStoreName*/ ) { _DBG_FILE("CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC(): BEGIN"); User::Leave( KErrNotSupported ); @@ -297,13 +283,51 @@ // CNSmlContactsDataProvider::DoGenerateFieldFilterQueryL // // ------------------------------------------------------------------------------------------------ -void CNSmlContactsDataProvider::DoGenerateFieldFilterQueryL( const RPointerArray& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray& /*aProperties*/, TDesC& /*aStoreName*/ ) +EXPORT_C void CNSmlContactsDataProvider::DoGenerateFieldFilterQueryL( const RPointerArray& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray& /*aProperties*/, TDesC& /*aStoreName*/ ) { _DBG_FILE("CNSmlContactsDataProvider::DoGenerateFieldFilterQueryL(): BEGIN"); User::Leave( KErrNotSupported ); _DBG_FILE("CNSmlContactsDataProvider::DoGenerateFieldFilterQueryL(): END"); } +// ------------------------------------------------------------------------------------------------ +// CNSmlContactsDataProvider::GetStoreFormatResourceFileL +// +// ------------------------------------------------------------------------------------------------ +EXPORT_C const TDesC& CNSmlContactsDataProvider::GetStoreFormatResourceFileL() const + { + _DBG_FILE("CNSmlContactsDataProvider::GetStoreFormatResourceFileL(): BEGIN"); + + // Check correct Data Sync protocol + TInt value( EDataSyncNotRunning ); + TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys, + KDataSyncStatus, + value ); + if ( error == KErrNone && + value == EDataSyncRunning ) + { + return KNSmlContactsStoreFormatRsc_1_1_2; + } + else // error or protocol version 1.2 + { + return KNSmlContactsStoreFormatRsc_1_2; + } + _DBG_FILE("CNSmlContactsDataProvider::GetStoreFormatResourceFileL(): END"); + } + +// ------------------------------------------------------------------------------------------------ +// CNSmlContactsDataProvider::CreateDataStoreLC +// +// ------------------------------------------------------------------------------------------------ +EXPORT_C CNSmlContactsDataStore* CNSmlContactsDataProvider::CreateDataStoreLC() const + { + _DBG_FILE("CNSmlContactsDataProvider::CreateDataStoreLC(): BEGIN"); + CNSmlContactsDataStore* dataStore = CNSmlContactsDataStore::NewL(); + CleanupStack::PushL( dataStore ); + _DBG_FILE("CNSmlContactsDataProvider::CreateDataStoreLC(): END"); + return dataStore; + } + // ----------------------------------------------------------------------------- // ImplementationGroupProxy array // -----------------------------------------------------------------------------