telephonyserverplugins/multimodetsy/Multimode/sms/cmt_unstored.h
changeset 0 3553901f7fa8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/Multimode/sms/cmt_unstored.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,66 @@
+// 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 declarations
+class 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