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