/*
* 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();
}
void CContactSyncCallback :: HandleReturnId(const TInt& /*aError*/,HBufC8* acntId , TInt /*aTransId*/ )
{
icntId = acntId;
iWaitScheduler->AsyncStop();
}
HBufC8* CContactSyncCallback :: GetId()
{
return icntId;
}
void CContactSyncCallback :: HandleReturnArray( const TInt& /*aError*/, RPointerArray<HBufC8>& idArray, TInt /*aTransId*/ )
{
//iIDArray = idArray;
for(TInt i = 0; i<idArray.Count(); i++)
{
TDesC8* idVal = idArray[i];
HBufC8* idBufVal = idVal->AllocL();
iIDArray.AppendL(idBufVal);
}
//can be CActiveScheduler::Stop(); or to be replaced by wait scheduler.
iWaitScheduler->AsyncStop();
}
void CContactSyncCallback::GetArray(RPointerArray<HBufC8>* aArray)
{
for(TInt i = 0; i<iIDArray.Count(); i++)
{
TDesC8* idVal = iIDArray[i];
HBufC8* idBufVal = idVal->AllocL();
aArray->AppendL(idBufVal);
delete idVal;
}
}