diff -r 000000000000 -r af10295192d8 linklayercontrol/networkinterfacemgr/inc/CStateMachineAgentBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayercontrol/networkinterfacemgr/inc/CStateMachineAgentBase.h Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,92 @@ +/** +* Copyright (c) 2003-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: +* +*/ + + + +/** + @file CStateMachineAgentBase.H +*/ + +#if !defined(__CSTATEMACHINEAGENT_H__) +#define __CSTATEMACHINEAGENT_H__ + +#include +#include +#include + +class CStateMachineAgentBase : public CAgentBase, public MAgentNotify +/** + * An agent that owns a state machine + * @note This class is part of a compatibility layer for porting agent extensions (.agx) from v6.1 + * + * @publishedPartner + * @deprecated since v9.5. Use MCPRs/CPRs/SCPRs instead of agents. + */ + { +public: + IMPORT_C virtual ~CStateMachineAgentBase(); +protected: + IMPORT_C void ConstructL(); + IMPORT_C CStateMachineAgentBase(); +public: + // implementation of the CNifAgentBase interface + IMPORT_C virtual void Connect(TAgentConnectType aType); + IMPORT_C virtual void Connect(TAgentConnectType aType, CStoreableOverrideSettings* aOverrideSettings); + IMPORT_C virtual void CancelConnect(); + IMPORT_C virtual void Disconnect(TInt aReason); + IMPORT_C virtual TInt GetExcessData(TDes8& aBuffer); + IMPORT_C virtual TInt Notification(TNifToAgentEventType aEvent, TAny* aInfo); + IMPORT_C virtual void GetLastError(TInt& aError); + + // implementation of the MAgentNotify interface + IMPORT_C virtual void PreventConnectionRetries(); + IMPORT_C virtual void ServiceStarted(); + IMPORT_C virtual void ConnectionComplete(TInt aProgress, TInt aError); + IMPORT_C virtual void ConnectionComplete(TInt aError); + IMPORT_C virtual void DisconnectComplete(); + IMPORT_C virtual void UpdateProgress(TInt aProgress, TInt aError); + IMPORT_C virtual TInt Notification(TAgentToNifEventType aEvent, TAny* aInfo); + IMPORT_C virtual TInt IncomingConnectionReceived(); + IMPORT_C virtual TBool IsReconnect() const; + +protected: + enum TNotifyOperation + { + EUndefined, + EServiceStarted, + EConnectComplete, + EDisconnectComplete + }; + +protected: + virtual CAgentSMBase* CreateAgentSML(MAgentNotify& aObserver, CDialogProcessor* aDlgPrc, CCommsDbAccess& aDb, TCommDbConnectionDirection aDir) = 0; + void CreateAndStartStateMachineL(); + + void CallNotifyCb(TNotifyOperation aOperation, TInt aError); + static TInt NotifyCbComplete(TAny* aThisPtr); + void DoNotify(); + +protected: + CAgentSMBase* iStateMachine; + CAsyncCallBack* iNotifyCb; + TNotifyOperation iNotifyCbOp; + TInt iNotifyCbError; + TInt iDisconnectReason; + }; + +#endif +