24 #include "CFSMailClient.h" |
24 #include "CFSMailClient.h" |
25 #include "CFSFWImplementation.h" |
25 #include "CFSFWImplementation.h" |
26 #include "CFSMailPluginManager.h" |
26 #include "CFSMailPluginManager.h" |
27 #include "CFSMailRequestObserver.h" |
27 #include "CFSMailRequestObserver.h" |
28 #include "CFSMailIterator.h" |
28 #include "CFSMailIterator.h" |
29 #include "CFSMailBrandManagerImpl.h" |
|
30 |
29 |
31 |
30 |
32 // ================= MEMBER FUNCTIONS ========================================== |
31 // ================= MEMBER FUNCTIONS ========================================== |
33 // ----------------------------------------------------------------------------- |
32 // ----------------------------------------------------------------------------- |
34 // CFSMailClient::NewLC |
33 // CFSMailClient::NewLC |
55 |
54 |
56 // Increment reference count before calling CleanupClosePushL so that |
55 // Increment reference count before calling CleanupClosePushL so that |
57 // the reference count is correct if CleanupClosePushL leaves. |
56 // the reference count is correct if CleanupClosePushL leaves. |
58 client->IncReferenceCount(); |
57 client->IncReferenceCount(); |
59 CleanupClosePushL( *client ); |
58 CleanupClosePushL( *client ); |
60 |
59 |
61 return client; |
60 return client; |
62 } |
61 } |
63 |
62 |
64 // ----------------------------------------------------------------------------- |
63 // ----------------------------------------------------------------------------- |
65 // CFSMailClient::NewL |
64 // CFSMailClient::NewL |
66 // ----------------------------------------------------------------------------- |
65 // ----------------------------------------------------------------------------- |
67 EXPORT_C CFSMailClient* CFSMailClient::NewL() |
66 EXPORT_C CFSMailClient* CFSMailClient::NewL() |
68 { |
67 { |
69 NM_FUNCTION; |
68 NM_FUNCTION; |
70 |
69 |
71 CFSMailClient* client = CFSMailClient::NewLC(EFSLoadPlugins); |
70 CFSMailClient* client = CFSMailClient::NewLC(EFSLoadPlugins); |
72 CleanupStack:: Pop(client); |
71 CleanupStack:: Pop(client); |
73 return client; |
72 return client; |
74 } |
73 } |
75 |
74 |
89 // CFSMailClient::ConstructL |
88 // CFSMailClient::ConstructL |
90 // ----------------------------------------------------------------------------- |
89 // ----------------------------------------------------------------------------- |
91 void CFSMailClient::ConstructL(TInt aConfiguration) |
90 void CFSMailClient::ConstructL(TInt aConfiguration) |
92 { |
91 { |
93 NM_FUNCTION; |
92 NM_FUNCTION; |
94 |
93 |
95 iFWImplementation = CFSFWImplementation::NewL(aConfiguration); |
94 iFWImplementation = CFSFWImplementation::NewL(aConfiguration); |
96 } |
95 } |
97 |
96 |
98 // ----------------------------------------------------------------------------- |
97 // ----------------------------------------------------------------------------- |
99 // CFSMailClient::CFSMailClient |
98 // CFSMailClient::CFSMailClient |
100 // ----------------------------------------------------------------------------- |
99 // ----------------------------------------------------------------------------- |
101 CFSMailClient::CFSMailClient() |
100 CFSMailClient::CFSMailClient() |
102 { |
101 { |
103 NM_FUNCTION; |
102 NM_FUNCTION; |
104 |
103 |
105 // clear pointers |
104 // clear pointers |
106 iFWImplementation = NULL; |
105 iFWImplementation = NULL; |
107 iBrandManager = NULL; |
|
108 } |
106 } |
109 |
107 |
110 |
108 |
111 // ----------------------------------------------------------------------------- |
109 // ----------------------------------------------------------------------------- |
112 // CFSMailClient::~CFSMailClient |
110 // CFSMailClient::~CFSMailClient |
113 // ----------------------------------------------------------------------------- |
111 // ----------------------------------------------------------------------------- |
114 EXPORT_C CFSMailClient::~CFSMailClient() |
112 EXPORT_C CFSMailClient::~CFSMailClient() |
115 { |
113 { |
116 NM_FUNCTION; |
114 NM_FUNCTION; |
117 |
|
118 if(iBrandManager) |
|
119 { |
|
120 delete iBrandManager; |
|
121 } |
|
122 Close(); |
115 Close(); |
123 } |
116 } |
124 |
117 |
125 // ----------------------------------------------------------------------------- |
118 // ----------------------------------------------------------------------------- |
126 // CFSMailClient::GetMailBoxByUidL |
119 // CFSMailClient::GetMailBoxByUidL |
127 // ----------------------------------------------------------------------------- |
120 // ----------------------------------------------------------------------------- |
128 EXPORT_C CFSMailBox* CFSMailClient::GetMailBoxByUidL(const TFSMailMsgId aMailBoxId) |
121 EXPORT_C CFSMailBox* CFSMailClient::GetMailBoxByUidL(const TFSMailMsgId aMailBoxId) |
129 { |
122 { |
130 NM_FUNCTION; |
123 NM_FUNCTION; |
131 |
124 |
132 // select plugin |
125 // select plugin |
133 CFSMailBox* mailBox = NULL; |
126 CFSMailBox* mailBox = NULL; |
134 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId); |
127 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId); |
135 if(plugin) |
128 if(plugin) |
136 { |
129 { |
140 |
133 |
141 return mailBox; |
134 return mailBox; |
142 } |
135 } |
143 |
136 |
144 // ----------------------------------------------------------------------------- |
137 // ----------------------------------------------------------------------------- |
145 // CFSMailClient::GetMailBoxByUidLC |
|
146 // ----------------------------------------------------------------------------- |
|
147 EXPORT_C CFSMailBox* CFSMailClient::GetMailBoxByUidLC(const TFSMailMsgId aMailBoxId) |
|
148 { |
|
149 NM_FUNCTION; |
|
150 CFSMailBox* mailBox = GetMailBoxByUidL( aMailBoxId ); |
|
151 CleanupStack::PushL( mailBox ); |
|
152 return mailBox; |
|
153 } |
|
154 |
|
155 |
|
156 |
|
157 // ----------------------------------------------------------------------------- |
|
158 // CFSMailClient::GetFolderByUidL |
138 // CFSMailClient::GetFolderByUidL |
159 // ----------------------------------------------------------------------------- |
139 // ----------------------------------------------------------------------------- |
160 EXPORT_C CFSMailFolder* CFSMailClient::GetFolderByUidL( const TFSMailMsgId aMailBoxId, |
140 EXPORT_C CFSMailFolder* CFSMailClient::GetFolderByUidL( const TFSMailMsgId aMailBoxId, |
161 const TFSMailMsgId aFolderId ) |
141 const TFSMailMsgId aFolderId ) |
162 { |
142 { |
163 NM_FUNCTION; |
143 NM_FUNCTION; |
164 |
144 |
165 CFSMailFolder* folder = NULL; |
145 CFSMailFolder* folder = NULL; |
166 |
146 |
167 // select plugin |
147 // select plugin |
168 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aFolderId); |
148 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aFolderId); |
169 if(plugin) |
149 if(plugin) |
170 { |
150 { |
171 // get folder from plugin |
151 // get folder from plugin |
217 // ----------------------------------------------------------------------------- |
197 // ----------------------------------------------------------------------------- |
218 EXPORT_C TInt CFSMailClient::DeleteMailBoxByUidL( const TFSMailMsgId aMailBoxId, |
198 EXPORT_C TInt CFSMailClient::DeleteMailBoxByUidL( const TFSMailMsgId aMailBoxId, |
219 MFSMailRequestObserver& aOperationObserver ) |
199 MFSMailRequestObserver& aOperationObserver ) |
220 { |
200 { |
221 NM_FUNCTION; |
201 NM_FUNCTION; |
222 |
202 |
223 // select plugin |
203 // select plugin |
224 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId); |
204 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId); |
225 if(plugin) |
205 if(plugin) |
226 { |
206 { |
227 // init asynchronous request |
207 // init asynchronous request |
228 TFSPendingRequest request = iFWImplementation->GetPluginManager().InitAsyncRequestL( aMailBoxId.PluginId(), |
208 TFSPendingRequest request = iFWImplementation->GetPluginManager().InitAsyncRequestL( aMailBoxId.PluginId(), |
229 aOperationObserver ); |
209 aOperationObserver ); |
230 |
210 |
231 TRAPD(err, plugin->DeleteMailBoxByUidL(aMailBoxId,*request.iObserver,request.iRequestId)); |
211 TRAPD(err, plugin->DeleteMailBoxByUidL(aMailBoxId,*request.iObserver,request.iRequestId)); |
232 |
212 |
233 if(err != KErrNone) |
213 if(err != KErrNone) |
234 { |
214 { |
235 iFWImplementation->GetPluginManager().CompleteRequest(request.iRequestId); |
215 iFWImplementation->GetPluginManager().CompleteRequest(request.iRequestId); |
236 } |
216 } |
237 return request.iRequestId; |
217 return request.iRequestId; |
238 } |
218 } |
239 return 0; |
219 return 0; |
240 } |
220 } |
340 { |
320 { |
341 NM_FUNCTION; |
321 NM_FUNCTION; |
342 |
322 |
343 MFSMailIterator* iterator = NULL; |
323 MFSMailIterator* iterator = NULL; |
344 MFSMailIterator* pluginIterator = NULL; |
324 MFSMailIterator* pluginIterator = NULL; |
345 |
325 |
346 // select plugin |
326 // select plugin |
347 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aFolderId)) |
327 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aFolderId)) |
348 { |
328 { |
349 // get message list iterator from plugin |
329 // get message list iterator from plugin |
350 TRAPD(err, pluginIterator = plugin->ListMessagesL(aMailBoxId,aFolderId,aDetails,aSorting)); |
330 TRAPD(err, pluginIterator = plugin->ListMessagesL(aMailBoxId,aFolderId,aDetails,aSorting)); |
351 if(err == KErrNone && pluginIterator) |
331 if(err == KErrNone && pluginIterator) |
352 { |
332 { |
353 TRAPD(err,iterator = CFSMailIterator::NewL(*pluginIterator,&iFWImplementation->GetPluginManager())); |
333 TRAPD(err,iterator = CFSMailIterator::NewL(*pluginIterator,&iFWImplementation->GetPluginManager())); |
354 if(err == KErrNone) |
334 if(err == KErrNone) |
355 { |
335 { |
356 return iterator; |
336 return iterator; |
357 } |
337 } |
358 } |
338 } |
359 } |
339 } |
360 |
340 |
361 return iterator; |
341 return iterator; |
362 } |
342 } |
363 |
|
364 // ----------------------------------------------------------------------------- |
|
365 // CFSMailClient::GetBrandManagerL |
|
366 // ----------------------------------------------------------------------------- |
|
367 EXPORT_C MFSMailBrandManager& CFSMailClient::GetBrandManagerL( void ) |
|
368 { |
|
369 NM_FUNCTION; |
|
370 |
|
371 if(iBrandManager == NULL) |
|
372 { |
|
373 TRAPD( creationError, |
|
374 iBrandManager = CFSMailBrandManagerImpl::NewL( *this ) ); |
|
375 if ( creationError != KErrNone ) |
|
376 { |
|
377 User::Leave( creationError ); |
|
378 } |
|
379 } |
|
380 |
|
381 return *iBrandManager; |
|
382 |
|
383 } |
|
384 |
343 |
385 // ----------------------------------------------------------------------------- |
344 // ----------------------------------------------------------------------------- |
386 // CFSMailClient::AddObserverL |
345 // CFSMailClient::AddObserverL |
387 // ----------------------------------------------------------------------------- |
346 // ----------------------------------------------------------------------------- |
388 EXPORT_C void CFSMailClient::AddObserverL(MFSMailEventObserver& aObserver) |
347 EXPORT_C void CFSMailClient::AddObserverL(MFSMailEventObserver& aObserver) |
389 { |
348 { |
390 NM_FUNCTION; |
349 NM_FUNCTION; |
391 |
350 |
392 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
351 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
393 { |
352 { |
394 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i); |
353 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i); |
395 if(plugin) |
354 if(plugin) |
396 { |
355 { |
397 plugin->AddObserverL(aObserver); |
356 plugin->AddObserverL(aObserver); |
398 } |
357 } |
399 } |
358 } |
400 } |
359 } |
401 |
360 |
402 // ----------------------------------------------------------------------------- |
361 // ----------------------------------------------------------------------------- |
403 // CFSMailClient::RemoveObserver |
362 // CFSMailClient::RemoveObserver |
404 // ----------------------------------------------------------------------------- |
363 // ----------------------------------------------------------------------------- |
405 EXPORT_C void CFSMailClient::RemoveObserver(MFSMailEventObserver& aObserver) |
364 EXPORT_C void CFSMailClient::RemoveObserver(MFSMailEventObserver& aObserver) |
406 { |
365 { |
407 NM_FUNCTION; |
366 NM_FUNCTION; |
408 |
367 |
409 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
368 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
410 { |
369 { |
411 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i); |
370 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i); |
412 if(plugin) |
371 if(plugin) |
413 { |
372 { |
414 plugin->RemoveObserver(aObserver); |
373 plugin->RemoveObserver(aObserver); |
415 } |
374 } |
416 } |
|
417 } |
|
418 |
|
419 // ----------------------------------------------------------------------------- |
|
420 // CFSMailClient::UnregisterRequestObserver |
|
421 // ----------------------------------------------------------------------------- |
|
422 EXPORT_C void CFSMailClient::UnregisterRequestObserver(TInt aRequestId) |
|
423 { |
|
424 NM_FUNCTION; |
|
425 |
|
426 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
|
427 { |
|
428 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i)) |
|
429 { |
|
430 plugin->UnregisterRequestObserver(aRequestId); |
|
431 iFWImplementation->GetPluginManager().CompleteRequest(aRequestId); |
|
432 } |
|
433 } |
375 } |
434 } |
376 } |
435 |
377 |
436 // ----------------------------------------------------------------------------- |
378 // ----------------------------------------------------------------------------- |
437 // CFSMailClient::SubscribeMailboxEventsL |
379 // CFSMailClient::SubscribeMailboxEventsL |
438 // ----------------------------------------------------------------------------- |
380 // ----------------------------------------------------------------------------- |
439 EXPORT_C void CFSMailClient::SubscribeMailboxEventsL(TFSMailMsgId aMailBoxId, |
381 EXPORT_C void CFSMailClient::SubscribeMailboxEventsL(TFSMailMsgId aMailBoxId, |
440 MFSMailEventObserver& aObserver) |
382 MFSMailEventObserver& aObserver) |
441 { |
383 { |
442 NM_FUNCTION; |
384 NM_FUNCTION; |
443 |
385 |
444 // select plugin |
386 // select plugin |
445 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId)) |
387 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId)) |
446 { |
388 { |
447 // set observer |
389 // set observer |
448 plugin->SubscribeMailboxEventsL( aMailBoxId, aObserver ); |
390 plugin->SubscribeMailboxEventsL( aMailBoxId, aObserver ); |
454 // ----------------------------------------------------------------------------- |
396 // ----------------------------------------------------------------------------- |
455 EXPORT_C void CFSMailClient::UnsubscribeMailboxEvents(TFSMailMsgId aMailBoxId, |
397 EXPORT_C void CFSMailClient::UnsubscribeMailboxEvents(TFSMailMsgId aMailBoxId, |
456 MFSMailEventObserver& aObserver) |
398 MFSMailEventObserver& aObserver) |
457 { |
399 { |
458 NM_FUNCTION; |
400 NM_FUNCTION; |
459 |
401 |
460 // select plugin |
402 // select plugin |
461 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId)) |
403 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid(aMailBoxId)) |
462 { |
404 { |
463 // set observer |
405 // set observer |
464 plugin->UnsubscribeMailboxEvents( aMailBoxId, aObserver ); |
406 plugin->UnsubscribeMailboxEvents( aMailBoxId, aObserver ); |
465 } |
407 } |
466 } |
408 } |
467 |
409 |
468 // ----------------------------------------------------------------------------- |
410 // ----------------------------------------------------------------------------- |
469 // CFSMailClient::WizardDataAvailableL |
|
470 // ----------------------------------------------------------------------------- |
|
471 EXPORT_C TInt CFSMailClient::WizardDataAvailableL() |
|
472 { |
|
473 NM_FUNCTION; |
|
474 |
|
475 TInt ret = KErrNone; |
|
476 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
|
477 { |
|
478 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i)) |
|
479 { |
|
480 TInt rcode = plugin->WizardDataAvailableL( ); |
|
481 if(rcode != KErrNone) |
|
482 { |
|
483 ret = KErrGeneral; |
|
484 } |
|
485 } |
|
486 else |
|
487 { |
|
488 ret = KErrGeneral; |
|
489 } |
|
490 } |
|
491 |
|
492 return ret; |
|
493 } |
|
494 |
|
495 // ----------------------------------------------------------------------------- |
|
496 // CFSMailClient::AuthenticateL |
|
497 // ----------------------------------------------------------------------------- |
|
498 EXPORT_C TInt CFSMailClient::AuthenticateL(MFSMailRequestObserver& aOperationObserver) |
|
499 { |
|
500 NM_FUNCTION; |
|
501 |
|
502 TInt requestId(0); |
|
503 |
|
504 for(TInt i=0;i<iFWImplementation->GetPluginManager().GetPluginCount();i++) |
|
505 { |
|
506 if(CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByIndex(i)) |
|
507 { |
|
508 // get async request id |
|
509 TUid id = iFWImplementation->GetPluginManager().GetPluginIdByIndex(i); |
|
510 TFSPendingRequest request = iFWImplementation->GetPluginManager().InitAsyncRequestL( id, aOperationObserver); |
|
511 |
|
512 // send authentication requests |
|
513 requestId = request.iRequestId; |
|
514 TRAPD(err,plugin->AuthenticateL( *request.iObserver, requestId )); |
|
515 if(err != KErrNone) |
|
516 { |
|
517 iFWImplementation->GetPluginManager().CompleteRequest(requestId); |
|
518 } |
|
519 } |
|
520 } |
|
521 |
|
522 return requestId; |
|
523 |
|
524 } |
|
525 |
|
526 // ----------------------------------------------------------------------------- |
|
527 // CFSMailClient::CleanTempDirL |
|
528 // ----------------------------------------------------------------------------- |
|
529 EXPORT_C void CFSMailClient::CleanTempDirL( ) |
|
530 { |
|
531 NM_FUNCTION; |
|
532 |
|
533 iFWImplementation->GetPluginManager().CleanTempDirL(); |
|
534 } |
|
535 |
|
536 // ----------------------------------------------------------------------------- |
|
537 // CFSMailClient::GetTempDir |
|
538 // ----------------------------------------------------------------------------- |
|
539 EXPORT_C TDesC& CFSMailClient::GetTempDirL( ) |
|
540 { |
|
541 NM_FUNCTION; |
|
542 |
|
543 return iFWImplementation->GetPluginManager().GetTempDirL(); |
|
544 } |
|
545 |
|
546 // ----------------------------------------------------------------------------- |
|
547 // CFSMailClient::CancelL |
411 // CFSMailClient::CancelL |
548 // ----------------------------------------------------------------------------- |
412 // ----------------------------------------------------------------------------- |
549 EXPORT_C void CFSMailClient::CancelL( const TInt aRequestId ) |
413 EXPORT_C void CFSMailClient::CancelL( const TInt aRequestId ) |
550 { |
414 { |
551 NM_FUNCTION; |
415 NM_FUNCTION; |
552 |
416 |
553 iFWImplementation->GetPluginManager().CancelRequestL(aRequestId); |
417 iFWImplementation->GetPluginManager().CancelRequestL(aRequestId); |
554 } |
|
555 |
|
556 // ----------------------------------------------------------------------------- |
|
557 // CFSMailClient::CancelAllL |
|
558 // ----------------------------------------------------------------------------- |
|
559 EXPORT_C void CFSMailClient::CancelAllL( ) |
|
560 { |
|
561 NM_FUNCTION; |
|
562 |
|
563 iFWImplementation->GetPluginManager().CancelAllRequestsL(); |
|
564 } |
|
565 |
|
566 // ----------------------------------------------------------------------------- |
|
567 // CFSMailClient::SetMailboxName |
|
568 // ----------------------------------------------------------------------------- |
|
569 EXPORT_C void CFSMailClient::SetMailboxName( const TFSMailMsgId aMailboxId, const TDesC& aMailboxName ) |
|
570 { |
|
571 NM_FUNCTION; |
|
572 |
|
573 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid( aMailboxId ); |
|
574 if ( plugin ) |
|
575 { |
|
576 plugin->SetMailboxName( aMailboxId, aMailboxName ); |
|
577 } |
|
578 } |
418 } |
579 |
419 |
580 // ----------------------------------------------------------------------------- |
420 // ----------------------------------------------------------------------------- |
581 // CFSMailClient::PrepareMrDescriptionL |
421 // CFSMailClient::PrepareMrDescriptionL |
582 // ----------------------------------------------------------------------------- |
422 // ----------------------------------------------------------------------------- |
588 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid( aMessageId ); |
428 CFSMailPlugin* plugin = iFWImplementation->GetPluginManager().GetPluginByUid( aMessageId ); |
589 if ( plugin ) |
429 if ( plugin ) |
590 { |
430 { |
591 // set MR description from the plugin |
431 // set MR description from the plugin |
592 plugin->PrepareMrDescriptionL( aMailBoxId, aMessageId ); |
432 plugin->PrepareMrDescriptionL( aMailBoxId, aMessageId ); |
593 } |
433 } |
594 } |
434 } |
595 |
435 |
|
436 // ----------------------------------------------------------------------------- |
596 // <qmail> |
437 // <qmail> |
597 // ----------------------------------------------------------------------------- |
438 // ----------------------------------------------------------------------------- |
598 // CFSMailClient::GetSignatureL |
439 // CFSMailClient::GetSignatureL |
599 // ----------------------------------------------------------------------------- |
440 // ----------------------------------------------------------------------------- |
600 EXPORT_C HBufC* CFSMailClient::GetSignatureL( const TFSMailMsgId& aMailBoxId ) |
441 EXPORT_C HBufC* CFSMailClient::GetSignatureL( const TFSMailMsgId& aMailBoxId ) |
601 { |
442 { |
602 NM_FUNCTION; |
443 NM_FUNCTION; |
603 HBufC* ret = NULL; |
444 HBufC* ret = NULL; |
604 |
445 |
605 // select plugin |
446 // select plugin |
606 CFSMailPlugin* plugin = |
447 CFSMailPlugin* plugin = |
607 iFWImplementation->GetPluginManager().GetPluginByUid( aMailBoxId ); |
448 iFWImplementation->GetPluginManager().GetPluginByUid( aMailBoxId ); |
608 if ( plugin ) |
449 if ( plugin ) |
609 { |
450 { |
630 if(instance->DecReferenceCount() == 0) |
471 if(instance->DecReferenceCount() == 0) |
631 { |
472 { |
632 if(iFWImplementation) |
473 if(iFWImplementation) |
633 { |
474 { |
634 delete iFWImplementation; |
475 delete iFWImplementation; |
635 iFWImplementation = NULL; |
476 iFWImplementation = NULL; |
636 } |
477 } |
637 Dll::FreeTls(); |
478 Dll::FreeTls(); |
638 delete instance; |
479 delete instance; |
639 } |
480 } |
640 } |
481 } |
641 |
482 |
642 // ----------------------------------------------------------------------------- |
483 // ----------------------------------------------------------------------------- |
643 // CFSMailClient::Instance |
484 // CFSMailClient::Instance |
644 // ----------------------------------------------------------------------------- |
485 // ----------------------------------------------------------------------------- |
645 CFSMailClient* CFSMailClient::Instance() |
486 CFSMailClient* CFSMailClient::Instance() |
646 { |
487 { |
647 NM_FUNCTION; |
488 NM_FUNCTION; |
648 |
489 |
649 return static_cast<CFSMailClient*>(Dll::Tls()); |
490 return static_cast<CFSMailClient*>(Dll::Tls()); |
650 } |
491 } |
651 |
492 |
652 // ----------------------------------------------------------------------------- |
493 // ----------------------------------------------------------------------------- |
653 // CFSMailClient::IncReferenceCount |
494 // CFSMailClient::IncReferenceCount |
654 // ----------------------------------------------------------------------------- |
495 // ----------------------------------------------------------------------------- |
655 EXPORT_C TInt CFSMailClient::IncReferenceCount() |
496 EXPORT_C TInt CFSMailClient::IncReferenceCount() |
656 { |
497 { |
657 NM_FUNCTION; |
498 NM_FUNCTION; |
658 |
499 |
659 return ++iReferenceCount; |
500 return ++iReferenceCount; |
660 } |
501 } |
661 |
502 |
662 // ----------------------------------------------------------------------------- |
503 // ----------------------------------------------------------------------------- |
663 // CFSMailClient::DecReferenceCount |
504 // CFSMailClient::DecReferenceCount |
664 // ----------------------------------------------------------------------------- |
505 // ----------------------------------------------------------------------------- |
665 TInt CFSMailClient::DecReferenceCount() |
506 TInt CFSMailClient::DecReferenceCount() |
666 { |
507 { |
667 NM_FUNCTION; |
508 NM_FUNCTION; |
668 |
509 |
669 return --iReferenceCount; |
510 return --iReferenceCount; |
670 } |
511 } |
671 |
512 |
672 // ----------------------------------------------------------------------------- |
513 // ----------------------------------------------------------------------------- |
673 // CFSMailClient::ReleaseExtension |
514 // CFSMailClient::ReleaseExtension |
674 // ----------------------------------------------------------------------------- |
515 // ----------------------------------------------------------------------------- |
675 EXPORT_C void CFSMailClient::ReleaseExtension( CEmailExtension* aExtension ) |
516 EXPORT_C void CFSMailClient::ReleaseExtension( CEmailExtension* aExtension ) |
676 { |
517 { |
677 NM_FUNCTION; |
518 NM_FUNCTION; |
678 |
519 |
679 CExtendableEmail::ReleaseExtension( aExtension ); |
520 CExtendableEmail::ReleaseExtension( aExtension ); |
680 } |
521 } |
681 |
522 |
682 // ----------------------------------------------------------------------------- |
523 // ----------------------------------------------------------------------------- |
683 // CFSMailClient::ExtensionL |
524 // CFSMailClient::ExtensionL |
684 // ----------------------------------------------------------------------------- |
525 // ----------------------------------------------------------------------------- |
685 EXPORT_C CEmailExtension* CFSMailClient::ExtensionL( const TUid& aInterfaceUid ) |
526 EXPORT_C CEmailExtension* CFSMailClient::ExtensionL( const TUid& aInterfaceUid ) |
686 { |
527 { |
687 NM_FUNCTION; |
528 NM_FUNCTION; |
688 |
529 |
689 return CExtendableEmail::ExtensionL( aInterfaceUid ); |
530 return CExtendableEmail::ExtensionL( aInterfaceUid ); |
690 } |
531 } |
691 |
532 |