--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopBackATIO.H Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,149 @@
+// 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:
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef __SIO_H
+#define __SIO_H
+
+#include "Te_LoopBackSCHAT.H"
+#include "Te_LoopBackSCOMM.H"
+#include "Te_LoopBackATSTD.H" // for enum TPortAccess
+
+const TInt KKeyReaderPriority = 0;
+const TInt KChatterPriority = 0;
+const TInt KChatTimeout = 3000000;
+const TInt KCommRxBufSize = 800;
+const TInt KCommTimeout = 10000000;
+const TInt KCommReadPriority = 10;
+const TInt KCommWritePriority = 20;
+const TInt KCommTimerPriority = 5;
+
+const TInt KReadTimeOutSec=60;
+const TInt KWriteTimeOutSec=10;
+const TInt KInitialisationTimeOut=20;
+const TInt KDefaultTimeOutMillisec=5000;
+
+class CATIO;
+class CATBase;
+
+/**
+ * This class inherits from CBase and is used by the test harness to manage the expect
+ * strings. Every expect (or chat) string is associated with a completion entry. There
+ * is a list of expected strings managed by the test harness code. When a string comes
+ * in from the TSY, this class is used (as the data container) for matching the expected
+ * strings and the input from the TSY.
+ */
+class CCompletionEntry : public CBase
+ {
+public:
+ static CCompletionEntry* NewL(CCommChatString* aCs, CATBase* aAtCommand);
+ CCompletionEntry(CCommChatString* aCs, CATBase* aAtCommand);
+ ~CCompletionEntry();
+private:
+ CCommChatString* iCs; //< Pointer to the chat string (expected string) for this
+ //< completion entry.
+ CATBase* iAtCommand; //< Pointer to the CATBase object associated with this
+ //< completion entry. Used for various tasks such as
+ //< event signalling, removing of expected strings, etc.
+ TDblQueLink iLink; //< Element of Doubly linked list
+ friend class CATIO;
+ };
+
+class CATErrorHandler;
+class CATBase;
+/**
+ * This class inherits from CBase, MComm, and MCommChatNotify.
+ * It represents the basic IO mechanism for the regression test harness.
+ * This class handles the receive buffer from the GSM TSY and the expect
+ * strings (reading and writing).
+ */
+class CATIO : public CBase, public MComm, public MCommChatNotify
+ {
+public:
+ static CATIO* NewL(const TDesC& aCsy, const TDesC& aPort);
+ CATIO();
+ void ConstructL(const TDesC& aCsy, const TDesC& aPort);
+ ~CATIO();
+ TInt ConfigurePort(TCommConfig aConfiguration);
+ TInt Start(CATBase* aCompletionClass);
+ CCommChatString* AddExpectString(CATBase* aATBase, const TDesC8& aString);
+ void RemoveExpectStrings(CATBase* aATBase);
+ void RemoveExpectString(CCommChatString* aExpectString);
+ void SignalCommandsWithError(TInt aStatus);
+ TInt Read();
+ TInt Write(CATBase* aWriteCommand, const TDesC8& aString);
+ TBool RWPending();
+ TBool ReadPending();
+ void GetExcessData(TDes8& aBuffer);
+ void MarkRxBuffer(TInputBufferMark& aBufferMarker);
+ TPtrC8 GetRxBufferLC(TInputBufferMark& aBufferMarker);
+ void Disconnect();
+ void Cancel();
+ void WriteAndTimerCancel(CATBase* aATBase);
+ void WriteAndTimerCancelAll();
+ CCommChatString* FoundChatString();
+
+ void SetTimeOut(CATBase* aCompletionClass, TUint aTimePeriodSec=KDefaultTimeOutMillisec);
+ void DropDtr();
+ void RaiseDTR();
+ void DropRTS();
+ void RaiseRTS();
+ void ResetReadAndWriteBuffers();
+ TInt GetSizeOfRxBuffer();
+ void ProcessReadCharsL();
+ void SetErrorHandler(CATErrorHandler* aErrorHandler) {iErrorHandler = aErrorHandler;}
+ TUint Signals();
+ void SignalMark(TUint aSignal);
+ void SignalSpace(TUint aSignal);
+
+ // from MComm
+ virtual void CommReadComplete(TInt aStatus);
+ virtual void CommWriteComplete(TInt aStatus);
+ // from MCommChatNotify
+ virtual void ChatStringMatchL(CCommChatString* aCs);
+ virtual void ChatTimeout();
+private:
+ CATBase* iControllingClass; //< Pointer to the controlling CATBase entity for read
+ //< completions.
+ CATBase* iTimeOutCommand; //< Pointer to the controlling CATBase entity for timeout
+ //< completions.
+ CATBase* iWriteCommand; //< Pointer to the controlling CATBase entity for write
+ //< completions.
+ CATErrorHandler* iErrorHandler; //< Ptr to error handler, not apparently used by test harness.
+ CCommChatter* iChat; //< Pointer to the CComChatter object which is associated
+ //< with this IO class and iRxBuf.
+ TInt iRxBufOffset; //< Offset in iRxBuf where received data is to be placed.
+ TBuf8<KCommRxBufSize> iRxBuf; //< The buffer which contains commands/data received from
+ //< the GSM TSY.
+ TBool iReadPending; //< True if a read is pending; false otherwise
+ TBool iWritePending; //< True if a write is pending; false otherwise
+ TBool iWaitTimerPending; //< Boolean used for noting an outstanding timer on a chat string.
+ TBool iInitPending; //< Not currently used in Regression Test Harness
+ TBool iStringFound; //< True if a matching string is found, set to false when
+ //< a read is pended.
+ CArrayFixFlat<CCommChatString*>* iChatStringFound; //< Array of ptrs to chat strings that have been
+ //< matched.
+ CCommChatString* iCurrentFoundChatString; //< Pointer to the chat string that has currently
+ //< been matched.
+ TDblQue<CCompletionEntry> iExpectList; //< Queue of expected strings (in CCompletionEntry)
+ TInt iSecondChanceForCommsError; //< Counter of number of comms errors. One comm error
+ //< can be retried during this test.
+ };
+
+#endif