omads/omadsextensions/adapters/contacts/src/NSmlContactsDataStore.cpp
changeset 22 1a3f0bca12c6
parent 20 e1de7d03f843
child 26 fdc38da86094
child 29 4c8d5d006ed1
equal deleted inserted replaced
20:e1de7d03f843 22:1a3f0bca12c6
   506 	
   506 	
   507 	if( !iStoreFormat )
   507 	if( !iStoreFormat )
   508 		{
   508 		{
   509 		TFileName fileName;
   509 		TFileName fileName;
   510 		TParse parse;
   510 		TParse parse;
   511 
   511 		
   512 	    parse.Set( GetStoreFormatResourceFileL(), &KDC_RESOURCE_FILES_DIR, NULL  );		
   512 		// Locate the resource file
       
   513         TFileName dllFileName;
       
   514         Dll::FileName( dllFileName );
       
   515         
       
   516         TFileName resourceFileName;
       
   517         resourceFileName.Copy( TParsePtrC( dllFileName ).Drive() );  
       
   518         
       
   519         resourceFileName.Append( GetStoreFormatResourceFileL() );
       
   520 
       
   521         parse.Set( resourceFileName, &KDC_RESOURCE_FILES_DIR, NULL );
   513 
   522 
   514 		fileName = parse.FullName();
   523 		fileName = parse.FullName();
       
   524 		
       
   525 		DBG_ARGS(_S("CNSmlContactsDataStore::SetOwnStoreFormatL(): '%S'"), &parse.FullName());
   515 
   526 
   516 		RResourceFile resourceFile; 
   527 		RResourceFile resourceFile; 
   517 		BaflUtils::NearestLanguageFile( iRfs, fileName );
   528 		BaflUtils::NearestLanguageFile( iRfs, fileName );
   518 
   529 
   519 		resourceFile.OpenL( iRfs, fileName );
   530 		resourceFile.OpenL( iRfs, fileName );
   650 	
   661 	
   651 	TInt err = KErrNone;
   662 	TInt err = KErrNone;
   652 	
   663 	
   653 	if ( iState != ENSmlOpenAndWaiting )
   664 	if ( iState != ENSmlOpenAndWaiting )
   654 		{
   665 		{
       
   666         _DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotReady: END");
   655 		User::RequestComplete( iCallerStatus, KErrNotReady );
   667 		User::RequestComplete( iCallerStatus, KErrNotReady );
   656 		_DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotReady: END");
       
   657 		return;
   668 		return;
   658 		}
   669 		}
   659 		
   670 		
   660 	iItemSize = aSize; // Size sent from server
   671 	iItemSize = aSize; // Size sent from server
   661 	iModType  = ENSmlCntItemAdd;
   672 	iModType  = ENSmlCntItemAdd;
   683 	if( ( aMimeType.MatchF( KNSmlvCard21Name ) < 0 ) &&
   694 	if( ( aMimeType.MatchF( KNSmlvCard21Name ) < 0 ) &&
   684 	    ( aMimeType.MatchF( KNSmlvCard30Name ) < 0 ) &&
   695 	    ( aMimeType.MatchF( KNSmlvCard30Name ) < 0 ) &&
   685 	    // Allow using custom MIME type defined in store format resource file
   696 	    // Allow using custom MIME type defined in store format resource file
   686 	    ( aMimeType.MatchF( iUsedMimeType ) < 0 ) )
   697 	    ( aMimeType.MatchF( iUsedMimeType ) < 0 ) )
   687 		{
   698 		{
       
   699         _DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotSupported: END");
   688 		User::RequestComplete( iCallerStatus, KErrNotSupported );
   700 		User::RequestComplete( iCallerStatus, KErrNotSupported );
   689 		_DBG_FILE("CNSmlContactsDataStore::DoCreateItemL - KErrNotSupported: END");
       
   690 		return;
   701 		return;
   691 		}
   702 		}
   692     
   703     
   693     // Is there enough space on drive ?
   704     // Is there enough space on drive ?
   694 	if( DriveBelowCriticalLevelL( aSize ) )
   705 	if( DriveBelowCriticalLevelL( aSize ) )
  1240 EXPORT_C void CNSmlContactsDataStore::DoResetChangeInfoL( TRequestStatus& aStatus )
  1251 EXPORT_C void CNSmlContactsDataStore::DoResetChangeInfoL( TRequestStatus& aStatus )
  1241 	{
  1252 	{
  1242 	_DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): begin");
  1253 	_DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): begin");
  1243 	iCallerStatus = &aStatus;
  1254 	iCallerStatus = &aStatus;
  1244 	*iCallerStatus = KRequestPending;
  1255 	*iCallerStatus = KRequestPending;
  1245 	TInt error(KErrNone);
  1256 	
       
  1257 	iSnapshotRegistered = EFalse;
  1246 	
  1258 	
  1247 	if( iChangeFinder )
  1259 	if( iChangeFinder )
  1248 		{
  1260 		{
  1249 		iChangeFinder->ResetL();
  1261 		iChangeFinder->ResetL();
  1250 		}
  1262 		FetchModificationsL();
  1251 		
  1263 		}
  1252 	iSnapshotRegistered = EFalse;
  1264 	
  1253 	
  1265     User::RequestComplete( iCallerStatus, KErrNone );
  1254 	error = FetchModificationsL();
       
  1255 	
       
  1256     User::RequestComplete( iCallerStatus, error );
       
  1257 	
  1266 	
  1258 	_DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): end");
  1267 	_DBG_FILE("CNSmlContactsDataStore::DoResetChangeInfoL(): end");
  1259 	}
  1268 	}
  1260 
  1269 
  1261 // ----------------------------------------------------------------------------
  1270 // ----------------------------------------------------------------------------
  1524 	CBufBase* bItem = LdoMergeLC( aUid, aItem );
  1533 	CBufBase* bItem = LdoMergeLC( aUid, aItem );
  1525 	HBufC8* hItemBuf = HBufC8::NewL( bItem->Size() + 80 );
  1534 	HBufC8* hItemBuf = HBufC8::NewL( bItem->Size() + 80 );
  1526 	*hItemBuf = bItem->Ptr(0);
  1535 	*hItemBuf = bItem->Ptr(0);
  1527 	CleanupStack::PopAndDestroy(); // bItem
  1536 	CleanupStack::PopAndDestroy(); // bItem
  1528 	CleanupStack::PushL( hItemBuf );
  1537 	CleanupStack::PushL( hItemBuf );
  1529 	//StripPropertyL( hItemBuf, KVersitTokenUID() );
  1538 	StripPropertyL( hItemBuf, KVersitTokenUID() );
       
  1539 	
  1530 	TPtr8 hItemPtr( hItemBuf->Des() );
  1540 	TPtr8 hItemPtr( hItemBuf->Des() );
       
  1541 	HBufC8* endPropBuf = HBufC8::NewLC( KVersitTokenEND().Length() + KVersitTokenCRLF().Length() + KVersitTokenColon().Length() );
       
  1542 	TPtr8 endPropPtr( endPropBuf->Des() );
       
  1543 	endPropPtr.Append( KVersitTokenCRLF() );
       
  1544 	endPropPtr.Append( KVersitTokenEND() ); 
       
  1545 	endPropPtr.Append( KVersitTokenColon() ); 
       
  1546 	TInt endPos = hItemPtr.Find( endPropPtr );
       
  1547 	if( endPos == KErrNotFound )
       
  1548 		{
       
  1549 		User::Leave( KErrNotSupported );
       
  1550 		}
       
  1551 	hItemPtr.Insert( endPos, KVersitTokenCRLF() );
       
  1552 	endPos += KVersitTokenCRLF().Length();
       
  1553 	hItemPtr.Insert( endPos, KVersitTokenUID() );
       
  1554 	endPos += KVersitTokenUID().Length();
       
  1555 	hItemPtr.Insert( endPos, KVersitTokenColon() );
       
  1556 	endPos += KVersitTokenColon().Length();
       
  1557 	hItemPtr.Insert( endPos, *contactitem->iGuid );
  1531 	
  1558 	
  1532 	DBG_DUMP((void*)hItemPtr.Ptr(), hItemPtr.Length(),
  1559 	DBG_DUMP((void*)hItemPtr.Ptr(), hItemPtr.Length(),
  1533 	            _S8("CNSmlContactsDataStore::LdoUpdateItemL(): MergedItem:"));
  1560 	            _S8("CNSmlContactsDataStore::LdoUpdateItemL(): MergedItem:"));
       
  1561 	
       
  1562 	CleanupStack::PopAndDestroy( endPropBuf );
  1534 
  1563 
  1535 	// TODO: Get it reviewed
  1564 	// TODO: Get it reviewed
  1536 	CArrayFixFlat<TUid>* entryArray = NULL;
  1565 	CArrayFixFlat<TUid>* entryArray = NULL;
  1537     TRAP( ret, entryArray = iContactsDataStoreExtension->ImportContactsL( hItemPtr ) );
  1566     TRAP( ret, entryArray = iContactsDataStoreExtension->ImportContactsL( hItemPtr ) );
  1538 	
  1567 	
  1738     TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys,
  1767     TInt error = RProperty::Get( KPSUidDataSynchronizationInternalKeys,
  1739                                      KDataSyncStatus,
  1768                                      KDataSyncStatus,
  1740                                      value );
  1769                                      value );
  1741     if ( error == KErrNone && value == EDataSyncRunning )
  1770     if ( error == KErrNone && value == EDataSyncRunning )
  1742         {
  1771         {
  1743         _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL(): END");
  1772         _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL() 1.1.2: END");
  1744         return KNSmlContactsStoreFormatRsc_1_1_2;
  1773         return KNSmlContactsStoreFormatRsc_1_1_2;
  1745         }
  1774         }
  1746     else // error or protocol version 1.2 
  1775     else // error or protocol version 1.2 
  1747         {
  1776         {
  1748         _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL(): END");
  1777         _DBG_FILE("CNSmlContactsDataStore::GetStoreFormatResourceFileL() 1.2: END");
  1749         return KNSmlContactsStoreFormatRsc_1_2;
  1778         return KNSmlContactsStoreFormatRsc_1_2;
  1750         }
  1779         }
  1751     }
  1780     }
  1752 
  1781 
  1753 
  1782