--- /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 <nifvar.h>
+#include <CommDbConnPref.h>
+
+//--------------------------------------------------------------------------
+//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