00001
00002
00003
00004
00005 #ifndef CSMSENGINE_H
00006 #define CSMSENGINE_H
00007
00008
00009 #include <e32base.h>
00010
00011
00012 #include "SMSExampleMtmsEngine.h"
00013
00014
00015 const TInt KSmsMessageLength = 512;
00016 const TInt KAddressLength = 64;
00017
00018
00019 class MSmsEngineObserver
00020 {
00021 public:
00022 virtual void SendingMessage()=0;
00023 virtual void MessageSent()=0;
00024 virtual void MessageReceived(const TDesC& addr, const TDesC& msg)=0;
00025 virtual void SmsEngineInitialized()=0;
00026 virtual void SmsEngineError(TInt aErrorCode)=0;
00027 virtual void MessageDeleted()=0;
00028 };
00029
00030
00040 class CSmsEngine : public CBase, public MMsvSessionObserver, public MSMSExampleMtmsEngineObserver
00041 {
00042 public:
00043
00048 IMPORT_C static CSmsEngine* NewL(MSmsEngineObserver& aObserver);
00049
00054 IMPORT_C static CSmsEngine* NewLC(MSmsEngineObserver& aObserver);
00055
00059 IMPORT_C ~CSmsEngine();
00060
00061 public:
00067 IMPORT_C void SendSmsL(const TDesC& aAddr, const TDesC&aMsg);
00068
00074 IMPORT_C void ListenforIncomingSms(TBool aListening);
00075
00081 IMPORT_C void SetAutomaticDeletetion(TBool aDeletion);
00082
00083
00091 IMPORT_C void GetFolderSMSMessageInformationL(TMsvId aFolderID,
00092 CDesCArrayFlat*& aAddresses,
00093 CDesCArrayFlat*& aMessages);
00094
00103 IMPORT_C RArray<TMsvId>* GetMessageIds();
00104
00110 IMPORT_C void CopyMessageL( TMsvId aMessageId, TMsvId aFolder );
00111
00117 IMPORT_C void MoveToFolderL( TMsvId aMessageId, TMsvId aFolder );
00118
00123 IMPORT_C void DeleteMessageL( TMsvId aMessageId );
00124
00125 public:
00126
00130 void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
00131
00135 void HandleMessageSentL(TInt aError);
00136
00137 private:
00138
00143 CSmsEngine(MSmsEngineObserver& aObserver);
00144
00148 void ConstructL();
00149
00150 private:
00151
00158 void SendSmsInThirdEditionL(const TDesC& aAddr, const TDesC& aMsg);
00159
00160 private:
00161
00162
00163 MSmsEngineObserver& iObserver;
00164
00165
00166 CSMSExampleMtmsEngine* iEngine;
00167
00168
00169
00170
00171
00172 TBuf<KAddressLength> iAddress;
00173
00174
00175 TBuf<KSmsMessageLength> iMessage;
00176
00177
00178 TBool iAutomaticDelete;
00179
00180
00181 TBool iListeningForIncoming;
00182
00183
00184 CMsvSession* iMsvSession;
00185
00186
00187 CMsvEntry* iMsvEntry;
00188
00189
00190 TMsvId iNewMessageId;
00191
00192
00193 TMsvId iSentMessageId;
00194
00195 };
00196
00197
00198
00199 #endif // CSMSENGINE_H
00200
00201