diff -r 000000000000 -r dd21522fd290 browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,226 @@ +/* +* Copyright (c) 2002 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: +* This class provides connection/session related information. +* Both the requested and the stored AP's are here. +* +* +*/ + + + +#include "ConnManActiveConnector.h" +#include "ConnectionManagerLogger.h" + +#include +#include + +//-------------------------------------------------------------------------- +//CConnManActiveConnector::CConnManActiveConnector() +//-------------------------------------------------------------------------- +CConnManActiveConnector::CConnManActiveConnector( RConnection& aConnection, + TInt aPriority ) + : CActive( aPriority ) + , iConnection( aConnection ) + { + CLOG_CREATE; + CActiveScheduler::Add( this );//inserting this into the queue + } + +//-------------------------------------------------------------------------- +//CConnManActiveConnector::~CConnManActiveConnector() +//-------------------------------------------------------------------------- +CConnManActiveConnector::~CConnManActiveConnector() + { + Cancel();//The standard way of destroying an Active object + CLOG_CLOSE; + } + +//-------------------------------------------------------------------------- +//CConnManActiveConnector::StartConnection() +//-------------------------------------------------------------------------- +void CConnManActiveConnector::StartConnection( TCommDbConnPref* aSettings, TRequestStatus& aStatus) + { + CLOG_WRITE( "CConnManActiveConnector:StartConnection is called"); + iExternalRequestStatus = &aStatus; + + if( aSettings ) + { +#ifdef __WINS__ + // aSettings->SetDialogPreference( ECommDbDialogPrefPrompt ); +#endif + + iConnection.Start( *aSettings, iStatus ); + } + else + { + iConnection.Start( iStatus ); + } + + SetActive(); + + *iExternalRequestStatus = KRequestPending; + } + +//-------------------------------------------------------------------------- +//CConnManActiveConnector::StartConnection() +//-------------------------------------------------------------------------- +void CConnManActiveConnector::StartConnection( TConnSnapPref* aSettings, TRequestStatus& aStatus) + { + CLOG_WRITE( "CConnManActiveConnector:StartConnection is called"); + iExternalRequestStatus = &aStatus; + + if( aSettings ) + { + iConnection.Start( *aSettings, iStatus ); + } + else + { + iConnection.Start( iStatus ); + } + + SetActive(); + + *iExternalRequestStatus = KRequestPending; + } + +//-------------------------------------------------------------------------- +//CConnManActiveConnector::DoCancel() +//-------------------------------------------------------------------------- +void CConnManActiveConnector::DoCancel() + { + CLOG_WRITE( "CConnManActiveConnector: DoCancel called"); + iConnection.Close(); + User::RequestComplete( iExternalRequestStatus, KErrCancel );//completing user req + CLOG_WRITE( "CConnManActiveConnector: DoCancel returned"); + } + +//-------------------------------------------------------------------------- +//CConnManActiveConnector::RunL() +//-------------------------------------------------------------------------- +void CConnManActiveConnector::RunL() + { + CLOG_WRITE_1( "CConnManAct::RunL(): %d", iStatus.Int() ); + User::RequestComplete( iExternalRequestStatus, iStatus.Int() ); + } + +//------------------------------------------------------ CActiveConnectorSyncWrapper ------------------------- + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::NewL() +//-------------------------------------------------------------------------- +CActiveConnectorSyncWrapper* + CActiveConnectorSyncWrapper::NewL( RConnection& aConnection + , TInt aPriority ) + { + CActiveConnectorSyncWrapper * self = CActiveConnectorSyncWrapper::NewLC( aConnection, aPriority ); + CleanupStack::Pop(); + return self; + } + + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::NewLC() +//-------------------------------------------------------------------------- +CActiveConnectorSyncWrapper * CActiveConnectorSyncWrapper::NewLC( RConnection& aConnection, TInt aPriority) + { + CActiveConnectorSyncWrapper * self = new ( ELeave )CActiveConnectorSyncWrapper( aPriority ); + CleanupStack::PushL( self ); + self->ConstructL( aConnection ); + return self; + } + + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::Connect() +//-------------------------------------------------------------------------- +TInt CActiveConnectorSyncWrapper::Connect( TCommDbConnPref* aSettings ) + { + iActiveConnector->StartConnection( aSettings, iStatus ); + SetActive(); + iWait.Start(); + return iStatus.Int(); + } + + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::ConnectSnap() +//-------------------------------------------------------------------------- + +TInt CActiveConnectorSyncWrapper::ConnectSnap( TConnSnapPref* aSettings ) + { + iActiveConnector->StartConnection( aSettings, iStatus ); + SetActive(); + iWait.Start(); + return iStatus.Int(); + } + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::~CActiveConnectorSyncWrapper() +//-------------------------------------------------------------------------- +CActiveConnectorSyncWrapper::~CActiveConnectorSyncWrapper() + { + Cancel(); + delete iActiveConnector; + } + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::RunL() +//-------------------------------------------------------------------------- +void CActiveConnectorSyncWrapper::RunL() + { + + if(iWait.IsStarted()) + { + iWait.AsyncStop(); + } + + } + + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::DoCancel() +//-------------------------------------------------------------------------- +void CActiveConnectorSyncWrapper::DoCancel() + { + + iActiveConnector->Cancel(); + + if(iWait.IsStarted()) + { + iWait.AsyncStop(); + } + + } + +//-------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::ConstructL() +//-------------------------------------------------------------------------- +void CActiveConnectorSyncWrapper::ConstructL( RConnection& aConnection ) + { + iActiveConnector = new ( ELeave ) CConnManActiveConnector( aConnection, Priority() ); + CLOG_ATTACH( iActiveConnector, this ); + } + + +//------------------------------------------------------------------------------- +//CActiveConnectorSyncWrapper::CActiveConnectorSyncWrapper() +//------------------------------------------------------------------------------- +CActiveConnectorSyncWrapper::CActiveConnectorSyncWrapper( TInt aPriority ): CActive( aPriority ) + { + CActiveScheduler::Add( this ); + } + + +//EOF