--- a/phoneplugins/csplugin/src/csptransferprovider.cpp Fri May 14 15:51:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-/*
-* Copyright (c) 2007-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: Contains the implementation of class CSPTransferProvider
-*
-*/
-
-
-#include <mccptransferprovider.h>
-#include <mccptransferobserver.h>
-#include <etelmm.h>
-#include <exterror.h>
-#include <mccpcall.h>
-
-#include "csptransferprovider.h"
-#include "csplogger.h"
-#include "mcspcallerrorobserver.h"
-#include "mcspcommoninfo.h"
-
-
-// ---------------------------------------------------------------------------
-// Two phased construction
-// ---------------------------------------------------------------------------
-//
-CSPTransferProvider* CSPTransferProvider::NewL (
- RMobileCall& aCall,
- MCSPCallErrorObserver& aErrorObserver,
- MCSPCommonInfo& aCommonInfo )
- {
- CSPTransferProvider* self =
- new ( ELeave ) CSPTransferProvider( aCall, aErrorObserver, aCommonInfo );
- CleanupStack::PushL( self );
- self->ConstructL( );
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor of the object.
-// ---------------------------------------------------------------------------
-//
-CSPTransferProvider::~CSPTransferProvider()
- {
- Cancel();
- iObservers.Close();
- }
-
-// ---------------------------------------------------------------------------
-// Transfers the call. CCE maps CS Transfer() to this method.
-// (UnattendedTransfer and others are VoIP features)
-// ---------------------------------------------------------------------------
-//
-TInt CSPTransferProvider::AttendedTransfer( MCCPCall& aTransferTargetCall )
- {
- TInt err ( KErrNone );
-
- if ( !IsActive() )
- {
- if ( iCall.SubSessionHandle() != 0 )
- {
- err = KErrNone;
- // send async request to Etel
- iCall.Transfer( iStatus );
- SetActive();
- if( aTransferTargetCall.State() == MCCPCallObserver::ECCPStateConnecting )
- {
- iCommonInfo.DontReportTerminationError();
- }
- }
- else
- {
- // transfer not allowed
- err = KErrNotSupported;
- }
- }
- else
- {
- err = KErrInUse;
- }
- CSPLOGSTRING2( CSPREQOUT,
- "CSPTransferProvider::AttendedTransfer: err: %d", err );
- // return error value
- return err;
- }
-
-// ---------------------------------------------------------------------------
-// Transfers the call. CCE maps CS Transfer() to this method.
-// (UnattendedTransfer and others are VoIP features)
-// ---------------------------------------------------------------------------
-//
-TInt CSPTransferProvider::AttendedTransfer( const TDesC& /*aTransferTarget*/ )
- {
- TInt err ( KErrNone );
-
- if ( !IsActive() )
- {
- if ( iCall.SubSessionHandle() != 0 )
- {
- err = KErrNone;
- // send async request to Etel
- iCall.Transfer( iStatus );
- SetActive();
- }
- else
- {
- // transfer not allowed
- err = KErrNotSupported;
- }
- }
- else
- {
- err = KErrInUse;
- }
- CSPLOGSTRING2( CSPREQOUT,
- "CSPTransferProvider::AttendedTransfer: err: %d", err );
- // return error value
- return err;
- }
-
-// ---------------------------------------------------------------------------
-// Not supported by CS Plug-in. This is a VoIP feature
-// ---------------------------------------------------------------------------
-//
-TInt CSPTransferProvider::UnattendedTransfer( const TDesC& /*aTransferTarget*/ )
- {
- return KErrNotSupported;
- }
-
-// ---------------------------------------------------------------------------
-// Not supported by CS Plug-in. This is a VoIP feature
-// ---------------------------------------------------------------------------
-//
-TInt CSPTransferProvider::AcceptTransfer( const TBool /*aAccept*/ )
- {
- return KErrNotSupported;
- }
-
-// ---------------------------------------------------------------------------
-// Not supported by CS Plug-in. This is a VoIP feature
-// ---------------------------------------------------------------------------
-//
-const TDesC& CSPTransferProvider::TransferTarget() const
- {
- return KNullDesC;
- }
-
-// ---------------------------------------------------------------------------
-// Notify observers about an occurred transfer event
-// ---------------------------------------------------------------------------
-//
-void CSPTransferProvider::TransferEventOccurred(
- const MCCPTransferObserver::TCCPTransferEvent aEvent )
- {
- CSPLOGSTRING2( CSPREQOUT,
- "CSPTransferProvider::TransferEventOccurred: event: %d", aEvent );
-
- for ( TInt i = 0; i < iObservers.Count(); i++ )
- {
- MCCPTransferObserver *obs = iObservers[i];
- if ( obs )
- {
- iObservers[i]->TransferEventOccurred( aEvent );
- }
- }
- }
-
-// ---------------------------------------------------------------------------
-// Adds observer to array
-// ---------------------------------------------------------------------------
-//
-void CSPTransferProvider::AddObserverL( const MCCPTransferObserver& aObserver )
- {
- if ( iObservers.Find( &aObserver ) == KErrNotFound )
- {
- iObservers.Append( &aObserver );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Removes observer from array
-// ---------------------------------------------------------------------------
-//
-TInt CSPTransferProvider::RemoveObserver( const MCCPTransferObserver& aObserver )
- {
- TInt found = iObservers.Find( &aObserver );
- if ( found != KErrNotFound )
- {
- iObservers.Remove( found );
- return KErrNone;
- }
- return found;
- }
-
-// ---------------------------------------------------------------------------
-// From CActive.
-// Handles request completion.
-// ---------------------------------------------------------------------------
-//
-void CSPTransferProvider::RunL()
- {
- CSPLOGSTRING2( CSPREQEND,
- "CSPTransferProvider::RunL: status: %d", iStatus.Int() );
-
- if ( iStatus == KErrNone )
- {
- MCCPTransferObserver::TCCPTransferEvent event =
- MCCPTransferObserver::ECCPLocalTransfer;
- TransferEventOccurred( event );
- }
- else
- {
- CSPLOGSTRING2( CSPERROR, "CSPTransferProvider::RunL: Error \
- %d", iStatus.Int() );
-
- TInt error = iStatus.Int();
- if ( error == KErrGsmCCFacilityRejected )
- {
- iErrorObserver.NotifyErrorOccurred( ECCPErrorRejected );
- }
- else if( error != KErrCancel )
- {
- iErrorObserver.NotifyErrorOccurred( ECCPTransferFailed );
- }
- }
-
- CSPLOGSTRING( CSPREQEND, "CSPTransferProvider::RunL End of RunL." );
- }
-
-// ---------------------------------------------------------------------------
-// Cancels the pending async request
-// ---------------------------------------------------------------------------
-//
-void CSPTransferProvider::DoCancel()
- {
- if ( iStatus == KRequestPending )
- {
- CSPLOGSTRING( CSPINT,
- "CSPTransferProvider::DoCancel Canceling pending request.." );
- // cancel request
- iCall.CancelAsyncRequest( EMobileCallTransfer );
- }
- }
-
-// ---------------------------------------------------------------------------
-// Default C++ constructor
-// ---------------------------------------------------------------------------
-//
-CSPTransferProvider::CSPTransferProvider(
- RMobileCall& aCall,
- MCSPCallErrorObserver& aErrorObserver,
- MCSPCommonInfo& aCommonInfo )
- : CActive( EPriorityStandard ),
- iCall (aCall),
- iErrorObserver( aErrorObserver ),
- iCommonInfo( aCommonInfo )
- {
- CSPLOGSTRING(CSPOBJECT, "CSPTransferProvider::CSPTransferProvider()" );
- CActiveScheduler::Add( this );
- }
-
-// ---------------------------------------------------------------------------
-// Constructing 2nd phase
-// ---------------------------------------------------------------------------
-//
-void CSPTransferProvider::ConstructL()
- {
- CSPLOGSTRING(CSPOBJECT, "CSPTransferProvider::ConstructL()" );
- }
-
-// End of File
-