diff -r 000000000000 -r ff3b6d0fd310 telutils/telephonyservice/inc/ccallremotepartyinformationimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telutils/telephonyservice/inc/ccallremotepartyinformationimpl.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,122 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "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: +* +*/ + +#ifndef CCALLREMOTEPARTYINFORMATIONIMPL_H +#define CCALLREMOTEPARTYINFORMATIONIMPL_H + +#include + +#include "ctelsrvbase.h" + + +class MCallRemotePartyInfo; +class CCallRemotePartyInfos; +class MCallRemotePartyInformationObserver; +class CCallRemotePartyInfoIter; + +/** + * Implementation for CCallRemotePartyInformation API. + * + * @lib TelephonyService + * @since S60 5.2 + */ +NONSHARABLE_CLASS( CCallRemotePartyInformationImpl ) : public CTelSrvBase + { +public: + static CCallRemotePartyInformationImpl* NewL(); + static CCallRemotePartyInformationImpl* NewLC(); + + /** + * Destructor. + */ + virtual ~CCallRemotePartyInformationImpl(); + + /** + * Sets the observer for changes in remote party info. + * + * @since S60 v5.2 + * @param aObserver Observer for notifications. + */ + void NotifyChanges( MCallRemotePartyInformationObserver& aObserver ); + + /** + * Used to cancel previously placed NotifyChanges call. + * + * @since S60 v5.2 + */ + void CancelNotification(); + + /** + * Gets the snapshot of remote party information of ongoing calls. + * + * @since S60 v5.2 + * @return Remote party info of ongoing calls. + */ + CCallRemotePartyInfoIter& GetRemotePartyInformationL( ); + + /** + * Gets the remote party information of a call. + * + * @since S60 v5.2 + * @param aCallIndex Specifies a call. + * @return Remote party information. NULL if the remote party information + * is not available for call. Ownership not given. + */ + const MCallRemotePartyInfo* GetRemotePartyInformationL( TInt aCallIndex ); + +// from base class CTelSrvBase + + /** + * From CTelSrvBase. + * A response to a Mediator Service command. + * + * @since S60 v5.1 + * @param aData The parameters of the response. + */ + void DoHandleCommandResponseL( const TDesC8& aData ); + + + /** + * From CTelSrvBase. + * A Mediator Service event. + * + * @since S60 v5.1 + * @param aData The parameters of the event. + * @return None. + */ + void DoHandleMediatorEventL( const TDesC8& aData ); + +protected: + + CCallRemotePartyInformationImpl(); + + void ConstructL(CMediatorService* aMediatorService); + +private: // data + + /** + * Observer to be notified when call information changes + * Not own. + */ + MCallRemotePartyInformationObserver* iObserver; + + + CCallRemotePartyInfos* iRemotePartyInfos; + CCallRemotePartyInfoIter* iRemotePartyInfoIter; + }; + +#endif // CCALLREMOTEPARTYINFORMATIONIMPL_H