00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef CSMSENGINE_H
00031 #define CSMSENGINE_H
00032
00033
00034 #include <e32base.h>
00035
00036
00037 #include "SMSExampleMtmsEngine.h"
00038
00039
00040 const TInt KSmsMessageLength = 512;
00041 const TInt KAddressLength = 64;
00042
00043
00044 class MSmsEngineObserver
00045 {
00046 public:
00047 virtual void SendingMessage()=0;
00048 virtual void MessageSent()=0;
00049 virtual void MessageReceived(const TDesC& addr, const TDesC& msg)=0;
00050 virtual void SmsEngineInitialized()=0;
00051 virtual void SmsEngineError(TInt aErrorCode)=0;
00052 virtual void MessageDeleted()=0;
00053 };
00054
00055
00065 class CSmsEngine : public CBase, public MMsvSessionObserver, public MSMSExampleMtmsEngineObserver
00066 {
00067 public:
00068
00073 IMPORT_C static CSmsEngine* NewL(MSmsEngineObserver& aObserver);
00074
00079 IMPORT_C static CSmsEngine* NewLC(MSmsEngineObserver& aObserver);
00080
00084 IMPORT_C ~CSmsEngine();
00085
00086 public:
00092 IMPORT_C void SendSmsL(const TDesC& aAddr, const TDesC&aMsg);
00093
00099 IMPORT_C void ListenforIncomingSms(TBool aListening);
00100
00106 IMPORT_C void SetAutomaticDeletetion(TBool aDeletion);
00107
00108
00116 IMPORT_C void GetFolderSMSMessageInformationL(TMsvId aFolderID,
00117 CDesCArrayFlat*& aAddresses,
00118 CDesCArrayFlat*& aMessages);
00119
00128 IMPORT_C RArray<TMsvId>* GetMessageIds();
00129
00135 IMPORT_C void CopyMessageL( TMsvId aMessageId, TMsvId aFolder );
00136
00142 IMPORT_C void MoveToFolderL( TMsvId aMessageId, TMsvId aFolder );
00143
00148 IMPORT_C void DeleteMessageL( TMsvId aMessageId );
00149
00150 public:
00151
00155 void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
00156
00160 void HandleMessageSentL(TInt aError);
00161
00162 private:
00163
00168 CSmsEngine(MSmsEngineObserver& aObserver);
00169
00173 void ConstructL();
00174
00175 private:
00176
00183 void SendSmsInThirdEditionL(const TDesC& aAddr, const TDesC& aMsg);
00184
00185 private:
00186
00187
00188 MSmsEngineObserver& iObserver;
00189
00190
00191 CSMSExampleMtmsEngine* iEngine;
00192
00193
00194
00195
00196
00197 TBuf<KAddressLength> iAddress;
00198
00199
00200 TBuf<KSmsMessageLength> iMessage;
00201
00202
00203 TBool iAutomaticDelete;
00204
00205
00206 TBool iListeningForIncoming;
00207
00208
00209 CMsvSession* iMsvSession;
00210
00211
00212 CMsvEntry* iMsvEntry;
00213
00214
00215 TMsvId iNewMessageId;
00216
00217
00218 TMsvId iSentMessageId;
00219
00220 };
00221
00222
00223
00224 #endif // CSMSENGINE_H
00225
00226