// 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 @internalAll */#ifndef __CMT_UNSTORED_H__#define __CMT_UNSTORED_H__#include "smsbase.H"// Forward class declarationsclass CReceiveSmsQueue;class CATSmsWaitForAndHandleCMTUnstored : public CATBase {public: // public methods static CATSmsWaitForAndHandleCMTUnstored* NewL(CATIO* aIo, CTelObject* aTelObject, CPhoneGlobals* aGlobals, CReceiveSmsQueue& aReceiveQueue); ~CATSmsWaitForAndHandleCMTUnstored(); void Enable(); void Disable();private: // private methods CATSmsWaitForAndHandleCMTUnstored(CATIO* aIo, CTelObject* aTelObject, CPhoneGlobals* aGlobals, CReceiveSmsQueue& aReceiveQueue); // Utility methods void ParseFirstCMTLineL(TInt& aPduLen); void ParseSecondCMTLineL(RMobileSmsMessaging::TMobileSmsGsmTpdu& aPdu,RMobileSmsMessaging::TMobileSmsReceiveAttributesV1& aAttr); // Pure virtuals from CATBase virtual void CompleteWithIOError(TEventSource aSource,TInt aStatus); virtual void EventSignal(TEventSource aSource);private: // private data // State machine states and current state enum TState {ENoState=0, EWaitForCMT, EWaitForCmtSecondLine, EWaitForCmtSecondLineThenDisable}; TState iState; TInt iPduLen; // Stores the length that the phone states the PDU is CCommChatString* iCMTExpectString; // The CMT expect string, this object not owned by this class CCommChatString* iCDSExpectString; // The CDS expect string, this object not owned by this class CCommChatString* iWaitForAnything; // The '*' anything expect string, this object not owned by this class CReceiveSmsQueue& iReceiveQueue; // Reference to our client's receive queue };#endif