diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/multimodetsy/hayes/ATBASE.H --- /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 +#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 iTxBuffer; + TDblQue 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