uiservicetab/vimpststorage/src/cvimpststoragevpbkserverstore.cpp
branchRCL_3
changeset 23 9a48e301e94b
equal deleted inserted replaced
22:3104fc151679 23:9a48e301e94b
       
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Class that provides handling of vpbk server store
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 // INCLUDE FILES
       
    21 #include "cvimpststoragevpbkserverstore.h"
       
    22 
       
    23 #include "cvimpststoragevpbkstorehandler.h"
       
    24 
       
    25 #include <MVPbkContactView.h>
       
    26 #include <CVPbkContactIdConverter.h>
       
    27 #include "uiservicetabtracer.h"
       
    28 #include "tvimpstconsts.h"
       
    29 #include "mvimpststorageserviceview.h"
       
    30 #include <CVPbkContactLinkArray.h>
       
    31 #include <MVPbkContactLink.h>
       
    32 #include "cvimpststoragecontact.h"
       
    33 
       
    34 // ================= MEMBER FUNCTIONS =======================
       
    35 
       
    36 // ---------------------------------------------------------------------------
       
    37 // CVIMPSTStorageVPbkServerStore::
       
    38 //      CVIMPSTStorageVPbkServerStore
       
    39 // ---------------------------------------------------------------------------
       
    40 //
       
    41 CVIMPSTStorageVPbkServerStore:: CVIMPSTStorageVPbkServerStore( MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter ):
       
    42     CActive( CActive::EPriorityIdle ),
       
    43     iServiceCacheWriter( aServiceCacheWriter ),
       
    44     iFetchStep( EFetchingUnknown )
       
    45     { 
       
    46 	TRACER_AUTO;
       
    47     CActiveScheduler::Add( this );
       
    48     }
       
    49 
       
    50 // ---------------------------------------------------------------------------
       
    51 // CVIMPSTStorageVPbkServerStore::ConstructL
       
    52 // ---------------------------------------------------------------------------
       
    53 //
       
    54 void CVIMPSTStorageVPbkServerStore::ConstructL( const TDesC& aContactDb, const TDesC& aServiceName)
       
    55     {
       
    56 	TRACER_AUTO;
       
    57     iVPbkStoreHandler = CVIMPSTStorageVPbkStoreHandler::NewL( aContactDb,aServiceName, *this, EFalse );
       
    58     
       
    59     }
       
    60 
       
    61 // ---------------------------------------------------------------------------
       
    62 // CVIMPSTStorageVPbkServerStore::NewL
       
    63 // ---------------------------------------------------------------------------
       
    64 //
       
    65 CVIMPSTStorageVPbkServerStore* 
       
    66     CVIMPSTStorageVPbkServerStore::NewL( const TDesC& aContactDb,
       
    67     									 const TDesC& aServiceName,
       
    68     									MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter )
       
    69     {
       
    70 	TRACER_AUTO;
       
    71     CVIMPSTStorageVPbkServerStore* self = NewLC( aContactDb, 
       
    72     											 aServiceName, 
       
    73     											 aServiceCacheWriter );
       
    74     CleanupStack::Pop( self );
       
    75    
       
    76     return self;
       
    77     
       
    78     }
       
    79 
       
    80 // ---------------------------------------------------------------------------
       
    81 // CVIMPSTStorageVPbkServerStore::NewLC
       
    82 // ---------------------------------------------------------------------------
       
    83 //
       
    84 CVIMPSTStorageVPbkServerStore* 
       
    85     CVIMPSTStorageVPbkServerStore::NewLC(const TDesC& aContactDb,
       
    86     									const TDesC& aServiceName,
       
    87     									MVIMPSTStorageServiceCacheWriter& aServiceCacheWriter )
       
    88     {
       
    89 	TRACER_AUTO;
       
    90     CVIMPSTStorageVPbkServerStore* self =
       
    91         new (ELeave) CVIMPSTStorageVPbkServerStore(aServiceCacheWriter);
       
    92     CleanupStack::PushL( self );
       
    93     self->ConstructL( aContactDb,aServiceName );
       
    94     
       
    95     return self;    
       
    96     }
       
    97 
       
    98 // ---------------------------------------------------------------------------
       
    99 // CVIMPSTStorageVPbkServerStore::
       
   100 //      ~CVIMPSTStorageVPbkServerStore
       
   101 // ---------------------------------------------------------------------------
       
   102 //
       
   103 CVIMPSTStorageVPbkServerStore::~CVIMPSTStorageVPbkServerStore()
       
   104     {
       
   105 	TRACER_AUTO;
       
   106     iRetrivedXSPIdArray.ResetAndDestroy();
       
   107     TRAP_IGNORE( ResetAndDestroyLocalArrayL() );
       
   108     delete iVPbkStoreHandler;
       
   109     
       
   110     }
       
   111 
       
   112  // ---------------------------------------------------------------------------
       
   113 // CVIMPSTStorageVPbkServerStore::ResetAndDestroyLocalArrayL
       
   114 // ---------------------------------------------------------------------------
       
   115 //
       
   116 void CVIMPSTStorageVPbkServerStore::ResetAndDestroyLocalArrayL()
       
   117     {
       
   118 	TRACER_AUTO;
       
   119     TInt count = iFetchContactsToBeAdded.Count();
       
   120    	while( count )
       
   121 	   	{
       
   122 	   	TVIMPSTContactInfo contactInf = iFetchContactsToBeAdded[ count-1 ];
       
   123 	   	iFetchContactsToBeAdded.Remove( count-1 );
       
   124 		delete contactInf.iUserId;
       
   125 		contactInf.iUserId = NULL;	
       
   126 		delete contactInf.iDisplayName;
       
   127 		contactInf.iDisplayName = NULL;				         
       
   128          // not exist need to add 
       
   129         iFetchContactsToBeAdded.Compress();	
       
   130         count = iFetchContactsToBeAdded.Count();
       
   131 	   	}
       
   132 	iFetchContactsToBeAdded.Reset();
       
   133    
       
   134     }
       
   135 // ----------------------------------------------------------
       
   136 // CVIMPSTStorageVPbkServerStore::LocalStore
       
   137 // ----------------------------------------------------------
       
   138 //
       
   139 TBool CVIMPSTStorageVPbkServerStore::LocalStore() const 
       
   140 	{
       
   141 	TRACER_AUTO;
       
   142 	return EFalse;	
       
   143 	}
       
   144 
       
   145 // ---------------------------------------------------------------------------
       
   146 // CVIMPSTStorageVPbkServerStore::HandleVPbkStoreEventL
       
   147 // ---------------------------------------------------------------------------
       
   148 //
       
   149 void CVIMPSTStorageVPbkServerStore::HandleVPbkStoreEventL(TVIMPSTVPbkStoreEvent aVPbkStoreEvent) 
       
   150     {
       
   151 	TRACER_AUTO;
       
   152     switch( aVPbkStoreEvent.iEventType )
       
   153         {
       
   154         case EVPbkContactReadCompleted:
       
   155             {
       
   156             TRACE( "EVPbkContactReadCompleted started" );
       
   157             iServiceCacheWriter.NotifyServiceViewL(TVIMPSTEnums::EStorageContactReadComplete);
       
   158             if( iFetchStep == EFetchingCalled )
       
   159                 {
       
   160                 TRACE( "EVPbkContactReadCompleted fetcing in progress " );
       
   161                 IssueRequest();		
       
   162                 }
       
   163             TRACE( "iFetchStep set to state EContactReadComplete" );
       
   164             iFetchStep = EContactReadComplete;
       
   165             TRACE( " completed"  );
       
   166             break;
       
   167             }
       
   168         case EVPbkContactReading:
       
   169             {
       
   170             TRACE(" EVPbkContactReading started");
       
   171              // a contact entry has been created in virtual database store
       
   172             // create the cache contact
       
   173             // fetched one by one contact from cdb file
       
   174             // Add to storage cache
       
   175             
       
   176             iServiceCacheWriter.AddContactToCacheL(*aVPbkStoreEvent.iContactLink , 
       
   177                     aVPbkStoreEvent.iUserId ,
       
   178                     aVPbkStoreEvent.iDisplayName ,
       
   179                     aVPbkStoreEvent.iAvatarContent,
       
   180                     TVIMPSTEnums::EStorageContactReading  );
       
   181             TRACE( "EVPbkContactReading completed"  );
       
   182 		    break;	
       
   183 		    }
       
   184         case EVPbkContactFetching:
       
   185         case EVPbkContactAdded:
       
   186             {
       
   187             TRACE( "EVPbkContactAdded or EVPbkContactFetching"  );
       
   188             TVIMPSTEnums::TVIMPSTStorgaeEventType event = TVIMPSTEnums::EStorageEventContactAddition;
       
   189             // a contact entry has been created in virtual database store
       
   190             // create the cache contact
       
   191             // fetched one by one contact from cdb file
       
   192             // Add to storage cache
       
   193             if( iFetchStep == EFetchingOn )
       
   194                 {
       
   195                 event = TVIMPSTEnums::EStorageContactFetching;
       
   196                 } 
       
   197             iServiceCacheWriter.AddContactToCacheL(*aVPbkStoreEvent.iContactLink , 
       
   198                     aVPbkStoreEvent.iUserId ,
       
   199                     aVPbkStoreEvent.iDisplayName ,
       
   200                     aVPbkStoreEvent.iAvatarContent,
       
   201                     event );
       
   202             if(iFetchStep == EFetchingOn)			
       
   203                 {
       
   204                 TRACE( "EVPbkContactAdded or EVPbkContactFetching fetchin on"  );
       
   205                 IssueRequest();
       
   206                 }
       
   207             TRACE( " EVPbkContactAdded or EVPbkContactFetching completed"  );
       
   208             break;	
       
   209             }
       
   210         case EVPbkContactSynchronizing:
       
   211             {
       
   212             TRACE( "EVPbkContactSynchronizing "  );
       
   213             // a contact entry has been created in virtual database store
       
   214             // create the cache contact
       
   215             // fetched one by one contact from cdb file
       
   216             // Add to storage cache
       
   217             iServiceCacheWriter.AddContactToCacheL(*aVPbkStoreEvent.iContactLink , 
       
   218                     aVPbkStoreEvent.iUserId ,
       
   219                     aVPbkStoreEvent.iDisplayName ,
       
   220                     aVPbkStoreEvent.iAvatarContent,
       
   221                     TVIMPSTEnums::EStorageContactSynchronizing );
       
   222             TRACE( "EVPbkContactSynchronizing(iFetchStep): %d " , iFetchStep );
       
   223             if(iFetchStep == EFetchingOn)          
       
   224                    {
       
   225                    TRACE( " EVPbkContactSynchronizing fetchin on"  );
       
   226                    IssueRequest();
       
   227                    }
       
   228             TRACE( " EVPbkContactSynchronizing completed"  );
       
   229             break;
       
   230             }
       
   231         case EVPbkContactDeleted:
       
   232             {
       
   233             TRACE( "EVPbkContactDeleted Event" );
       
   234             // a contact entry has been deleted from virtual database store
       
   235             // delete from cache contact
       
   236             // not Needed in case of server contact
       
   237             iServiceCacheWriter.RemoveContactFromCacheL(*aVPbkStoreEvent.iContactLink,
       
   238                     TVIMPSTEnums::EStorageEventContactDelete );
       
   239             TRACE( " EVPbkContactDeleted Event done" );
       
   240             break;	 
       
   241             }
       
   242         case EVPbkContactChanged:
       
   243             {
       
   244             TRACE( " EVPbkContactChanged started" );
       
   245             // a contact entry has been updated to virtual database store
       
   246             // update to cache contact
       
   247             // not Needed in case of server contact
       
   248             iServiceCacheWriter.UpdateCacheContactL(*aVPbkStoreEvent.iContactLink , 
       
   249                     aVPbkStoreEvent.iUserId ,
       
   250                     aVPbkStoreEvent.iDisplayName,
       
   251                     aVPbkStoreEvent.iAvatarContent);
       
   252             if(iFetchStep == EFetchingOn)         
       
   253                   {
       
   254                   TRACE(" EVPbkContactAdded or EVPbkContactFetching fetchin on"  );
       
   255                   IssueRequest();
       
   256                   }
       
   257             TRACE( " EVPbkContactChanged started" );
       
   258             break;	
       
   259             }
       
   260         case EVPbkContactRetriving:
       
   261             {
       
   262             TRACE( " EVPbkContactRetriving started " );
       
   263             // ONLY VALID USER ID ALLOWED
       
   264             if( aVPbkStoreEvent.iUserId.Length() )
       
   265                 {
       
   266                 TRACE( "EVPbkContactRetriving valid id " );
       
   267                 HBufC* sxpId = aVPbkStoreEvent.iUserId.AllocL();
       
   268                 iRetrivedXSPIdArray.Append( sxpId ); // takes the ownership of retrivedContact
       
   269                 // keep the backup of retrieved contacts
       
   270                 // user can add later once it sent to server
       
   271                 }
       
   272             TRACE( " EVPbkContactRetriving done" );
       
   273             break;	
       
   274             }
       
   275         case EVPbkUnknownChanges:
       
   276             {
       
   277             TRACE( " EVPbkUnknownChanges Event in" );
       
   278             // unknow mean all contact deleted from store
       
   279             // Not supported in case of server contact
       
   280             iServiceCacheWriter.RemoveAllCacheContactsL();
       
   281             if(iFetchStep == EFetchingCalled )
       
   282                 { 
       
   283                 TRACE( " EVPbkUnknownChanges fetching on" );               
       
   284                 IssueRequest();
       
   285                 }
       
   286             TRACE( "EVPbkUnknownChanges Event done" );
       
   287             break;	
       
   288             }
       
   289         default:
       
   290             {
       
   291             TRACE( "default" );
       
   292             break;
       
   293             }
       
   294         }
       
   295    
       
   296     }
       
   297 
       
   298 
       
   299 // --------------------------------------------------------------------------
       
   300 // CVIMPSTStorageVPbkServerStore::IssueRequest
       
   301 // --------------------------------------------------------------------------
       
   302 //
       
   303 void CVIMPSTStorageVPbkServerStore::IssueRequest()
       
   304     {
       
   305 	TRACER_AUTO;
       
   306     if( !IsActive() )
       
   307         {
       
   308         TRequestStatus* status = &iStatus;
       
   309         TRACE( "RequestComplete");
       
   310         User::RequestComplete( status, KErrNone );
       
   311         SetActive();
       
   312         }
       
   313    
       
   314     }
       
   315     
       
   316 // --------------------------------------------------------------------------
       
   317 // CVIMPSTStorageVPbkServerStore::RunL
       
   318 // --------------------------------------------------------------------------
       
   319 //
       
   320 void CVIMPSTStorageVPbkServerStore::RunL()
       
   321     {
       
   322 	TRACER_AUTO;
       
   323     TInt count = iFetchContactsToBeAdded.Count();
       
   324     TRACE( " count = %d",count );
       
   325     if( !count )
       
   326         {
       
   327         TRACE(" set to state EContactReadComplete" );
       
   328         iFetchStep = EContactReadComplete;
       
   329         iServiceCacheWriter.NotifyServiceViewL( TVIMPSTEnums::EStorageContactFetchComplete );
       
   330         TRACE( "calling NotifyFetchCompleteL" );
       
   331         }
       
   332     else
       
   333         {
       
   334         TRACE( " set to state EFetchingOn" );
       
   335         iFetchStep  = EFetchingOn;
       
   336         TVIMPSTContactInfo contactInfoToAdd = iFetchContactsToBeAdded[0];
       
   337         // pass the display NAme in place of NULL
       
   338         TRACE( "calling CreateVPbkContactL" );
       
   339        	iVPbkStoreHandler->CreateVPbkContactL( *contactInfoToAdd.iUserId, *contactInfoToAdd.iDisplayName ); // process always 0th item	
       
   340 	    
       
   341 	    iFetchContactsToBeAdded.Remove( 0 );
       
   342         delete contactInfoToAdd.iUserId;
       
   343         contactInfoToAdd.iUserId = NULL;
       
   344         delete contactInfoToAdd.iDisplayName;
       
   345         contactInfoToAdd.iDisplayName = NULL ;
       
   346         
       
   347         iFetchContactsToBeAdded.Compress();
       
   348         }
       
   349    
       
   350     }
       
   351 
       
   352 // --------------------------------------------------------------------------
       
   353 // CVIMPSTStorageVPbkServerStore::DoCancel
       
   354 // --------------------------------------------------------------------------
       
   355 //
       
   356 void CVIMPSTStorageVPbkServerStore::DoCancel()
       
   357     {
       
   358 	TRACER_AUTO;
       
   359     }
       
   360 
       
   361 // --------------------------------------------------------------------------
       
   362 // CVIMPSTStorageVPbkServerStore::RunError
       
   363 // --------------------------------------------------------------------------
       
   364 //
       
   365 TInt CVIMPSTStorageVPbkServerStore::RunError( TInt aError )
       
   366     {
       
   367 	TRACER_AUTO;
       
   368     TRACE( "error code = %d", aError );
       
   369    
       
   370     return aError;    
       
   371     }
       
   372 
       
   373 //////////////////////////////////////////////////////////
       
   374 // ---------------------------------------------------------------------------
       
   375 // CVIMPSTStorageVPbkServerStore::CreateVPbkContactL
       
   376 // ---------------------------------------------------------------------------
       
   377 // 
       
   378 TInt CVIMPSTStorageVPbkServerStore::CreateVPbkContactL( const TDesC& aUserId, 
       
   379         						 					   const TDesC& aDisplayName,
       
   380         						 					   TBool /*aInvitationAutoAccept = EFalse */ )   
       
   381 	{
       
   382 	TRACER_AUTO;
       
   383     return iVPbkStoreHandler->CreateVPbkContactL( aUserId ,aDisplayName );
       
   384 	}
       
   385 
       
   386 // -----------------------------------------------------------------------------
       
   387 // CVIMPSTStorageVPbkServerStore::AddVPbkFetchContactsL
       
   388 // -----------------------------------------------------------------------------
       
   389 //
       
   390  void CVIMPSTStorageVPbkServerStore::AddVPbkFetchContactsL( RArray <TPtrC>& aFirstNameList, 
       
   391                                                             RArray <TPtrC> &aServiceField ) 
       
   392      {
       
   393      // in case of server case we delete all contacts and then add fetch contacts
       
   394      // in case of server contacts delete all contacts
       
   395 	 TRACER_AUTO;
       
   396      TInt oldContactCount = RemoveAllVPbkContactsL();
       
   397      TRACE( " oldContactCount = %d", oldContactCount ); 
       
   398      ResetAndDestroyLocalArrayL();
       
   399      TInt fetchContactCount = aServiceField.Count();
       
   400      for( TInt i = 0; i<fetchContactCount; i++ )
       
   401          {
       
   402          TRACE( " Append = %d",i );
       
   403          TVIMPSTContactInfo contactInf =
       
   404 							         {
       
   405 							         aServiceField[i].AllocL() ,
       
   406 							         aFirstNameList[i].AllocL()	
       
   407 							         };
       
   408          iFetchContactsToBeAdded.Append( contactInf );
       
   409          }
       
   410      TRACE( "iFetchStep = %d", iFetchStep ); 
       
   411      if( iFetchStep == EContactReadComplete || !oldContactCount)
       
   412 	     {
       
   413 	     TRACE( "inside if" );
       
   414 	     IssueRequest();	
       
   415 	     }
       
   416 	 else
       
   417 		 {
       
   418          TRACE( " set to state EFetchingCalled" );
       
   419 		 iFetchStep = EFetchingCalled;	
       
   420 		 }
       
   421     
       
   422 	 }
       
   423 // ---------------------------------------------------------------------------
       
   424 // CVIMPSTStorageVPbkServerStore::RemoveVPbkContactL
       
   425 // ---------------------------------------------------------------------------
       
   426 //  
       
   427 TInt CVIMPSTStorageVPbkServerStore::RemoveVPbkContactL(const MVPbkContactLink& aContactLink) 
       
   428     {
       
   429 	TRACER_AUTO;;  
       
   430     // text now holds the name (or first field of the contact) 
       
   431     CVPbkContactLinkArray* contactsToDelete = CVPbkContactLinkArray::NewLC();
       
   432     MVPbkContactLink* link = aContactLink.CloneLC();    
       
   433     contactsToDelete->AppendL( link ); // takes ownership
       
   434     CleanupStack::Pop(); // link
       
   435     TInt error = iVPbkStoreHandler->RemoveVPbkContactL( *contactsToDelete );
       
   436     CleanupStack::PopAndDestroy(); // contactsToDelete
       
   437     TRACE( " error code = %d", error );
       
   438    
       
   439     return error;
       
   440     }
       
   441  
       
   442 // ---------------------------------------------------------------------------
       
   443 // CVIMPSTStorageVPbkServerStore::RemoveAllVPbkContactsL
       
   444 // ---------------------------------------------------------------------------
       
   445 // 
       
   446 TInt CVIMPSTStorageVPbkServerStore::RemoveAllVPbkContactsL() 
       
   447 	{
       
   448 	TRACER_AUTO;
       
   449 	iRetrivedXSPIdArray.ResetAndDestroy();
       
   450 	return iVPbkStoreHandler->RemoveAllVPbkContactsL();
       
   451 	}
       
   452 // ---------------------------------------------------------------------------
       
   453 // CVIMPSTStorageVPbkServerStore::RetrieveVPbkXSPIdL
       
   454 // ---------------------------------------------------------------------------
       
   455 //  
       
   456 TInt CVIMPSTStorageVPbkServerStore::RetrieveVPbkXSPIdL(const TDesC8& aPackedLinks ) 
       
   457 	{
       
   458 	TRACER_AUTO;
       
   459 	iRetrivedXSPIdArray.ResetAndDestroy();
       
   460 	TRACE( " iRetrivedXSPIdArray Reset"  );
       
   461 	iVPbkStoreHandler->RetrieveVPbkContactL( aPackedLinks );
       
   462 	
       
   463     return iRetrivedXSPIdArray.Count();
       
   464 	}
       
   465  
       
   466  // ---------------------------------------------------------------------------
       
   467 // CVIMPSTStorageVPbkServerStore::GetRetrieveVPbkXSPIdL
       
   468 // ---------------------------------------------------------------------------
       
   469 //  
       
   470 const TDesC& CVIMPSTStorageVPbkServerStore::GetRetrieveVPbkXSPIdL(TInt aIndex ) 
       
   471 	{
       
   472 	TRACER_AUTO;
       
   473 	HBufC* contactId = NULL;
       
   474 	if( aIndex >= 0 && aIndex < iRetrivedXSPIdArray.Count() )
       
   475         {
       
   476         contactId = iRetrivedXSPIdArray[ aIndex ];
       
   477         }
       
   478     if( contactId  )
       
   479 	    {
       
   480 		TRACE( "RetrieveVPbkXSPIdL() end");
       
   481 	    return 	*contactId;
       
   482 	    }
       
   483 	
       
   484     return KNullDesC ; 
       
   485     }
       
   486  // ---------------------------------------------------------------------------
       
   487 // CVIMPSTStorageVPbkServerStore::CreateRetriveVPbkContactL
       
   488 // ---------------------------------------------------------------------------
       
   489 // 
       
   490 TInt CVIMPSTStorageVPbkServerStore::CreateRetriveVPbkContactL( TInt /*aIndexToUse*/ )   
       
   491     {
       
   492 	TRACER_AUTO;
       
   493     // Not applicable for server store
       
   494     return KErrNotSupported;
       
   495     }
       
   496 // ---------------------------------------------------------------------------
       
   497 // CVIMPSTStorageVPbkServerStore::deleteRetriveVPbkContactL
       
   498 // ---------------------------------------------------------------------------
       
   499 // 
       
   500 TInt CVIMPSTStorageVPbkServerStore::deleteRetriveVPbkContactL( TInt /*aIndexToUse*/ )   
       
   501     {
       
   502 	TRACER_AUTO;
       
   503     // Not applicable for server store
       
   504     return KErrNotSupported;
       
   505     }
       
   506 // CVIMPSTStorageVPbkServerStore::UpdateAvatarFieldDataL()
       
   507 // ---------------------------------------------------------------------------
       
   508 //
       
   509 TInt CVIMPSTStorageVPbkServerStore::UpdateAvatarFieldDataL(const MVPbkContactLink& aContactLink,
       
   510 														  const TDesC8& aAvatartData )
       
   511     {
       
   512 	TRACER_AUTO;
       
   513     return iVPbkStoreHandler->UpdateAvatarFieldDataL( aContactLink, aAvatartData );
       
   514     }
       
   515 
       
   516 // ---------------------------------------------------------------------------
       
   517 // CVIMPSTStorageVPbkServerStore::RemoveAvatarFieldL()
       
   518 // ---------------------------------------------------------------------------
       
   519 //
       
   520 TInt CVIMPSTStorageVPbkServerStore::RemoveAvatarFieldL(MVPbkStoreContact& aStoreContact)
       
   521 	{
       
   522 	TRACER_AUTO;
       
   523 	return iVPbkStoreHandler->RemoveAvatarFieldL( aStoreContact );	
       
   524 	}
       
   525 
       
   526 // ----------------------------------------------------------
       
   527 // CVIMPSTStorageVPbkServerStore::DeleteDatabaseL
       
   528 // ----------------------------------------------------------
       
   529 void CVIMPSTStorageVPbkServerStore::DeleteDatabaseL()
       
   530     {
       
   531 	TRACER_AUTO;
       
   532    	// TODO : Not supported yet
       
   533    
       
   534     }
       
   535 // End of file
       
   536 
       
   537