networkingtestandutils/networkingintegrationtest/NTRas/RASDEF.H
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkingtestandutils/networkingintegrationtest/NTRas/RASDEF.H	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,284 @@
+// Copyright (c) 1997-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:
+//
+
+#if !defined(__RASDEF_H__)
+#define __RASDEF_H__
+
+#include <es_ini.h>
+#include <ntras.h>
+#include <nifutl.h>
+#include <comms-infras/nifagt.h>
+#include "chat.h"
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <nifman_internal.h>
+#endif
+/**
+@internalComponent
+*/
+enum TNtRasPanic
+	{
+
+	ENtRasPanic_ObjectNotDeleted,
+	ENtRasPanic_BadState,	
+	};
+
+/**
+@internalComponent
+*/
+void Panic(TNtRasPanic aPanic);
+
+/**
+@internalComponent
+*/
+const TInt KNtRasAsyncCbPriority = 0;
+const TInt KKeyReaderPriority = 0;
+const TInt KChatterPriority = 0;
+const TInt KChatBufferSize = 64;
+const TInt KChatTimeout = 3000000;
+const TInt KChatMaxTries = 10;
+const TInt KCommRxBufSize = 64;
+const TInt KCommTimeout = 10000000;
+const TInt KCommReadPriority = 150;
+const TInt KCommWritePriority = 100;
+const TInt KCommTimerPrioiry = 5;
+const TInt KCommLineDropTime = 250000;
+
+class CNtRas;
+
+class CRasConnect : public CBase, public MComm, public MTimer, public MCommChatNotify
+/**
+@internalComponent
+*/
+	{
+	enum TRasConState
+		{ ERasConClosed, ERasConDropLines, ERasConConnecting,
+		  ERasConTokenSent, ERasConConnected, ERasConDisconnecting };
+public:
+	CRasConnect(CNtRas* aNtRas);
+	~CRasConnect();
+	static CRasConnect* NewL(CNtRas* aRas);
+	void ConstructL();
+
+	TPtrC8 ExcessData();
+	
+	// from MComm
+	virtual void CommReadComplete(TInt aStatus);
+	virtual void CommWriteComplete(TInt aStatus);
+	// from MTimer
+	virtual void TimerComplete(TInt aStatus);
+	// from MCommChatNotify
+	virtual void ChatStringMatch(CCommChatString* aString);
+	virtual void ChatTimeout();
+private:
+	void StartL();
+	TInt InitComm();
+	void Disconnect();
+	TInt SendClient();
+	void Complete(TInt aStatus);
+	void SendToken();
+private:
+	CNtRas* iNtRas;
+	CCommChatter* iChat;
+	TInt iRxBufOffset;
+	TBuf8<KCommRxBufSize> iRxBuf;
+	TRasConState iState;
+	TInt iTries;
+	TBool iCommOpen;
+	TUint32 iServerMode;
+    CCommChatString* iString;
+	};
+
+class CRasDatabase : public CBase
+/**
+@internalComponent
+*/
+	{
+public:
+
+	static CRasDatabase* NewL(CNtRas* aRas);
+	CRasDatabase(CNtRas* aRas);
+	~CRasDatabase();
+	TInt ReadField(const TDesC& aField, TUint32& aValue);
+	TInt ReadField(const TDesC& aField, TDes8& aValue);
+private:
+	void ConstructL();
+	CESockIniData* iIniFile;
+	CNtRas* iNtRas;
+	};
+
+class CConnectBox : public CActive
+/**
+@internalComponent
+*/
+	{
+public:
+	CConnectBox(CNtRas* aNtRas);
+	~CConnectBox();
+	static CConnectBox* NewL(CNtRas* aNtRas, TBool aReconnect);
+protected:
+	void ConstructL(TBool aReconnect);
+
+	virtual void RunL();
+	virtual void DoCancel();
+private:
+	CNtRas* iNtRas;
+	RNotifier iNotifier;
+	TBufC<5> iYes;
+	TBufC<5> iNo;
+	TBufC<20> iLine1;
+	TBufC<20> iLine2;
+	TInt iButtonVal;
+	TBool iReconnect;
+	};
+
+class CLoginBox : public CActive
+/**
+@internalComponent
+*/
+	{
+public:
+	CLoginBox(CNtRas* aNtRas);
+	~CLoginBox();
+	static CLoginBox* NewL(CNtRas* aNtRas, TDes& aUsername, TDes& aPassword);
+protected:
+	void ConstructL(TDes& aUsername, TDes& aPassword);
+	virtual void RunL();
+	virtual void DoCancel();
+private:
+	CNtRas* iNtRas;
+	};
+
+class CNtRasFactory : public CNifAgentFactory
+/**
+@internalComponent
+*/
+	{
+protected:
+	virtual void InstallL();
+	virtual CNifAgentBase *NewAgentL(const TDesC& aName);
+	virtual TInt Info(TNifAgentInfo& aInfo, TInt aIndex) const;
+	};
+
+class CNtRas : public CNifAgentBase
+/**
+@internalComponent
+*/
+	{
+public:
+	enum TRasOp
+		{
+		ERasOpStart,
+		ERasOpRestart,
+		ERasOpDisconnect,
+		ERasOpAuthenticate,
+		ERasOpReconnect
+		};
+
+	enum TRasState
+		{
+		ERasClosed,
+		ERasSelect,
+		ERasReconnect,
+		ERasConnect,
+		ERasOpen,
+		ERasAuthenticate
+		};
+
+public:
+	CNtRas();
+	virtual ~CNtRas();
+	void ConstructL();
+	
+	// from CNifAgentBase
+	virtual void Info(TNifAgentInfo& aInfo) const;
+	virtual void Connect(TAgentConnectType aType);
+	virtual void Connect(TAgentConnectType aType, CStoreableOverrideSettings* aOverrideSettings);
+	virtual void CancelConnect();
+	virtual void Reconnect();
+	virtual void CancelReconnect();
+	virtual void Authenticate(TDes& aUsername, TDes& aPassword);
+	virtual void CancelAuthenticate();
+	virtual void Disconnect(TInt aReason);
+	virtual TInt GetExcessData(TDes8& aBuffer);
+	virtual TInt Notification(TNifToAgentEventType aEvent, TAny* aInfo);
+	virtual TInt IncomingConnectionReceived();
+	virtual void GetLastError(TInt& aError);
+	virtual TBool IsActive() const;
+	virtual TBool IsReconnect() const;
+	virtual void SetConnectionSettingsL(const TConnectionSettings& aSettings);
+	virtual TConnectionSettings& ConnectionSettingsL();
+	virtual void SetOverridesL(CStoreableOverrideSettings* aOverrideSettings);
+	virtual CStoreableOverrideSettings* OverridesL();
+	virtual void RequestNotificationOfServiceChangeL(MAgentSessionNotify* aSession);
+	virtual void CancelRequestNotificationOfServiceChange(MAgentSessionNotify* aSession);
+	//
+	static void FillInInfo(TNifAgentInfo& aInfo);
+	void ConnectDialogComplete(TInt aStatus);
+	void AuthenticateDialogComplete(TInt aStatus);
+	void ConnectComplete(TInt aStatus);
+
+protected:
+	virtual TInt DoReadInt(const TDesC& aField, TUint32& aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoWriteInt(const TDesC& aField, TUint32 aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoReadDes(const TDesC& aField, TDes8& aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoWriteDes(const TDesC& aField, const TDesC8& aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoReadDes(const TDesC& aField, TDes16& aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoWriteDes(const TDesC& aField, const TDesC16& aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoReadBool(const TDesC& aField, TBool& aValue, const RMessagePtr2* aMessage );
+	virtual TInt DoWriteBool(const TDesC& aField, TBool aValue, const RMessagePtr2* aMessage );	
+	virtual HBufC* DoReadLongDesLC(const TDesC& aField, const RMessagePtr2* aMessage );
+
+
+private:
+	static TInt AsyCbHandler(TAny* aPtr);
+	void DoProcess();
+	void Process(TRasOp aOp);
+	TInt CommInitialise();
+
+private:
+	TRasOp iOp;
+	TRasState iState;
+	CAsyncCallBack* iAsyCb;
+	CRasDatabase* iDatabase;
+	CLoginBox* iLoginBox;
+	CConnectBox* iConnectBox;
+	CRasConnect* iConnector;
+
+	TDes* iUserNamePtr;
+	TDes* iPasswordPtr;
+
+	HBufC8* iExcessData;
+	TConnectionSettings iSettings;
+	};
+
+class Util
+/**
+@internalComponent
+*/
+	{
+public:
+	static TInt GetCommaSepToken(TLex& aLex, TPtrC& aPtr);
+	static TInt GetCommHandshake(const TDesC& aDes, TUint& aHandshake);
+	static TInt GetCommFormat(const TDesC& aDes, TDataBits& aDataBits, TStopBits& aStopBits, TParity& aParity);
+	static TInt GetCommSpeed(TInt aSpeed, TBps& aBps);
+	static void CommInit();
+	};
+
+/**
+@internalComponent
+*/
+_LIT(RAS_NIF_NAME, "ntras");
+
+#endif