diff -r 000000000000 -r dd21522fd290 browserutilities/connectionmanager/Inc/ConnManActiveConnector.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/connectionmanager/Inc/ConnManActiveConnector.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,169 @@ +/* +* 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. +* +* +*/ + + +#ifndef ConnMan_Active_Connector_H +#define ConnMan_Active_Connection_H + +#include +#include + + +class TCommDbConnPref; +class TConnSnapPref; + +const TInt KStageGoingBackwardsError = 10602; +//This class plays the role of a high level state machine in the connection creation +NONSHARABLE_CLASS( CConnManActiveConnector ): public CActive + { +public: + + /** + *Constructor + *@param aAgent an RGenerericAgent + *@param aPriority the priority of the active object + */ + CConnManActiveConnector( RConnection& aConnection, TInt aPriority = EPriorityStandard ); + + /** + *Destructor + */ + virtual ~CConnManActiveConnector(); + + /** + *This will activate the active object and start the connection creation process + *It will complete on error or when the connection has been created + *An important precondition: the agent that was passed must be opened before calling this function + *and must not be closed before it completes + *@param aSettings the overridesettings containing the connection characteristics + *@param aStatus the status of the observer Active object + */ + void StartConnection( TCommDbConnPref* aSettings, TRequestStatus& aStatus ); + + /** + *This will activate the active object and start the connection creation process + *It will complete on error or when the connection has been created + *An important precondition: the agent that was passed must be opened before calling this function + *and must not be closed before it completes + *@param aSettings the overridesettings containing the connection characteristics + *@param aStatus the status of the observer Active object + */ + void StartConnection( TConnSnapPref* aSettings, TRequestStatus& aStatus); + +private://from CActive + + /** + *This method is implemented to enable proper cancellation of the active obect + */ + void DoCancel(); + + /** + *RunL contains the decisions in different stages of the connection progress + */ + void RunL(); + +private: + + TRequestStatus* iExternalRequestStatus; + RConnection& iConnection; + }; + + +//This is a wrapper class on top of CConnManActiveConnector enabling asynch->synch conversion +NONSHARABLE_CLASS( CActiveConnectorSyncWrapper ): public CActive + { +public: + /** + *Symbian OS constructor + *@param aAgent a RGenerericAgent + *@param aPriority the priority of the active object + */ + static CActiveConnectorSyncWrapper * NewL( RConnection& aConnection, TInt aPriority = EPriorityStandard ); + static CActiveConnectorSyncWrapper * NewL( TInt aPriority = EPriorityStandard ); + + /** + *Symbian OS constructor + *@param aAgent a RGenerericAgent + *@param aPriority the priority of the active object + */ +// static CActiveConnectorSyncWrapper * NewLC( RGenericAgent& aAgent, TInt aPriority = EPriorityStandard ); CHANGED + static CActiveConnectorSyncWrapper * NewLC( RConnection& aConnection, TInt aPriority = EPriorityStandard ); + +public: + + /** + *This will activate the active object and start the connection creation process + *The it will return on error or when the connection has been created + *An important precondition: the agent that was passed must be opened before calling this function + *and must not be closed before it completes + *@param aSettings the overridesettings containing the connection characteristics + *@return the error code + */ + TInt Connect( TCommDbConnPref* aSettings ); + + /** + *This will activate the active object and start the connection creation process + *The it will return on error or when the connection has been created + *An important precondition: the agent that was passed must be opened before calling this function + *and must not be closed before it completes + *@param aSettings the overridesettings containing the connection characteristics + *@return the error code + */ + TInt ConnectSnap( TConnSnapPref* aSettings ); + +public: + + /** + *Destructor + */ + virtual ~CActiveConnectorSyncWrapper(); + +private://from CActive + + /** + *This function will release the active scheduler loop + */ + void RunL(); + /** + *This function too releases the active scheduler loop + */ + void DoCancel(); + +protected: + + /** + *Symbian OS second phase constructor + *@param aAgent a RGenericAgent handle + */ + void ConstructL( RConnection& aConnection ); + + /** + *constructor + *@param aPiority the priority of the active object + */ + CActiveConnectorSyncWrapper( TInt aPriority ); + +private: + + CActiveSchedulerWait iWait; + CConnManActiveConnector* iActiveConnector; + }; + +#endif// End of File