13 * |
13 * |
14 * Description: plugin request handler |
14 * Description: plugin request handler |
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
|
18 #include "emailtrace.h" |
|
19 |
18 // <qmail> |
20 // <qmail> |
19 // Exports removed because entire class is exported from DLL |
21 // Exports removed because entire class is exported from DLL |
20 #include <nmcommonheaders.h> |
22 #include <nmcommonheaders.h> |
21 // </qmail> |
23 // </qmail> |
22 |
24 |
23 #include "emailtrace.h" |
|
24 #include "CFSMailRequestHandler.h" |
25 #include "CFSMailRequestHandler.h" |
25 #include "CFSMailRequestObserver.h" |
26 #include "CFSMailRequestObserver.h" |
26 |
27 |
27 |
28 |
28 // ================= MEMBER FUNCTIONS ========================================== |
29 // ================= MEMBER FUNCTIONS ========================================== |
29 // ----------------------------------------------------------------------------- |
30 // ----------------------------------------------------------------------------- |
30 // CFSMailRequestHandler::CFSMailRequestHandler |
31 // CFSMailRequestHandler::CFSMailRequestHandler |
31 // ----------------------------------------------------------------------------- |
32 // ----------------------------------------------------------------------------- |
32 CFSMailRequestHandler::CFSMailRequestHandler() : iRequestId(0) |
33 CFSMailRequestHandler::CFSMailRequestHandler() : iRequestId(0) |
33 { |
34 { |
34 FUNC_LOG; |
35 NM_FUNCTION; |
35 |
36 |
36 // store pointer to TLS |
37 // store pointer to TLS |
37 TInt err = Dll::SetTls(static_cast<TAny*>(this)); |
38 TInt err = Dll::SetTls(static_cast<TAny*>(this)); |
38 |
39 |
39 // reset |
40 // reset |
46 // ----------------------------------------------------------------------------- |
47 // ----------------------------------------------------------------------------- |
47 // CFSMailRequestHandler::~CFSMailRequestHandler |
48 // CFSMailRequestHandler::~CFSMailRequestHandler |
48 // ----------------------------------------------------------------------------- |
49 // ----------------------------------------------------------------------------- |
49 CFSMailRequestHandler::~CFSMailRequestHandler() |
50 CFSMailRequestHandler::~CFSMailRequestHandler() |
50 { |
51 { |
51 FUNC_LOG; |
52 NM_FUNCTION; |
|
53 |
52 TRAP_IGNORE( CancelAllRequestsL() ); |
54 TRAP_IGNORE( CancelAllRequestsL() ); |
53 RemoveAllRequests(); |
55 RemoveAllRequests(); |
54 iPendingRequests.Reset(); |
56 iPendingRequests.Reset(); |
55 iPluginList.ResetAndDestroy(); |
57 iPluginList.ResetAndDestroy(); |
56 |
58 |
70 // ----------------------------------------------------------------------------- |
72 // ----------------------------------------------------------------------------- |
71 CFSMailRequestHandler* CFSMailRequestHandler::NewLC( |
73 CFSMailRequestHandler* CFSMailRequestHandler::NewLC( |
72 RPointerArray<CImplementationInformation>& aPluginInfo, |
74 RPointerArray<CImplementationInformation>& aPluginInfo, |
73 RPointerArray<CFSMailPlugin>& aPlugins ) |
75 RPointerArray<CFSMailPlugin>& aPlugins ) |
74 { |
76 { |
75 FUNC_LOG; |
77 NM_FUNCTION; |
76 CFSMailRequestHandler* pluginHandler = new (ELeave) CFSMailRequestHandler(); |
78 |
77 CleanupStack:: PushL(pluginHandler); |
79 CFSMailRequestHandler* pluginHandler = new (ELeave) CFSMailRequestHandler(); |
78 pluginHandler->ConstructL( aPluginInfo, aPlugins ); |
80 CleanupStack:: PushL(pluginHandler); |
79 return pluginHandler; |
81 pluginHandler->ConstructL( aPluginInfo, aPlugins ); |
|
82 return pluginHandler; |
80 } |
83 } |
81 |
84 |
82 // ----------------------------------------------------------------------------- |
85 // ----------------------------------------------------------------------------- |
83 // CFSMailRequestHandler::NewL |
86 // CFSMailRequestHandler::NewL |
84 // ----------------------------------------------------------------------------- |
87 // ----------------------------------------------------------------------------- |
85 CFSMailRequestHandler* CFSMailRequestHandler::NewL( |
88 CFSMailRequestHandler* CFSMailRequestHandler::NewL( |
86 RPointerArray<CImplementationInformation>& aPluginInfo, |
89 RPointerArray<CImplementationInformation>& aPluginInfo, |
87 RPointerArray<CFSMailPlugin>& aPlugins ) |
90 RPointerArray<CFSMailPlugin>& aPlugins ) |
88 { |
91 { |
89 FUNC_LOG; |
92 NM_FUNCTION; |
90 CFSMailRequestHandler* pluginHandler = |
93 |
91 CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins ); |
94 CFSMailRequestHandler* pluginHandler = |
92 CleanupStack:: Pop(pluginHandler); |
95 CFSMailRequestHandler::NewLC( aPluginInfo, aPlugins ); |
93 return pluginHandler; |
96 CleanupStack:: Pop(pluginHandler); |
|
97 return pluginHandler; |
94 } |
98 } |
95 |
99 |
96 // ----------------------------------------------------------------------------- |
100 // ----------------------------------------------------------------------------- |
97 // CFSMailRequestHandler::ConstructL |
101 // CFSMailRequestHandler::ConstructL |
98 // ----------------------------------------------------------------------------- |
102 // ----------------------------------------------------------------------------- |
99 void CFSMailRequestHandler::ConstructL( |
103 void CFSMailRequestHandler::ConstructL( |
100 RPointerArray<CImplementationInformation> /*aPluginInfo*/, |
104 RPointerArray<CImplementationInformation> /*aPluginInfo*/, |
101 RPointerArray<CFSMailPlugin> /*aPlugins*/ ) |
105 RPointerArray<CFSMailPlugin> /*aPlugins*/ ) |
102 { |
106 { |
103 FUNC_LOG; |
107 NM_FUNCTION; |
104 |
|
105 |
|
106 } |
108 } |
107 |
109 |
108 // ----------------------------------------------------------------------------- |
110 // ----------------------------------------------------------------------------- |
109 // CFSMailRequestHandler::GetPluginByUid |
111 // CFSMailRequestHandler::GetPluginByUid |
110 // ----------------------------------------------------------------------------- |
112 // ----------------------------------------------------------------------------- |
111 CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid( TFSMailMsgId aObjectId ) |
113 CFSMailPlugin* CFSMailRequestHandler::GetPluginByUid( TFSMailMsgId aObjectId ) |
112 { |
114 { |
113 FUNC_LOG; |
115 NM_FUNCTION; |
114 |
116 |
115 for(TInt i=0;i<iPluginList.Count();i++) |
117 for(TInt i=0;i<iPluginList.Count();i++) |
116 { |
118 { |
117 if(iPluginList[i]->iPluginId.iUid == aObjectId.PluginId().iUid) |
119 if(iPluginList[i]->iPluginId.iUid == aObjectId.PluginId().iUid) |
118 { |
120 { |
159 // ----------------------------------------------------------------------------- |
162 // ----------------------------------------------------------------------------- |
160 // CFSMailRequestHandler::CompleteRequest |
163 // CFSMailRequestHandler::CompleteRequest |
161 // ----------------------------------------------------------------------------- |
164 // ----------------------------------------------------------------------------- |
162 void CFSMailRequestHandler::CompleteRequest( TInt aRequestId ) |
165 void CFSMailRequestHandler::CompleteRequest( TInt aRequestId ) |
163 { |
166 { |
164 FUNC_LOG; |
167 NM_FUNCTION; |
|
168 |
165 for(TInt i=0;i<iPendingRequests.Count();i++) |
169 for(TInt i=0;i<iPendingRequests.Count();i++) |
166 { |
170 { |
167 if(iPendingRequests[i].iRequestId == aRequestId) |
171 if(iPendingRequests[i].iRequestId == aRequestId) |
168 { |
172 { |
169 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestComplete; |
173 iPendingRequests[i].iRequestStatus = TFSPendingRequest::EFSRequestComplete; |
176 // ----------------------------------------------------------------------------- |
180 // ----------------------------------------------------------------------------- |
177 // CFSMailRequestHandler::CancelRequestL |
181 // CFSMailRequestHandler::CancelRequestL |
178 // ----------------------------------------------------------------------------- |
182 // ----------------------------------------------------------------------------- |
179 void CFSMailRequestHandler::CancelRequestL( TInt aRequestId ) |
183 void CFSMailRequestHandler::CancelRequestL( TInt aRequestId ) |
180 { |
184 { |
181 FUNC_LOG; |
185 NM_FUNCTION; |
|
186 |
182 for(TInt i=0;i<iPendingRequests.Count();i++) |
187 for(TInt i=0;i<iPendingRequests.Count();i++) |
183 { |
188 { |
184 if(iPendingRequests[i].iRequestId == aRequestId && |
189 if(iPendingRequests[i].iRequestId == aRequestId && |
185 iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
190 iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
186 { |
191 { |
198 // ----------------------------------------------------------------------------- |
203 // ----------------------------------------------------------------------------- |
199 // CFSMailRequestHandler::CancelAllRequestsL |
204 // CFSMailRequestHandler::CancelAllRequestsL |
200 // ----------------------------------------------------------------------------- |
205 // ----------------------------------------------------------------------------- |
201 void CFSMailRequestHandler::CancelAllRequestsL( ) |
206 void CFSMailRequestHandler::CancelAllRequestsL( ) |
202 { |
207 { |
203 FUNC_LOG; |
208 NM_FUNCTION; |
|
209 |
204 for(TInt i=0;i<iPendingRequests.Count();i++) |
210 for(TInt i=0;i<iPendingRequests.Count();i++) |
205 { |
211 { |
206 if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
212 if(iPendingRequests[i].iRequestStatus == TFSPendingRequest::EFSRequestPending) |
207 { |
213 { |
208 TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0); |
214 TFSMailMsgId pluginId(iPendingRequests[i].iPluginId,0); |
218 // ----------------------------------------------------------------------------- |
224 // ----------------------------------------------------------------------------- |
219 // CFSMailRequestHandler::AddPluginL |
225 // CFSMailRequestHandler::AddPluginL |
220 // ----------------------------------------------------------------------------- |
226 // ----------------------------------------------------------------------------- |
221 void CFSMailRequestHandler::AddPluginL( TUid aPluginId, CFSMailPlugin* aPlugin ) |
227 void CFSMailRequestHandler::AddPluginL( TUid aPluginId, CFSMailPlugin* aPlugin ) |
222 { |
228 { |
223 FUNC_LOG; |
229 NM_FUNCTION; |
224 |
230 |
225 CFSMailPluginData* pluginData = new (ELeave) CFSMailPluginData; |
231 CFSMailPluginData* pluginData = new (ELeave) CFSMailPluginData; |
226 pluginData->iPluginId = aPluginId; |
232 pluginData->iPluginId = aPluginId; |
227 pluginData->iPlugin = aPlugin; |
233 pluginData->iPlugin = aPlugin; |
228 iPluginList.Append(pluginData); |
234 iPluginList.Append(pluginData); |
232 // ----------------------------------------------------------------------------- |
238 // ----------------------------------------------------------------------------- |
233 // CFSMailRequestHandler::RemoveAllRequests |
239 // CFSMailRequestHandler::RemoveAllRequests |
234 // ----------------------------------------------------------------------------- |
240 // ----------------------------------------------------------------------------- |
235 void CFSMailRequestHandler::RemoveAllRequests() |
241 void CFSMailRequestHandler::RemoveAllRequests() |
236 { |
242 { |
237 FUNC_LOG; |
243 NM_FUNCTION; |
|
244 |
238 for(TInt i=0;i<iPendingRequests.Count();i++) |
245 for(TInt i=0;i<iPendingRequests.Count();i++) |
239 { |
246 { |
240 delete iPendingRequests[i].iObserver; |
247 delete iPendingRequests[i].iObserver; |
241 iPendingRequests[i].iObserver = NULL; |
248 iPendingRequests[i].iObserver = NULL; |
242 } |
249 } |
245 // ----------------------------------------------------------------------------- |
252 // ----------------------------------------------------------------------------- |
246 // CFSMailRequestHandler::GetTempFileL( ) |
253 // CFSMailRequestHandler::GetTempFileL( ) |
247 // ----------------------------------------------------------------------------- |
254 // ----------------------------------------------------------------------------- |
248 RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName aFileName ) |
255 RFile CFSMailRequestHandler::GetTempFileL( TFSMailMsgId aContentId, TFileName aFileName ) |
249 { |
256 { |
250 FUNC_LOG; |
257 NM_FUNCTION; |
251 |
258 |
252 // get temp dir path |
259 // get temp dir path |
253 if(iTempDirName == NULL) |
260 if(iTempDirName == NULL) |
254 { |
261 { |
255 // open file server connection |
262 // open file server connection |
272 // ----------------------------------------------------------------------------- |
279 // ----------------------------------------------------------------------------- |
273 // CFSMailRequestHandler::CleanTempDirL |
280 // CFSMailRequestHandler::CleanTempDirL |
274 // ----------------------------------------------------------------------------- |
281 // ----------------------------------------------------------------------------- |
275 void CFSMailRequestHandler::CleanTempDirL( ) |
282 void CFSMailRequestHandler::CleanTempDirL( ) |
276 { |
283 { |
277 FUNC_LOG; |
284 NM_FUNCTION; |
278 } |
285 } |
279 |
286 |
280 // ----------------------------------------------------------------------------- |
287 // ----------------------------------------------------------------------------- |
281 // CFSMailRequestHandler::GetTempDirL |
288 // CFSMailRequestHandler::GetTempDirL |
282 // ----------------------------------------------------------------------------- |
289 // ----------------------------------------------------------------------------- |
283 TDesC& CFSMailRequestHandler::GetTempDirL( ) |
290 TDesC& CFSMailRequestHandler::GetTempDirL( ) |
284 { |
291 { |
285 FUNC_LOG; |
292 NM_FUNCTION; |
|
293 |
286 return *iTempDirName; |
294 return *iTempDirName; |
287 } |
295 } |
288 |
296 |