00001 // TXUT.H 00002 // 00003 // © 2004 Nokia Corporation. All rights reserved. 00004 // 00005 00006 #ifndef __TXUT_H__ 00007 #define __TXUT_H__ 00008 00009 #include <e32std.h> 00010 #include <msvapi.h> // TMsvId, CMsvOperation, CMsvSession 00011 00012 00013 // TextMTM UIDs 00014 LOCAL_D const TInt KUidMsgTypeTextValue = 0x10005247; 00015 LOCAL_D const TUid KUidMsgTypeText = { KUidMsgTypeTextValue}; 00016 LOCAL_D const TUid KTxtMtmTechnologyTypeUid = {KUidMsgTypeTextValue }; 00017 00018 LOCAL_D const TUid KUidMsvMtmTextServerDLL ={0x101FDA9C}; 00019 LOCAL_D const TUid KUidMsvMtmTextClientDLL ={0x101FDA9B}; 00020 LOCAL_D const TUid KUidMsvMtmTextUiDLL ={0x101FDA9D}; 00021 LOCAL_D const TUid KUidMsvMtmTextUiDataDLL ={0x101FDA9E}; 00022 LOCAL_D const TUid KUidTextMtmVersion1 ={ KUidMsgTypeTextValue}; 00023 00024 // Constants 00025 LOCAL_D const TInt KUidTxtMTMSettingsValue = 0x1000525A; 00026 LOCAL_D const TUid KUidTxtMTMSettings={KUidTxtMTMSettingsValue}; 00027 LOCAL_D const TInt KMaxTextMessageSize = 0xFFFF; 00028 00029 00030 // 00031 // TTxtProgress: Operation progress information 00032 // 00033 class TTxtProgress 00034 { 00035 public: 00036 TInt iTotalMsgs; 00037 TInt iMsgsProcessed; 00038 TInt iErrorCode; // client side needs to be informed of an error 00039 TMsvId iNewId; // Used with CreateL, or any copy/move, storing the last moved message id. 00040 }; 00041 00042 // 00043 // Package buffer of progress structure 00044 // 00045 typedef TPckgBuf<TTxtProgress> TTxtProgressBuf; 00046 00047 // 00048 // TxtUtils: Generic static utility functions 00049 // 00050 class TxtUtils 00051 { 00052 public: 00053 // Build file name for associated entry, given its entry. 00054 IMPORT_C static void GetEntryFileNameL(TFileName& aFileName, TMsvEntry& aEntry); 00055 // Prepends the drive letter to aFileName found in aLocation 00056 IMPORT_C static void FindFileL(const TDesC& aFileName, const TDesC& aLocation, TFileName& aRetVal); 00057 }; 00058 00059 // 00060 // TMTMTxtSettings: contains the settings for a service. It can be stored in the CMsvStore 00061 // associated with the service entry. 00062 // 00063 class TMTMTxtSettings 00064 { 00065 public: 00066 IMPORT_C void StoreL(CMsvStore& aMsvStore) const; 00067 IMPORT_C void RestoreL(const CMsvStore& aMessageStore ); 00068 IMPORT_C void ExternalizeL( RMsvWriteStream& aWriteStream ) const; 00069 IMPORT_C void InternalizeL( RMsvReadStream& aReadStream ); 00070 00071 public: 00072 TPtrC RootFolder() const; 00073 void SetRootFolder(const TDesC& aRootFolder); 00074 00075 private: 00076 TFileName iRootFolder; 00077 00078 00079 }; 00080 00081 00082 // 00083 // CMsvOpWait: 00084 // Allows a synchronous wait on a operation 00085 // 00086 00087 class CMsvOpWait: public CActive 00088 { 00089 public: 00090 IMPORT_C static CMsvOpWait* NewLC(TInt aPriority=EPriorityStandard); 00091 IMPORT_C ~CMsvOpWait(); 00092 IMPORT_C void Start(); 00093 00094 protected: 00095 CMsvOpWait(TInt aPriority); 00096 00097 protected: 00098 // from CActive 00099 virtual void RunL(); 00100 virtual void DoCancel(); 00101 }; 00102 00103 00104 // 00105 // CMsvCompOperation: 00106 // An operation which is already completed on construction 00107 // 00108 class CMsvCompOperation : public CMsvOperation 00109 { 00110 public: 00111 IMPORT_C static CMsvCompOperation* NewL(CMsvSession& aMsvSession, TUid aMtm, const TDesC8& aProgress, TMsvId aService, TRequestStatus& aObserverRequestStatus, TInt aErr=KErrNone); 00112 IMPORT_C ~CMsvCompOperation(); 00113 00114 public: 00115 // from CMsvOperation 00116 virtual const TDesC8& ProgressL(); 00117 00118 private: 00119 CMsvCompOperation(CMsvSession& aSession, TRequestStatus& aObserverRequestStatus); 00120 void ConstructL(TUid aMtm, TInt aError, const TDesC8& aProgress, TMsvId aService); 00121 00122 private: 00123 // from CActive 00124 virtual void DoCancel(); 00125 virtual void RunL(); 00126 00127 private: 00128 HBufC8* iProgress; 00129 }; 00130 00131 00132 // 00133 // inline implementations 00134 // 00135 inline void TMTMTxtSettings::SetRootFolder(const TDesC& aRootFolder) 00136 { 00137 iRootFolder = aRootFolder; 00138 } 00139 00140 inline TPtrC TMTMTxtSettings::RootFolder() const 00141 { 00142 return iRootFolder; 00143 } 00144 00145 class CRepository; 00146 00151 class CMTMTxtSettings: public CBase 00152 { 00153 public: 00154 IMPORT_C static CMTMTxtSettings* NewL(); 00155 ~CMTMTxtSettings(); 00156 // load, save, and delete text mtm settings 00157 IMPORT_C void LoadSettingsL(TMsvId aServiceId, TMTMTxtSettings& aSettings) const; 00158 IMPORT_C void SaveSettingsL(TMsvId aServiceId, const TMTMTxtSettings& aSettings); 00159 IMPORT_C void DeleteSettingsL(TMsvId aServiceId); 00160 // handle a setting that specifies what the default service is 00161 IMPORT_C TMsvId DefaultServiceL() const; 00162 IMPORT_C void SetDefaultServiceL(TMsvId aService); 00163 IMPORT_C void DeleteDefaultServiceSettingL(); 00164 00165 private: 00166 void ConstructL(); 00167 void CreateOrSetL(TUint aKey, const TDesC& aValue); 00168 void CreateOrSetL(TUint aKey, TInt aValue); 00169 TUint32 FindAccountL(TMsvId aService) const; 00170 TUint GetNextAccountSlotL(); 00171 void DeleteSettingL(TUint32 settingId); 00172 00173 private: 00174 CRepository* iRepository; 00175 }; 00176 #endif // __TXUT_H__ 00177
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.