--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/hayes/ATBASE.H Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,161 @@
+// 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:
+// AT Command Base Class Header
+//
+//
+
+/**
+ @file
+ @internalAll
+*/
+
+
+#ifndef __ATBASE_H__
+#define __ATBASE_H__
+
+#include "ATSTD.H"
+#include <et_tsy.h>
+#include "SCHAT.H"
+/**
+@internalComponent
+*/
+enum TEventSource
+ {
+ EReadCompletion,
+ EWriteCompletion,
+ ETimeOutCompletion
+ };
+
+/**
+@internalTechnology
+*/
+const TUint KGenericBufferSize=200; // Changed from 100 to 200 hs
+
+class CATParamListEntry : public CBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ CATParamListEntry(const TDesC8& aPtr);
+ ~CATParamListEntry();
+ void Deque();
+ static void EntryValL(CATParamListEntry* aEntry,TInt& aValue);
+ static TInt EntryValL(CATParamListEntry* aEntry);
+public:
+ TPtrC8 iResultPtr;
+private:
+ TDblQueLink iLink;
+ friend class CATBase;
+ };
+
+
+class CTelObject;
+class CCompleteRelinquish : public CAsyncOneShot
+/**
+CCompleteRelinquish calls RelinquishOwnershipCompleted() in ETel server so that the
+server only closes down the session once the TSY's I/O has finished processing
+
+@internalTechnology
+*/
+ {
+public:
+ static CCompleteRelinquish* New(CTelObject* aTelObject);
+ ~CCompleteRelinquish();
+ void SetWhichCompletion(TPanicOccurred aPanicOccurred) {iPanicOccurred = aPanicOccurred;}
+protected:
+ CCompleteRelinquish(CTelObject* aTelObject);
+ virtual void RunL();
+private:
+ CTelObject* iTelObject;
+ TPanicOccurred iPanicOccurred;
+ };
+
+
+class CATIO;
+class CATBase : public CBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ void GenericEventSignal(TEventSource aEventSource, TInt aStatus);
+ CTelObject* Owner();
+ TCallInfoTSY* CallInfo();
+ void AppendWildCardChar(TDes8& aString);
+protected:
+ CATBase(CATIO* aIo, CTelObject* aTelObject,CPhoneGlobals* aPhoneGlobals);
+ ~CATBase();
+ virtual void EventSignal(TEventSource aEventSource)=0;
+ virtual void CompleteWithIOError(TEventSource aSource,TInt aStatus)=0;
+ void ChangeCallStatus(RMobileCall::TMobileCallStatus aCallStatus);
+ void ChangeLineStatus(RCall::TStatus aLineStatus);
+ void StandardWriteCompletionHandler(TEventSource aSource,TInt aLengthOfPause);
+ void Write(const TDesC8& aCommand,TInt aTimeOut = 5);
+ void Write(const TDesC8& aCommand,TInt aTimeOut,TInt aValue);
+ void Write(const TInt aTimeOut);
+ void WriteExpectingResults(const TDesC8& aCommand,TInt aTimeOut);
+ void AddStdExpectStrings();
+ TInt ValidateExpectString(); // New version which does not leave 13/Sep/01
+ void RemoveStdExpectStrings();
+ void RemoveUnsolicitedStrings(); // Removes any unsolicited strings received during initialisation
+ void AddCmsErrorExpectString();
+ void RemoveCmsErrorExpectString();
+ void ParseBufferLC(TBool aReportLists=EFalse, TUint aSeparatorChar=',');
+ void ParseLineLC(TBool aReportLists=EFalse, TUint aSeparatorChar=',');
+ void ParseLC(TBool aReportLists, TUint aSeparatorChar);
+ void AddParamL(const TDesC8& aPtr);
+ void SetToNotInitialised();
+ void RxResultsPushLC();
+ static void CleanupRxResults(TAny *aCATBase); // for TCleanupOperation
+protected:
+ CCommChatString* iOKExpectString;
+ CCommChatString* iErrorExpectString;
+ CCommChatString* iCmsExpectString;
+ CATIO* iIo;
+protected:
+ TBuf8<KGenericBufferSize> iTxBuffer;
+ TDblQue<CATParamListEntry> iRxResults;
+ TPtrC8 iBuffer;
+ TTsyReqHandle iReqHandle;
+ CPhoneGlobals* iPhoneGlobals;
+ CCompleteRelinquish* iComplete;
+ CTelObject* iTelObject;
+ TCallInfoTSY* iCallInfo;
+ };
+
+class CATInit;
+class CATSetToOnlineCommandMode;
+class CATCommands : public CATBase
+/**
+@internalTechnology
+*/
+ {
+public:
+ void ExecuteCommand(TTsyReqHandle aTsyReqHandle, TAny* aParams);
+ void ExecuteCommand(TTsyReqHandle aTsyReqHandle, TAny* aParams,TCallInfoTSY* aCallInfo);
+ void CancelCommand(TTsyReqHandle aTsyReqHandle);
+ virtual void Start(TTsyReqHandle aTsyReqHandle, TAny* aParams)=0;
+ virtual void Stop(TTsyReqHandle aTsyReqHandle)=0;
+protected:
+ CATCommands(CATIO* aIo, CTelObject* aTelObject,CATInit* aInit,CPhoneGlobals* aPhoneGlobals);
+ void ConstructL();
+ ~CATCommands();
+ virtual void Complete(TInt aError,TEventSource aSource);
+protected:
+ CATInit* iInit;
+ CATSetToOnlineCommandMode* iATSetToOnlineCommandMode;
+ };
+
+#endif