/*
* Copyright (c) 2006-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: Implements the contact callback interface.
*
*/
#ifndef C_CCONTACTINTERFACECALLBACK_H
#define C_CCOTNACTINTERFACECALLBACK_H
// System includes
#include <e32base.h>
// User Includes
#include "contactcallback.h"
#include "contactinterface.hrh"
#include "contactiterator.h"
// Forward declarations
class MLiwNotifyCallback;
class CLiwGenericParamList;
/**
* CContactInterfaceCallback - Implements the contact callback interface.
* Passes the frames and notifies the the events
* through callback.
*/
class CContactInterfaceCallback : public CBase, public MContactCallback
{
public:
/**
* Two-phased constructor.
* @return CContactInterfaceCallback*
*/
static CContactInterfaceCallback* NewL();
/**
* Two-phased constructor.
* @return CContactInterfaceCallback*
*/
static CContactInterfaceCallback* NewL(CSingleContact* aContact);
static void ContactIDToUTF(HBufC* aContactID);
/**
* Destructor
*/
virtual ~CContactInterfaceCallback();
private:
/**
* Default constructor.
*/
CContactInterfaceCallback();
public:
/**
* Method to set the parameters for the callback.
* @param aCallback the callback to be called
* @param aTransId the transaction Id
* @param aInParamList to send back to LIW.
* @return void
*/
void SetParams( MLiwNotifyCallback* aCallback,
const TInt aTransId,
const CLiwGenericParamList* aInParamList );
/**
* Called when the any async operation returns with error or success
* @return void
*/
virtual void HandleReturnValue(TOperationEvent aEventId, const TInt& aError, TInt aTransId );
/**
* Called when the GetList returns the an iterator (which iterates over the output)
* @return void
*/
virtual void HandleReturnIter(const TInt& aError,CContactIter* aIter, TInt aTransId );
virtual void HandleReturnId(const TInt& aError, HBufC8* acntId, TInt aTransId );
virtual void HandleReturnArray( const TInt& aError, RPointerArray<HBufC8>& idArray, TInt aTransId );
private:
//Pointer to the MLiwNotifyCallback callback passed by consumer.
MLiwNotifyCallback* iCallback;
//Trasaction ID.
TInt iTransactionId;
//Referance to top the Input Parameter list passed by consumer.
const CLiwGenericParamList* iInParamList;
//Event Generic Parameter List
CLiwGenericParamList* iEventParamList;
//pointer to the single contact object needed for cleanup
CSingleContact* iContact;
};
#endif // C_CCOTNACTINTERFACECALLBACK_H