00001 /* 00002 * Copyright © 2008 Nokia Corporation. 00003 */ 00004 00005 #ifndef SMS_EXAMPLE_ENGINE 00006 #define SMS_EXAMPLE_ENGINE 00007 00008 // INCLUDES 00009 #include <e32base.h> // CBase 00010 #include <msvapi.h> // MMsvSessionObserver 00011 #include <badesca.h> // CDesCArrayFlat 00012 00013 // FORWARD DECLARATIONS 00014 class CClientMtmRegistry; 00015 class CSmsClientMtm; 00016 class MSMSExampleMtmsEngineObserver; 00017 00018 // CLASS DECLARATION 00019 00024 class CSMSExampleMtmsEngine : public CActive, public MMsvSessionObserver 00025 { 00026 public: 00027 00034 static CSMSExampleMtmsEngine* NewL(MSMSExampleMtmsEngineObserver& 00035 aObserver); 00036 00040 ~CSMSExampleMtmsEngine(); 00041 00042 public: 00043 00049 void MoveToFolderL( TMsvId aMessageId, TMsvId aFolder ); 00050 00055 void DeleteMessageL( TMsvId aMessageId ); 00056 00062 void CopyMessageL( TMsvId aMessageId, TMsvId aFolder ); 00063 00069 void GetMessageAddressL( TMsvId aMessageId, TDes& aAddress ); 00070 00078 TBool GetMessageL( TMsvId aMessageId, TDes& aMessage ); 00079 00087 TBool GetMessageIndexBodyTextL( TMsvId aMessageId, TDes& aMessage ); 00088 00094 void GetFolderSMSMessageInformationL( TMsvId aFolderID, 00095 CDesCArrayFlat*& aAddresses, 00096 CDesCArrayFlat*& aMessages ); 00097 00103 RArray<TMsvId>* GetMessageIds(); 00104 00105 private: 00110 CSMSExampleMtmsEngine(MSMSExampleMtmsEngineObserver& aObserver); 00111 00115 void ConstructL(); 00116 00120 void CreateMtmClientL(); 00121 00122 private: // from CActive 00123 virtual void DoCancel(); 00124 virtual void RunL(); 00125 00126 00127 private: // from MMsvSessionObserver 00128 void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, 00129 TAny* aArg2, TAny* aArg3); 00130 00131 private: 00132 00133 // SMS client MTM interface 00134 CSmsClientMtm* iSmsMtm; 00135 00136 // Observer of this engine. 00137 MSMSExampleMtmsEngineObserver& iObserver; 00138 00139 // Controls asynchronous commands in the messaging system 00140 // Get progress information about the sending. 00141 CMsvOperation* iMsvOper; 00142 00143 // Encapsulates an array of entry IDs. 00144 CMsvEntrySelection* iEntrySelection; 00145 00146 // Represents a session to the messaging server 00147 CMsvSession* iSession; 00148 00149 // This registry holds details of the all the Client-side 00150 // MTMs currently available on the system. 00151 CClientMtmRegistry* iClientMtmReg; 00152 00153 // Array of ids 00154 RArray<TMsvId>* iIdArray; 00155 00156 // Id of an SMS message 00157 TMsvId iSmsId; 00158 }; 00159 00163 class MSMSExampleMtmsEngineObserver 00164 { 00165 public: 00166 virtual void HandleMessageSentL(TInt aError) = 0; 00167 }; 00168 00169 00170 #endif // SMS_EXAMPLE_ENGINE 00171
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.