16 */ |
16 */ |
17 |
17 |
18 #include <apmstd.h> |
18 #include <apmstd.h> |
19 |
19 |
20 #include "emailcontent.h" |
20 #include "emailcontent.h" |
21 #include "cfsmailclient.h" |
21 #include "CFSMailClient.h" |
22 #include "emailclientapi.hrh" |
22 #include "emailclientapi.hrh" |
23 #include "emailapiutils.h" |
23 #include "emailapiutils.h" |
24 |
24 |
25 |
25 // --------------------------------------------------------------------------- |
26 |
26 // |
27 // --------------------------------------------------------------------------- |
27 // --------------------------------------------------------------------------- |
28 // |
|
29 // --------------------------------------------------------------------------- |
|
30 // |
|
31 CEmailMessageContent* CEmailMessageContent::NewL( |
28 CEmailMessageContent* CEmailMessageContent::NewL( |
32 CPluginData& aPluginData, |
29 CPluginData& aPluginData, |
33 const TMessageContentId& aMsgContentId, |
30 const TMessageContentId& aMsgContentId, |
34 CFSMailMessagePart* aPart) |
31 CFSMailMessagePart* aPart ) |
35 { |
32 { |
36 |
33 |
37 CEmailMessageContent* self = new ( ELeave ) CEmailMessageContent( aPluginData, aMsgContentId, aPart ); |
34 CEmailMessageContent* self = new ( ELeave ) |
|
35 CEmailMessageContent( aPluginData, aMsgContentId, aPart ); |
38 CleanupStack::PushL( self ); |
36 CleanupStack::PushL( self ); |
39 self->ConstructL(); |
37 self->ConstructL(); |
40 CleanupStack::Pop(); |
38 CleanupStack::Pop( self ); |
41 return self; |
39 return self; |
42 } |
40 } |
43 |
41 |
44 // --------------------------------------------------------------------------- |
42 // --------------------------------------------------------------------------- |
45 // |
43 // |
46 // --------------------------------------------------------------------------- |
44 // --------------------------------------------------------------------------- |
47 // |
|
48 CFSMailMessagePart& CEmailMessageContent::Part() |
45 CFSMailMessagePart& CEmailMessageContent::Part() |
49 { |
46 { |
50 return *iPart; |
47 return *iPart; |
51 } |
48 } |
52 |
49 |
53 // --------------------------------------------------------------------------- |
50 // --------------------------------------------------------------------------- |
54 // |
51 // |
55 // --------------------------------------------------------------------------- |
52 // --------------------------------------------------------------------------- |
56 // |
53 void CEmailMessageContent::SetPart( CFSMailMessagePart* aPart ) |
57 void CEmailMessageContent::SetPart(CFSMailMessagePart* aPart) |
|
58 { |
54 { |
59 iPart = aPart; |
55 iPart = aPart; |
60 } |
56 } |
61 |
57 |
62 // --------------------------------------------------------------------------- |
58 // --------------------------------------------------------------------------- |
63 // |
59 // |
64 // --------------------------------------------------------------------------- |
60 // --------------------------------------------------------------------------- |
65 // |
|
66 CPluginData& CEmailMessageContent::PluginData() |
61 CPluginData& CEmailMessageContent::PluginData() |
67 { |
62 { |
68 return iPluginData; |
63 return iPluginData; |
69 } |
64 } |
70 |
65 |
71 // --------------------------------------------------------------------------- |
66 // --------------------------------------------------------------------------- |
72 // |
67 // |
73 // --------------------------------------------------------------------------- |
68 // --------------------------------------------------------------------------- |
74 // |
69 void CEmailMessageContent::ConstructL() |
75 void CEmailMessageContent::ConstructL( ) |
|
76 { |
70 { |
77 iPlugin = iPluginData.ClaimInstanceL(); |
71 iPlugin = iPluginData.ClaimInstanceL(); |
78 } |
72 } |
79 |
73 |
80 // --------------------------------------------------------------------------- |
74 // --------------------------------------------------------------------------- |
81 // |
75 // |
82 // --------------------------------------------------------------------------- |
76 // --------------------------------------------------------------------------- |
83 // |
|
84 CEmailMessageContent::~CEmailMessageContent() |
77 CEmailMessageContent::~CEmailMessageContent() |
85 { |
78 { |
86 iPluginData.ReleaseInstance(); |
79 iPluginData.ReleaseInstance(); |
87 delete iPart; |
80 delete iPart; |
88 delete iBuf; |
81 delete iBuf; |
89 } |
82 } |
90 |
83 |
91 // --------------------------------------------------------------------------- |
84 // --------------------------------------------------------------------------- |
92 // |
85 // |
93 // --------------------------------------------------------------------------- |
86 // --------------------------------------------------------------------------- |
94 // |
|
95 CEmailMessageContent::CEmailMessageContent( |
87 CEmailMessageContent::CEmailMessageContent( |
96 CPluginData& aPluginData, |
88 CPluginData& aPluginData, |
97 const TMessageContentId& aMsgContentId, |
89 const TMessageContentId& aMsgContentId, |
98 CFSMailMessagePart* aPart): |
90 CFSMailMessagePart* aPart): |
99 iPluginData( aPluginData ), iPart(aPart), iMsgContentId( aMsgContentId ), iBuf(NULL), iUsed(0) |
91 iPluginData( aPluginData ), |
100 { |
92 iPart( aPart ), |
101 } |
93 iMsgContentId( aMsgContentId ), |
102 |
94 iBuf( NULL ), |
103 // --------------------------------------------------------------------------- |
95 iUsed( 0 ) |
104 // |
96 { |
105 // --------------------------------------------------------------------------- |
97 } |
106 // |
98 |
|
99 // --------------------------------------------------------------------------- |
|
100 // |
|
101 // --------------------------------------------------------------------------- |
107 TEmailTypeId CEmailMessageContent::InterfaceId() const |
102 TEmailTypeId CEmailMessageContent::InterfaceId() const |
108 { |
103 { |
109 return KEmailIFUidMessageContent; |
104 return KEmailIFUidMessageContent; |
110 } |
105 } |
111 |
106 |
112 // --------------------------------------------------------------------------- |
107 // --------------------------------------------------------------------------- |
113 // |
108 // |
114 // --------------------------------------------------------------------------- |
109 // --------------------------------------------------------------------------- |
115 // |
|
116 void CEmailMessageContent::Release() |
110 void CEmailMessageContent::Release() |
117 { |
111 { |
118 delete this; |
112 delete this; |
119 } |
113 } |
120 |
114 |
121 // --------------------------------------------------------------------------- |
115 // --------------------------------------------------------------------------- |
122 // |
116 // |
123 // --------------------------------------------------------------------------- |
117 // --------------------------------------------------------------------------- |
124 // |
|
125 TMessageContentId CEmailMessageContent::Id() const |
118 TMessageContentId CEmailMessageContent::Id() const |
126 { |
119 { |
127 return iMsgContentId; |
120 return iMsgContentId; |
128 } |
121 } |
129 |
122 |
130 // --------------------------------------------------------------------------- |
123 // --------------------------------------------------------------------------- |
131 // |
124 // |
132 // --------------------------------------------------------------------------- |
125 // --------------------------------------------------------------------------- |
133 // |
|
134 TPtrC CEmailMessageContent::ContentType() const |
126 TPtrC CEmailMessageContent::ContentType() const |
135 { |
127 { |
136 return iPart->GetContentType(); |
128 if (iPart) |
137 } |
129 { |
138 |
130 return iPart->GetContentType(); |
139 // --------------------------------------------------------------------------- |
131 } |
140 // |
132 else |
141 // --------------------------------------------------------------------------- |
133 { |
142 // |
134 return TPtrC(0,0); |
|
135 } |
|
136 } |
|
137 |
|
138 // --------------------------------------------------------------------------- |
|
139 // |
|
140 // --------------------------------------------------------------------------- |
143 void CEmailMessageContent::SetContentType( const TDesC& aContentType ) |
141 void CEmailMessageContent::SetContentType( const TDesC& aContentType ) |
144 { |
142 { |
145 iPart->SetContentType( aContentType ); |
143 if (iPart) |
146 } |
144 iPart->SetContentType( aContentType ); |
147 |
145 } |
148 // --------------------------------------------------------------------------- |
146 |
149 // |
147 // --------------------------------------------------------------------------- |
150 // --------------------------------------------------------------------------- |
148 // |
151 // |
149 // --------------------------------------------------------------------------- |
152 TPtrC CEmailMessageContent::ContentId() const |
150 TPtrC CEmailMessageContent::ContentId() const |
153 { |
151 { |
154 return iPart->ContentID(); |
152 if (iPart) |
155 } |
153 { |
156 |
154 return iPart->ContentID(); |
157 // --------------------------------------------------------------------------- |
155 } |
158 // |
156 else |
159 // --------------------------------------------------------------------------- |
157 { |
160 // |
158 return TPtrC(0,0); |
|
159 } |
|
160 } |
|
161 |
|
162 // --------------------------------------------------------------------------- |
|
163 // |
|
164 // --------------------------------------------------------------------------- |
161 void CEmailMessageContent::SetContentId( const TDesC& aContentId ) |
165 void CEmailMessageContent::SetContentId( const TDesC& aContentId ) |
162 { |
166 { |
163 TRAP_IGNORE( iPart->SetContentIDL( aContentId ) ); |
167 if (iPart) |
164 } |
168 TRAP_IGNORE( iPart->SetContentIDL( aContentId ) ); |
165 |
169 } |
166 // --------------------------------------------------------------------------- |
170 |
167 // |
171 // --------------------------------------------------------------------------- |
168 // --------------------------------------------------------------------------- |
172 // |
169 // |
173 // --------------------------------------------------------------------------- |
170 TPtrC CEmailMessageContent::ContentDescription() const |
174 TPtrC CEmailMessageContent::ContentDescription() const |
171 { |
175 { |
172 return iPart->ContentDescription(); |
176 if (iPart) |
173 } |
177 { |
174 |
178 return iPart->ContentDescription(); |
175 // --------------------------------------------------------------------------- |
179 } |
176 // |
180 else |
177 // --------------------------------------------------------------------------- |
181 { |
178 // |
182 return TPtrC(0,0); |
|
183 } |
|
184 } |
|
185 |
|
186 // --------------------------------------------------------------------------- |
|
187 // |
|
188 // --------------------------------------------------------------------------- |
179 void CEmailMessageContent::SetContentDescription( |
189 void CEmailMessageContent::SetContentDescription( |
180 const TDesC& aContentDescription ) |
190 const TDesC& aContentDescription ) |
181 { |
191 { |
182 iPart->SetContentDescription( aContentDescription ); |
192 if (iPart) |
183 } |
193 iPart->SetContentDescription( aContentDescription ); |
184 |
194 } |
185 // --------------------------------------------------------------------------- |
195 |
186 // |
196 // --------------------------------------------------------------------------- |
187 // --------------------------------------------------------------------------- |
197 // |
188 // |
198 // --------------------------------------------------------------------------- |
189 TPtrC CEmailMessageContent::ContentDisposition() const |
199 TPtrC CEmailMessageContent::ContentDisposition() const |
190 { |
200 { |
191 return iPart->ContentDisposition(); |
201 if (iPart) |
192 } |
202 { |
193 |
203 return iPart->ContentDisposition(); |
194 // --------------------------------------------------------------------------- |
204 } |
195 // |
205 else |
196 // --------------------------------------------------------------------------- |
206 { |
197 // |
207 return TPtrC(0,0); |
|
208 } |
|
209 } |
|
210 |
|
211 // --------------------------------------------------------------------------- |
|
212 // |
|
213 // --------------------------------------------------------------------------- |
198 void CEmailMessageContent::SetContentDisposition( |
214 void CEmailMessageContent::SetContentDisposition( |
199 const TDesC& aContentDisposition ) |
215 const TDesC& aContentDisposition ) |
200 { |
216 { |
201 iPart->SetContentDisposition( aContentDisposition ); |
217 if (iPart) |
202 } |
218 iPart->SetContentDisposition( aContentDisposition ); |
203 |
219 } |
204 // --------------------------------------------------------------------------- |
220 |
205 // |
221 // --------------------------------------------------------------------------- |
206 // --------------------------------------------------------------------------- |
222 // |
207 // |
223 // --------------------------------------------------------------------------- |
208 TPtrC CEmailMessageContent::ContentClass() const |
224 TPtrC CEmailMessageContent::ContentClass() const |
209 { |
225 { |
210 return iPart->GetContentClass(); |
226 if (iPart) |
211 } |
227 { |
212 |
228 return iPart->GetContentClass(); |
213 // --------------------------------------------------------------------------- |
229 } |
214 // |
230 else |
215 // --------------------------------------------------------------------------- |
231 { |
216 // |
232 return TPtrC(0,0); |
|
233 } |
|
234 } |
|
235 |
|
236 // --------------------------------------------------------------------------- |
|
237 // |
|
238 // --------------------------------------------------------------------------- |
217 void CEmailMessageContent::SetContentClass( const TDesC& aContentClass ) |
239 void CEmailMessageContent::SetContentClass( const TDesC& aContentClass ) |
218 { |
240 { |
219 iPart->SetContentClass( aContentClass ); |
241 if (iPart) |
220 } |
242 iPart->SetContentClass( aContentClass ); |
221 |
243 } |
222 // --------------------------------------------------------------------------- |
244 |
223 // |
245 // --------------------------------------------------------------------------- |
224 // --------------------------------------------------------------------------- |
246 // |
225 // |
247 // --------------------------------------------------------------------------- |
226 TInt CEmailMessageContent::AvailableSize() const |
248 TInt CEmailMessageContent::AvailableSize() const |
227 { |
249 { |
228 return iPart->FetchedContentSize(); |
250 if (iPart) |
229 } |
251 { |
230 |
252 return iPart->FetchedContentSize(); |
231 // --------------------------------------------------------------------------- |
253 } |
232 // |
254 else |
233 // --------------------------------------------------------------------------- |
255 { |
234 // |
256 return 0; |
|
257 } |
|
258 } |
|
259 |
|
260 // --------------------------------------------------------------------------- |
|
261 // |
|
262 // --------------------------------------------------------------------------- |
235 TInt CEmailMessageContent::TotalSize() const |
263 TInt CEmailMessageContent::TotalSize() const |
236 { |
264 { |
237 return iPart->ContentSize(); |
265 if (iPart) |
238 } |
266 { |
239 |
267 return iPart->ContentSize(); |
240 // --------------------------------------------------------------------------- |
268 } |
241 // |
269 else |
242 // --------------------------------------------------------------------------- |
270 { |
243 // |
271 return 0; |
|
272 } |
|
273 } |
|
274 |
|
275 // --------------------------------------------------------------------------- |
|
276 // |
|
277 // --------------------------------------------------------------------------- |
244 TPtrC CEmailMessageContent::ContentL() const |
278 TPtrC CEmailMessageContent::ContentL() const |
245 { |
279 { |
246 TInt size = AvailableSize(); |
280 TInt size = AvailableSize(); |
247 TPtr16 ptr( 0, size ); |
281 TPtr16 ptr( 0, size ); |
248 if ( size != 0 ) |
282 if ( size != 0 ) |
249 { |
283 { |
250 if ( iBuf == NULL ) |
284 if ( !iBuf ) |
251 { |
285 { |
252 iBuf = HBufC::NewL( size ); |
286 iBuf = HBufC::NewL( size ); |
253 } |
287 } |
254 |
288 |
255 if ( size > ptr.MaxLength() ) |
289 if ( size > ptr.MaxLength() ) |
256 { |
290 { |
257 iBuf = iBuf->ReAlloc( size ); |
291 iBuf = iBuf->ReAlloc( size ); |
258 } |
292 } |
259 ptr.Set( iBuf->Des() ); |
293 ptr.Set( iBuf->Des() ); |
260 if(iUsed < size) |
294 iPart->GetContentToBufferL( ptr, iUsed ); |
261 { |
295 iUsed += size; |
262 iPart->GetContentToBufferL( ptr, iUsed ); |
296 } |
263 iUsed += size; |
|
264 } |
|
265 } |
|
266 return ptr; |
297 return ptr; |
267 } |
298 } |
268 |
299 |
269 // --------------------------------------------------------------------------- |
300 // --------------------------------------------------------------------------- |
270 // |
301 // |
271 // --------------------------------------------------------------------------- |
302 // --------------------------------------------------------------------------- |
272 // |
|
273 void CEmailMessageContent::SetContentL( const TDesC& aContent ) |
303 void CEmailMessageContent::SetContentL( const TDesC& aContent ) |
274 { |
304 { |
|
305 User::LeaveIfNull( iPart ); |
275 iPart->SetContentSize( aContent.Length() ); |
306 iPart->SetContentSize( aContent.Length() ); |
276 iPart->SetFetchedContentSize( aContent.Length() ); |
307 iPart->SetFetchedContentSize( aContent.Length() ); |
277 iPlugin->SetContentL(aContent, |
308 iPlugin->SetContentL( aContent, |
278 FsMsgId(iPluginData, iMsgContentId.iMessageId.iFolderId.iMailboxId), |
309 FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId.iMailboxId ), |
279 FsMsgId(iPluginData, iMsgContentId.iMessageId.iFolderId), |
310 FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId ), |
280 FsMsgId(iPluginData, iMsgContentId.iMessageId), |
311 FsMsgId( iPluginData, iMsgContentId.iMessageId ), |
281 FsMsgId(iPluginData, iMsgContentId)); |
312 FsMsgId( iPluginData, iMsgContentId ) ); |
282 } |
313 } |
283 |
314 |
284 // --------------------------------------------------------------------------- |
315 // --------------------------------------------------------------------------- |
285 // |
316 // |
286 // --------------------------------------------------------------------------- |
317 // --------------------------------------------------------------------------- |
287 // |
|
288 void CEmailMessageContent::FetchL( MEmailFetchObserver& aObserver ) |
318 void CEmailMessageContent::FetchL( MEmailFetchObserver& aObserver ) |
289 { |
319 { |
|
320 User::LeaveIfNull( iPart ); |
290 const TFSMailMsgId fsId = FsMsgId(iPluginData, iMsgContentId); |
321 const TFSMailMsgId fsId = FsMsgId(iPluginData, iMsgContentId); |
291 if ( !iFetchObserver ) |
322 if ( !iFetchObserver ) |
292 { |
323 { |
293 iFetchObserver = new (ELeave) CContentRequestObserver( *this ); |
324 iFetchObserver = new ( ELeave ) CContentRequestObserver( *this ); |
294 } |
325 } |
295 iFetchObserver->SetObserverL(&aObserver); |
326 iFetchObserver->SetObserverL( &aObserver ); |
296 iRequestId = iPart->FetchMessagePartL(fsId, *iFetchObserver, TUint(0)); |
327 iRequestId = iPart->FetchMessagePartL( fsId, *iFetchObserver, TUint( 0 ) ); |
297 |
328 |
298 } |
329 } |
299 |
330 |
300 // --------------------------------------------------------------------------- |
331 // --------------------------------------------------------------------------- |
301 // |
332 // |
302 // --------------------------------------------------------------------------- |
333 // --------------------------------------------------------------------------- |
303 // |
|
304 void CEmailMessageContent::CancelFetch() |
334 void CEmailMessageContent::CancelFetch() |
305 { |
335 { |
306 TRAP_IGNORE( iPlugin->CancelL(iRequestId) ); |
336 TRAP_IGNORE( iPlugin->CancelL( iRequestId ) ); |
307 } |
337 } |
308 |
338 |
309 // --------------------------------------------------------------------------- |
339 // --------------------------------------------------------------------------- |
310 // |
340 // |
311 // --------------------------------------------------------------------------- |
341 // --------------------------------------------------------------------------- |
312 // |
|
313 void CEmailMessageContent::SaveToFileL( const TDesC& aPath ) |
342 void CEmailMessageContent::SaveToFileL( const TDesC& aPath ) |
314 { |
343 { |
315 iPlugin->CopyMessagePartFileL( |
344 iPlugin->CopyMessagePartFileL( |
316 FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId.iMailboxId ), |
345 FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId.iMailboxId ), |
317 FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId ), |
346 FsMsgId( iPluginData, iMsgContentId.iMessageId.iFolderId ), |
318 FsMsgId( iPluginData, iMsgContentId.iMessageId ), |
347 FsMsgId( iPluginData, iMsgContentId.iMessageId ), |
319 FsMsgId( iPluginData, iMsgContentId ), |
348 FsMsgId( iPluginData, iMsgContentId ), |
320 aPath ); |
349 aPath ); |
321 } |
350 } |
322 |
351 |
323 /* Dummy implementations, not ever called */ |
352 /* Dummy implementations, not ever called */ |
327 } |
356 } |
328 |
357 |
329 // --------------------------------------------------------------------------- |
358 // --------------------------------------------------------------------------- |
330 // |
359 // |
331 // --------------------------------------------------------------------------- |
360 // --------------------------------------------------------------------------- |
332 // |
361 MEmailTextContent* CEmailMessageContent::AsTextContentOrNull() const |
333 MEmailTextContent* CEmailMessageContent::AsTextContentOrNull()const |
|
334 { |
362 { |
335 return NULL; |
363 return NULL; |
336 } |
364 } |
337 |
365 |
338 // --------------------------------------------------------------------------- |
366 // --------------------------------------------------------------------------- |
339 // |
367 // |
340 // --------------------------------------------------------------------------- |
368 // --------------------------------------------------------------------------- |
341 // |
|
342 MEmailAttachment* CEmailMessageContent::AsAttachmentOrNull() const |
369 MEmailAttachment* CEmailMessageContent::AsAttachmentOrNull() const |
343 { |
370 { |
344 return NULL; |
371 return NULL; |
345 } |
372 } |
346 |
373 |
347 |
374 // --------------------------------------------------------------------------- |
348 // --------------------------------------------------------------------------- |
375 // |
349 // |
376 // --------------------------------------------------------------------------- |
350 // --------------------------------------------------------------------------- |
|
351 // |
|
352 CEmailMessageContent::CContentRequestObserver::CContentRequestObserver( |
377 CEmailMessageContent::CContentRequestObserver::CContentRequestObserver( |
353 CEmailMessageContent& aParent ) : iObserver( NULL ), iParent( aParent ) |
378 CEmailMessageContent& aParent ) : iObserver( NULL ), iParent( aParent ) |
354 { |
379 { |
355 } |
380 } |
356 |
381 |
357 |
382 // --------------------------------------------------------------------------- |
358 // --------------------------------------------------------------------------- |
383 // |
359 // |
384 // --------------------------------------------------------------------------- |
360 // --------------------------------------------------------------------------- |
|
361 // |
|
362 void CEmailMessageContent::CContentRequestObserver::RequestResponseL( |
385 void CEmailMessageContent::CContentRequestObserver::RequestResponseL( |
363 TFSProgress aEvent, TInt /* aRequestId */ ) |
386 TFSProgress aEvent, TInt /* aRequestId */ ) |
364 { |
387 { |
365 if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete) |
388 if ( aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete ) |
366 { |
389 { |
367 delete iParent.iPart; |
390 delete iParent.iPart; |
368 iParent.iPart = NULL; |
391 iParent.iPart = NULL; |
369 CFSMailMessagePart *part = iParent.iPlugin->MessagePartL( |
392 CFSMailMessagePart *part = iParent.iPlugin->MessagePartL( |
370 FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId.iFolderId.iMailboxId ), |
393 FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId.iFolderId.iMailboxId ), |
371 FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId.iFolderId ), |
394 FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId.iFolderId ), |
372 FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId ), |
395 FsMsgId( iParent.iPluginData, iParent.iMsgContentId.iMessageId ), |
373 FsMsgId( iParent.iPluginData, iParent.iMsgContentId ) ); |
396 FsMsgId( iParent.iPluginData, iParent.iMsgContentId ) ); |
374 iParent.SetPart( part ); |
397 iParent.SetPart( part ); |
375 iObserver->DataFetchedL(aEvent.iError); |
398 |
376 } |
399 if ( iObserver ) |
377 } |
400 iObserver->DataFetchedL( aEvent.iError ); |
378 |
401 } |
379 // --------------------------------------------------------------------------- |
402 } |
380 // |
403 |
381 // --------------------------------------------------------------------------- |
404 // --------------------------------------------------------------------------- |
382 // |
405 // |
|
406 // --------------------------------------------------------------------------- |
383 void CEmailMessageContent::CContentRequestObserver::SetObserverL( MEmailFetchObserver* aObserver ) |
407 void CEmailMessageContent::CContentRequestObserver::SetObserverL( MEmailFetchObserver* aObserver ) |
384 { |
408 { |
385 iObserver = aObserver; |
409 iObserver = aObserver; |
386 } |
410 } |
387 |
411 |
388 // End of file. |
412 // End of file |