omads/omadsextensions/adapters/contacts/src/NSmlContactsDataProvider.cpp
branchRCL_3
changeset 10 b922b9936679
parent 0 dab8a81a92de
child 24 8e7494275d3a
--- 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 <vtoken.h>
 #include <e32property.h>
 #include <DataSyncInternalPSKeys.h>
-#include "NSmlContactsDataProvider.h"
+#include <NSmlContactsDataProvider.h>
 #include "nsmldebug.h"
 #include "nsmlconstants.h"
-#include "NSmlDataModBase.h"
+#include <NSmlDataModBase.h>
 #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<CSyncMLFilter>& CNSmlContactsDataProvider::DoSupportedServerFiltersL()
+EXPORT_C const RPointerArray<CSyncMLFilter>& 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<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
+EXPORT_C void CNSmlContactsDataProvider::DoCheckSupportedServerFiltersL( const CSmlDataStoreFormat& /*aServerDataStoreFormat*/, RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
 	{
 	_DBG_FILE("CNSmlContactsDataProvider::DoCheckSupportedServerFiltersL(): BEGIN");
 	User::Leave( KErrNotSupported );
@@ -274,7 +260,7 @@
 // CNSmlContactsDataProvider::CheckServerFiltersL
 // 
 // ------------------------------------------------------------------------------------------------
-void CNSmlContactsDataProvider::DoCheckServerFiltersL( RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
+EXPORT_C void CNSmlContactsDataProvider::DoCheckServerFiltersL( RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterChangeInfo& /*aChangeInfo*/ )
 	{
 	_DBG_FILE("CNSmlContactsDataProvider::DoCheckServerFiltersL(): BEGIN");
 	User::Leave( KErrNotSupported );
@@ -285,7 +271,7 @@
 // CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC
 // 
 // ------------------------------------------------------------------------------------------------
-HBufC* CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray<CSyncMLFilter>& /*aFilters*/, TSyncMLFilterMatchType /*aMatch*/, TDes& /*aFilterMimeType*/, TSyncMLFilterType& /*aFilterType*/, TDesC& /*aStoreName*/ )
+EXPORT_C HBufC* CNSmlContactsDataProvider::DoGenerateRecordFilterQueryLC( const RPointerArray<CSyncMLFilter>& /*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<CSyncMLFilter>& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray<CSmlDataProperty>& /*aProperties*/, TDesC& /*aStoreName*/ )
+EXPORT_C void CNSmlContactsDataProvider::DoGenerateFieldFilterQueryL( const RPointerArray<CSyncMLFilter>& /*aFilters*/, TDes& /*aFilterMimeType*/, RPointerArray<CSmlDataProperty>& /*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
 // -----------------------------------------------------------------------------