serviceproviders/sapi_contacts_vpbk/contactservice/src/contactsynccallback.cpp
changeset 5 989d2f495d90
child 10 fc9cf246af83
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_contacts_vpbk/contactservice/src/contactsynccallback.cpp	Fri Jul 03 15:51:24 2009 +0100
@@ -0,0 +1,128 @@
+/*
+* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of the contactsynccallback class.
+*
+*/
+
+
+//system include
+#include <e32base.h>
+
+//user include
+#include "contactsynccallback.h"
+#include "singlecontact.h"
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback::contactsynccallback()
+    Description          : Default Constructor
+    Return values        : N/A
+-----------------------------------------------------------------------------
+*/
+CContactSyncCallback :: CContactSyncCallback():
+                            iIter(NULL),
+                            iError(KErrNone),
+                            iWaitScheduler(NULL),
+                            iErrKey(0)
+                     {
+                     }
+
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback::~contactsynccallback()
+    Description          : Destructor
+    Return values        : N/A
+-----------------------------------------------------------------------------
+*/
+CContactSyncCallback :: ~CContactSyncCallback()
+     {
+     iIter=NULL;
+     }
+
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback :: GetIter()
+    Description          : Getter method to get a pointer to the iterator does a shallow copy.
+    Return values        : pointer to class CContactIter
+-----------------------------------------------------------------------------
+*/
+
+ CContactIter* CContactSyncCallback :: GetIter()
+     {
+     return iIter;
+     }
+
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback :: GetErrorCode()
+    Description          : Getter method to get error code.
+    Return values        : Integer error code.
+-----------------------------------------------------------------------------
+*/
+ TInt CContactSyncCallback :: GetErrorCode()
+     {
+     return iError;
+     }
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback :: SetWaitScheduler()
+    Description          : setter method for the wait shceduler shallow copy owned by core class.
+    Return values        : Integer error code.
+-----------------------------------------------------------------------------
+*/
+ void CContactSyncCallback::SetWaitScheduler(CActiveSchedulerWait *aWaitScheduler)
+     {
+     iWaitScheduler = aWaitScheduler;
+     }
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback :: HandleReturnValue( TOperationEvent aEvent, const TInt& aError, TInt aTransId )
+    Description          : virtual method which is called by the core class if there is any event
+                         : in the asynchronous call.
+    Return values        : N/A
+-----------------------------------------------------------------------------
+*/
+ void CContactSyncCallback :: HandleReturnValue(TOperationEvent aEvent, 
+                                                const TInt& aError, 
+                                                TInt /*aTransId*/ )
+    {
+    if(aEvent == EInvalidKey)
+        {
+        iError = KErrNotSupported;
+        //TPtrC8 ptr = CSearchFields :: GetFieldKeyFromId(aError);         
+        iErrKey = aError;   
+        }
+    else
+        {
+        iError = aError;    
+        }    
+    //can be CActiveScheduler::Stop(); or to be replaced by wait scheduler.     
+    iWaitScheduler->AsyncStop();
+    }
+
+
+/*
+-----------------------------------------------------------------------------
+    contactsynccallback :: HandleReturnIter( TOperationEvent aEvent, const TInt& aError, CContactIter* aIter, TInt aTransId )
+    Description          : virtual method which is called by the core class if
+                         : any asynchronous call completes successfully
+    Return values        : N/A
+-----------------------------------------------------------------------------
+*/
+
+ void CContactSyncCallback :: HandleReturnIter( const TInt& /*aError*/, CContactIter* aIter, TInt /*aTransId*/ )
+     {         
+     iIter = aIter;     
+     //can be CActiveScheduler::Stop(); or to be replaced by wait scheduler.    
+     iWaitScheduler->AsyncStop();
+     }