diff -r 7b872347d83b -r 6d0b9f605b61 callcontinuity/vcc/inc/cvcctransferprovider.h --- a/callcontinuity/vcc/inc/cvcctransferprovider.h Tue Feb 02 00:05:57 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2008 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: Sends and receives DTMF tones -* -*/ - - - -#ifndef CVCCTRANSFERPROVIDER_H -#define CVCCTRANSFERPROVIDER_H - -class CVccPerformer; - -#include // MCCPTransferProvider -#include // MCCPTransferObserver - -/** - * DTMF provider. - * Contains DTMF providers from call providers and forward all requests between - * them and CCE - * - * @lib vccperformer.lib - * @since S60 v3.2 - */ -class CVccTransferProvider : public CBase, - public MCCPTransferProvider, - public MCCPTransferObserver - { - -public: - - /** - * Two-phased constructor. - * @param aProviders Service providers - * @param aObserver - * @param aDirector Reference to Director object - */ - static CVccTransferProvider* NewL ( CVccPerformer* aCall ); - - /** - * Destructor. - */ - virtual ~CVccTransferProvider(); - - /** - * Attended transfer to given call recipient. - * There needs to exist two calls. a call between A-B and A-C. A wants to transfer the call to B-C. - * Both calls A-B and A-C will be disconnected after transfer. - * In above case C will be the aTransferTargetCall call recipient. B is the recipient of the - * current call between A-B - called on A's call object transfer provider. - * The A-B call is on hold. - * Actual request result indication comes via observer classes - * @param aTransferTargetCall Call containing the transfer target info. - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in connected or on-hold state. - * @return KErrArgument transfer traget address was illegal. - * @pre Call state is MCCPCallObserver::ECCPStateConnected or MCCPCallObserver::ECCPStateHold - * @since S60 3.2 - */ - TInt AttendedTransfer( MCCPCall& aTransferTargetCall ); - - /** - * Attended transfer to given address. There does not need to be - * a current call between the given transfer target. - * Actual request result indication comes via observer class - * @param aTransferTarget Transfer target address - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in connected or on-hold state. - * @return KErrArgument transfer address was illegal. - * @pre Call state is MCCPCallObserver::ECCPStateConnected or MCCPCallObserver::ECCPStateHold - * @since S60 3.2 - */ - TInt AttendedTransfer( const TDesC& aTransferTarget ); - - /** - * Unattended transfer. Call is requested to be transferred to given address. - * After MCCPTransferObserver::ECCPRemoteTransferring event current call will be - * disconnected and no transfer status is checked from the operation. - * Actual request result indication comes via observer classes - * @since S60 3.2 - * @param aTransferTarget Address of the target - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in connected or on-hold state. - * @return KErrArgument transfer address was illegal. - * @pre Call state is MCCPCallObserver::ECCPStateConnected or MCCPCallObserver::ECCPStateHold - */ - TInt UnattendedTransfer( const TDesC& aTransferTarget ); - - /** - * Accept incoming call transfer request from the call remote party. - * Actual request result indication comes via observer class - * @since Series 60 3.2 - * @param aAccept ETrue - accept transfer, EFalse do not accept transfer request. - * @return KErrNone if request was started succesfully. - * @return KErrNotReady if call is not in connected or on-hold state. - * @return KErrArgument transfer address was illegal. - * @pre Call state is MCCPCallObserver::ECCPStateConnected or MCCPCallObserver::ECCPStateHold - * @pre MCCPObserver::CallCreated is called with the newly created call - */ - TInt AcceptTransfer( const TBool aAccept ); - - /** - * When the other end of the call has requested call transfer to third party it is notified to - * MCCPTransferObserver::TransferEventOccurred(MCCPTransferObserver::ECCPRemoteTransferring). - * The new recipient of the call can be fetched via this method. - * @since Series 60 3.2 - * @param none - * @return new recipient for the call after transfer - * @return KNullDesC if no transfer target is available - * @pre Call state is MCCPCallObserver::ECCPStateConnected or MCCPCallObserver::ECCPStateHold - * @pre MCCPObserver::CallCreated is called with the newly created call - */ - const TDesC& TransferTarget() const; - - /** - * Add an observer for transfer related events. - * Currently CCE will set only one observer. - * @since S60 v3.2 - * @param aObserver Observer to add. - * @return none - * @leave system error if observer adding fails - */ - void AddObserverL( const MCCPTransferObserver& aObserver ); - - /** - * Remove an observer. - * @since S60 v3.2 - * @param aObserver Observer to remove. - * @return KErrNone if removed succesfully. - * @return KErrNotFound if observer was not found. - */ - TInt RemoveObserver( const MCCPTransferObserver& aObserver ); - - void TransferEventOccurred( - const MCCPTransferObserver::TCCPTransferEvent aEvent ); - - void UpdateL(); -private: - - /** - * C++ constructor - * @param aObserver Reference to DTMF observer - * @param aDirector Reference to Director - */ - CVccTransferProvider( CVccPerformer* aCall ); - - /** - * Symbian second-phase constructor - * @param aProviders Reference to array of the Service Providers - */ - void ConstructL( ); - -private: // data - - /** - * DTMF event observers. - * Own. - */ - RPointerArray iObservers; - CVccPerformer* iPerfCall; - MCCPTransferProvider* iCallTransferProvider; - }; - -#endif // CVCCTRANSFERPROVIDER_H