browserutilities/connectionmanager/Src/ConnManActiveConnector.cpp
changeset 0 dd21522fd290
child 27 6297cdf66332
--- /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