telephonyserverplugins/multimodetsy/Multimode/sms/mSMSMESS.H
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/Multimode/sms/mSMSMESS.H	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,136 @@
+// Copyright (c) 2001-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:
+// Class declaration for CMobileSmsMessaging.
+// This class declaration is intended to be public (ie. exported to \epoc32\include).
+// 
+//
+
+/**
+ @file
+ @internalAll 
+*/
+
+
+#ifndef __MSMSMESS_H__
+#define __MSMSMESS_H__
+
+#include <et_phone.h>
+#include "Matstd.h"
+#include "mPHONE.H"
+#include "mSMSCSCA.H"
+
+_LIT8(KSmsEnterPduModeResponse, "> ");	// NB. Must use partial matching with this string
+
+
+// Forward class declarations
+class CATIO;
+class CATInit;
+class CATSmsMessagingSend;
+class CATSmsMessagingRead; 
+class CATSmsMemoryStorage;
+class CATSmsGetSCAddress;
+class CATSmsSetSCAddress;
+class CATSetPhoneToCMTMode;
+class CATSetPhoneToCMTIMode;
+class CReceiveSmsQueue;
+class CATSmsWaitForAndHandleCMTIStored;
+class CATSmsWaitForAndHandleCMTUnstored;
+
+
+class CMobileSmsMessaging : public CSubSessionExtBase
+/**
+ * This class deals with the processing of the Multimode SMS Messaging IPC requests 
+ * generated by a client of Etel.
+ */
+	{
+public:
+	// Class construction
+	static CMobileSmsMessaging* NewL(CATIO* aATIO,CATInit* aInit, CPhoneGlobals* aPhoneGlobals);
+	CMobileSmsMessaging(CATIO* aATIO,CATInit* aInit, CPhoneGlobals* aPhoneGlobals);
+
+	// Class destruction
+	~CMobileSmsMessaging();
+
+	// from MSubSessionExtBaseTSY
+	virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
+	
+	// from MTelObjectTSY which have to be implemented
+	virtual void Init();
+	virtual CTelObject* OpenNewObjectByNameL(const TDesC&);
+	virtual CTelObject* OpenNewObjectL(TDes& aNewName);
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+
+	// from MTelObjectTSY needed as we've implemented extensions
+	virtual CTelObject::TReqMode ReqModeL(const TInt aIPC);
+	virtual TInt NumberOfSlotsL(const TInt aIpc);
+	virtual TInt CancelService(const TInt aIpc, const TTsyReqHandle aTsyReqHandle);
+
+	// Callback function for CATSmsGetSCAddress to signal 2-phase list cancel completion
+	TInt CompleteSmspListCancel(const TTsyReqHandle aTsyReqHandle);
+
+private:
+	// Class construction
+	void ConstructL();
+
+	// Extension IPC handlers (with 1 argument)
+	TInt GetCaps(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1);
+	TInt StoreSmspList(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer);
+	TInt SetReceiveMode(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1);
+	TInt GetReceiveMode(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1);
+	TInt EnumerateMessageStores(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1);
+
+	// Extension IPC handlers (with 2 arguments)
+	TInt SendMessage(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1,TDes8* aParam2);
+	TInt ReceiveMessage(const TTsyReqHandle aTsyReqHandle,TDes8* aSmsPdu,TDes8* aAttrib);
+	void CancelReceiveMessage();
+	TInt GetSmspListPhase1(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1,TDes8* aParam2);
+	void GetSmspListPhase1L(TTsyReqHandle aTsyReqHandle,RMobilePhone::TClientId& aClient,TInt& aBufSize);
+	TInt GetSmspListPhase2(const TTsyReqHandle aTsyReqHandle,TDes8* aParam1,TDes8* aParam2);
+	TInt ProcessStoreSmspListL(const TTsyReqHandle aTsyReqHandle, TDes8* aBuffer);
+	TInt GetMessageStoreInfo(const TTsyReqHandle aTsyReqHandle, TDes8* aParam1, TDes8* aParam2);
+
+	// Utility 
+	TBool IsSupportedIPC(const TInt aIpc) const;
+
+private:
+	// AT command objects
+	CATIO*						iIo;
+	CATInit*					iInit;
+	CATSmsMessagingSend*		iATSmsMessagingSend;
+	CATSmsMemoryStorage*		iATSmsMemoryStorage;
+	CATSmsGetSCAddress*			iATSmsGetSCAddress;
+	CATSmsSetSCAddress*			iATSmsSetSCAddress;
+	CATSetPhoneToCMTIMode*		iATSetPhoneToCMTIMode;
+	CATSetPhoneToCMTMode*		iATSetPhoneToCMTMode;
+	
+	// SMS Receiving objects
+	CReceiveSmsQueue*					iReceiveSmsQueue;
+	CATSmsWaitForAndHandleCMTIStored*	iWaitForCMTIStored;
+	CATSmsWaitForAndHandleCMTUnstored*	iWaitForCMTUnstored;
+
+	// Structure of phone capabilities populated by CATInit
+	CPhoneGlobals* iGlobals;		// This object not owned by this class 
+
+	// Store current receive mode of phone
+	RMobileSmsMessaging::TMobileSmsReceiveMode iCurrentRxMode;
+	
+	CArrayPtrFlat<CListReadAllAttempt>* iGetSmspList;
+
+	CATSmsGetSCAddress::TTsySmsp iSmspListInfo;
+
+	RMobileSmsMessaging::TMobileSmspEntryV1 iSCEntry;
+	};
+
+#endif