diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/multimodetsy/Multimode/sms/mSMSMESS.H --- /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 +#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* iGetSmspList; + + CATSmsGetSCAddress::TTsySmsp iSmspListInfo; + + RMobileSmsMessaging::TMobileSmspEntryV1 iSCEntry; + }; + +#endif