diff -r 000000000000 -r 3553901f7fa8 telephonyprotocols/csdagt/src/ND_SCR.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/csdagt/src/ND_SCR.H Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,181 @@ +/** +* 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: +* Header for NetDial scripts. +* +* +*/ + + + +/** + @file Nd_scr.h + @internalComponent +*/ + +#ifndef __ND_SCR_H__ +#define __ND_SCR_H__ + +#include +#include +#include + +// Forward declarations + +class CDialOutSMBase; +class CCommsDbNetDialAccess; +class CDialogProcessor; +class CScriptExecutor; + +class MNetDialScriptObserver +/** +MNetDialScriptObserver class is used by CNetDialScript to complete the request of the calling state. + +@internalComponent +*/ + { +public: + virtual void ScriptFunctionComplete(TInt aError) =0; + }; + + +class CNetDialScript : public CActive, public MDialogProcessorObserver +/** +One of these per CDialOutSMBase object. Interfaces between state machine and the script +execution and script execution and the dialog server. Uses a CDialOutSMBase to callback on +completion of scanning and executing scripts, a CCommsDbAccess to access script and login +information from the database, and a CDialogProcessor for PCT commands. It owns a +CScriptExecutor object for controlling the script. + +@internalComponent +*/ + { +public: + static CNetDialScript* NewL(CCommsDbNetDialAccess* aDb,CDialogProcessor* aDlgPrc,RCall::TCommPort& aCommPort,TCommRole aRole,TInt aLength); + ~CNetDialScript(); + + // Script-related calls to script executor + void Scan(MNetDialScriptObserver& aObserver); + TBool GetLoginParamsL(MNetDialScriptObserver& aObserver, TBool aIsReconnect); + void ExecuteL(MNetDialScriptObserver& aObserver); + void CloseScript(); + void CleanupScript(); + + // Call from script executor on completion + virtual void ScriptOperationComplete(TInt aError); + + // IO-related calls to script executor + void ConfigureCommPort(TRequestStatus& aStatus, const TCommConfig& aConfig); + void CancelConfigureCommPort(); + void ReConfigureAndCancelCommPort(TRequestStatus& aStatus); + void DropSignals(TRequestStatus& aStatus); + void CreateChannel(TRequestStatus& aStatus); + void CancelCreateChannel(); + void ShutdownChannel(TRequestStatus& aStatus); + TInt GetExcessData(TDes8& aBuffer); + void DropDTR(TRequestStatus* aStatusPtr); + + // Calls to dialog serve + TInt WritePct(TDes& aBuffer); + void ReadPct(TDes& aBuffer); + void ClosePct(); + void CancelDialogServer(); + + // others + inline TPtrC LoginName() const; + inline TPtrC LoginPass() const; + inline TBool UsePct() const; + inline const TDesC& BcaStack() const; + inline TInt IapId() const; + + // Derived from MDialogProcessorObserver + virtual void MDPOLoginComplete(TInt aError); + virtual void MDPOReadPctComplete(TInt aError); + virtual void MDPODestroyPctComplete(TInt aError); + +protected: + // Derived from CActive + virtual void RunL(); + virtual void DoCancel(); + +private: + CNetDialScript(CCommsDbNetDialAccess* aDb,CDialogProcessor* aDlgPrc,TInt aLength); + void ConstructL(RCall::TCommPort& aCommPort,TCommRole aRole); + void GetAndSetScriptL(); + void SetLoginVarsL(); + void DoScanScriptL(); + void GetBcaStack(); + void GetIapIdL(); + // calls to the dialog server + TInt OpenPct(); + void DestroyPctNotification(); +private: + enum + { + EIdle =0, + EScanScript, + EGetLogin, + EExecute + } iState; + + CCommsDbNetDialAccess* iDb; + CDialogProcessor* iDlgPrc; + CScriptExecutor* iScriptExecutor; + MNetDialScriptObserver* iCurrentObserver; + TBool iUsePct; + TBool iPctOpen; + TBuf iLoginName; + TBuf iLoginPass; + TBuf iIPAddress; + TBuf iBcaStack; + TInt iIapId; + TBool iUseLoginDialog; + TInt iLength; + }; + +inline TPtrC CNetDialScript::LoginName() const +/** +Return login username. +*/ + { + return iLoginName; + } + +inline TPtrC CNetDialScript::LoginPass() const +/** +Return login password. +*/ + { + return iLoginPass; + } + +inline TBool CNetDialScript::UsePct() const +/** +Return PCT usage. +*/ + { + return iUsePct; + } + +inline const TDesC& CNetDialScript::BcaStack() const + { + return iBcaStack; + } + +inline TInt CNetDialScript::IapId() const + { + return iIapId; + } + +#endif