telephonyprotocols/csdagt/src/ND_SCR.H
changeset 0 3553901f7fa8
--- /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 <cdblen.h>
+#include <etel.h>
+#include <comms-infras/dialogprocessor.h>
+
+// 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<KCommsDbSvrMaxUserIdPassLength> iLoginName;
+	TBuf<KCommsDbSvrMaxUserIdPassLength> iLoginPass;
+	TBuf<KCommsDbSvrMaxFieldLength> iIPAddress;
+	TBuf<KCommsDbSvrMaxFieldLength> 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