55 /** |
54 /** |
56 * two based constructor |
55 * two based constructor |
57 * |
56 * |
58 * @param aMailBoxId mailbox id in plugin containing mailbox |
57 * @param aMailBoxId mailbox id in plugin containing mailbox |
59 */ |
58 */ |
60 IMPORT_C static CFSMailBox* NewL( TFSMailMsgId aMailBoxId ); |
59 IMPORT_C static CFSMailBox* NewL( TFSMailMsgId aMailBoxId ); |
61 |
60 |
62 /** |
61 /** |
63 * two based constructor |
62 * two based constructor |
64 * |
63 * |
65 * @param aMailBoxId mailbox id in plugin containing mailbox |
64 * @param aMailBoxId mailbox id in plugin containing mailbox |
66 */ |
65 */ |
67 IMPORT_C static CFSMailBox* NewLC( TFSMailMsgId aMailBoxId ); |
66 IMPORT_C static CFSMailBox* NewLC( TFSMailMsgId aMailBoxId ); |
68 |
67 |
69 /** |
68 /** |
70 * Enables synchronization of the mailbox. This means |
69 * Enables synchronization of the mailbox. This means |
71 * that the framework can connect to server to do synchronization |
70 * that the framework can connect to server to do synchronization |
72 * of the mailbox when necessary or stay connected all the time. |
71 * of the mailbox when necessary or stay connected all the time. |
73 * The actual functionality depends on user settings and |
72 * The actual functionality depends on user settings and |
82 * |
81 * |
83 * Connection is set offline normally by using specific function |
82 * Connection is set offline normally by using specific function |
84 * for this purpose. There are also other reasons for ending up |
83 * for this purpose. There are also other reasons for ending up |
85 * in offline state like network error or scheduling. |
84 * in offline state like network error or scheduling. |
86 * |
85 * |
87 */ |
86 */ |
88 IMPORT_C void GoOnlineL(); |
87 IMPORT_C void GoOnlineL(); |
89 |
88 |
90 /** |
89 /** |
91 * Disables mailbox synchronization. Connection to server |
90 * Disables mailbox synchronization. Connection to server |
92 * in order to synchronize the mailbox is not allowed |
91 * in order to synchronize the mailbox is not allowed |
93 * after this. |
92 * after this. |
94 * |
93 * |
95 * If GoOnlineL has effect on other mailboxes using the |
94 * If GoOnlineL has effect on other mailboxes using the |
96 * same connection then this function has effect on those |
95 * same connection then this function has effect on those |
97 * mailboxes also. |
96 * mailboxes also. |
98 * |
97 * |
99 */ |
98 */ |
100 IMPORT_C void GoOfflineL(); |
99 IMPORT_C void GoOfflineL(); |
101 |
100 |
102 /** |
101 /** |
103 * Returns last synchronizing operation progress status. |
102 * Returns last synchronizing operation progress status. |
104 * |
103 * |
105 * @return last sync operation progress status |
104 * @return last sync operation progress status |
106 * |
105 * |
107 */ |
106 */ |
108 IMPORT_C TFSProgress GetLastSyncStatusL(); |
107 IMPORT_C TFSProgress GetLastSyncStatusL(); |
109 |
108 |
110 /** |
109 /** |
111 * Forces synchronization of mailbox. This can be called |
110 * Forces synchronization of mailbox. This can be called |
112 * whether the mailbox is currently offline or online. In the |
111 * whether the mailbox is currently offline or online. In the |
113 * case the mailbox is offline in the beginning, connection |
112 * case the mailbox is offline in the beginning, connection |
129 * as comprehensive as the observing using dedicated observer. |
128 * as comprehensive as the observing using dedicated observer. |
130 * |
129 * |
131 * @param aOperationObserver optional observer given by user |
130 * @param aOperationObserver optional observer given by user |
132 * |
131 * |
133 * @return asynchronous request id |
132 * @return asynchronous request id |
134 */ |
133 */ |
135 IMPORT_C TInt RefreshNowL( MFSMailRequestObserver& aOperationObserver ); |
134 IMPORT_C TInt RefreshNowL( MFSMailRequestObserver& aOperationObserver ); |
136 |
135 |
137 IMPORT_C TInt RefreshNowL(); |
136 IMPORT_C TInt RefreshNowL( ); |
138 |
137 |
139 /** |
138 /** |
140 * cancels all ongoing synchronizations in this mailbox regardless |
139 * cancels all ongoing synchronizations in this mailbox regardless |
141 * of initiator, by user or by plugin itself |
140 * of initiator, by user or by plugin itself |
142 * |
141 * |
143 */ |
142 */ |
144 IMPORT_C void CancelSyncL(); |
143 IMPORT_C void CancelSyncL(); |
145 |
144 |
146 /** |
145 /** |
147 * creates into this mailbox new draft email |
146 * creates into this mailbox new draft email |
148 * |
147 * |
149 * @return new draft email object, ownership is transferred to user |
148 * @return new draft email object, ownership is transferred to user |
150 */ |
149 */ |
151 IMPORT_C CFSMailMessage* CreateMessageToSend(); |
150 IMPORT_C CFSMailMessage* CreateMessageToSend( ); |
152 |
151 |
153 // <qmail> |
152 // <qmail> |
154 /** |
153 /** |
155 * Creates a new draft email into this mailbox asynchronously. When the operation |
154 * Creates a new draft email into this mailbox asynchronously. When the operation |
156 * finishes, RequestResponseL is called on the observer and the created message is |
155 * finishes, RequestResponseL is called on the observer and the created message is |
176 const TFSMailMsgId aMailboxId, |
175 const TFSMailMsgId aMailboxId, |
177 RPointerArray<CFSMailMessage> &messages, |
176 RPointerArray<CFSMailMessage> &messages, |
178 MFSMailRequestObserver& aOperationObserver ); |
177 MFSMailRequestObserver& aOperationObserver ); |
179 // </qmail> |
178 // </qmail> |
180 |
179 |
181 /** |
180 /** |
182 * creates into this mailbox new draft email to be forwarded |
181 * creates into this mailbox new draft email to be forwarded |
183 * |
182 * |
184 * @param aOriginalMessageId message id of the original message to be forwarded |
183 * @param aOriginalMessageId message id of the original message to be forwarded |
185 * @param aHeaderDescriptor user can give quote headers data to plugin as |
184 * @param aHeaderDescriptor user can give quote headers data to plugin as |
186 * parameter if needed |
185 * parameter if needed |
187 * |
186 * |
188 * @return new draft email object, ownership is transferred to user |
187 * @return new draft email object, ownership is transferred to user |
189 */ |
188 */ |
190 IMPORT_C CFSMailMessage* CreateForwardMessage( const TFSMailMsgId aOriginalMessageId, |
189 IMPORT_C CFSMailMessage* CreateForwardMessage( const TFSMailMsgId aOriginalMessageId, |
191 const TDesC& aHeaderDescriptor = KNullDesC ); |
190 const TDesC& aHeaderDescriptor = KNullDesC ); |
192 |
191 |
193 // <qmail> |
192 // <qmail> |
194 /** |
193 /** |
195 * creates into this mailbox new draft email to be forwarded asynchronously |
194 * creates into this mailbox new draft email to be forwarded asynchronously |
196 * When the operation finishes, RequestResponseL is called on the observer and |
195 * When the operation finishes, RequestResponseL is called on the observer and |
257 MFSMailRequestObserver& aOperationObserver ); |
256 MFSMailRequestObserver& aOperationObserver ); |
258 |
257 |
259 // </qmail> |
258 // </qmail> |
260 |
259 |
261 /** |
260 /** |
262 * List subfolders of given folder. |
261 * List subfolders of given folder. |
263 * Only direct subfolders of given folder are returned. |
262 * Only direct subfolders of given folder are returned. |
264 * |
263 * |
265 * folder data : |
264 * folder data : |
266 * - folder id |
265 * - folder id |
267 * - folder name |
266 * - folder name |
268 * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other |
267 * - folder type ; Inbox, Outbox, Sent, Drafts, Deleted, Other |
269 * - message count |
268 * - message count |
270 * - unread message count |
269 * - unread message count |
271 * - mailbox id |
270 * - mailbox id |
272 * - parent folder |
271 * - parent folder |
273 * - subfolder count |
272 * - subfolder count |
274 * |
273 * |
275 * @param aFolderId defines parent folder id. TFSMailId::NullId() for root level list. |
274 * @param aFolderId defines parent folder id. TFSMailId::NullId() for root level list. |
276 * @param aFolderList plugin writes results in this array owned by user |
275 * @param aFolderList plugin writes results in this array owned by user |
277 */ |
276 */ |
278 IMPORT_C void ListFolders( const TFSMailMsgId aFolderId, RPointerArray<CFSMailFolder>& aFolderList ); |
277 IMPORT_C void ListFolders( const TFSMailMsgId aFolderId, RPointerArray<CFSMailFolder>& aFolderList); |
279 |
278 |
280 /** |
279 /** |
281 * List all subfolders of mailbox. |
280 * List all subfolders of mailbox. |
282 * |
281 * |
283 * folder data : |
282 * folder data : |
284 * - folder id |
283 * - folder id |
285 * - folder name |
284 * - folder name |
286 * - folder type ; Inbox, Outbox, Sent Items, Drafts, Deleted Items, Other |
285 * - folder type ; Inbox, Outbox, Sent Items, Drafts, Deleted Items, Other |
287 * - message count |
286 * - message count |
288 * - unread message count |
287 * - unread message count |
289 * - mailbox id |
288 * - mailbox id |
290 * - parent folder |
289 * - parent folder |
291 * - subfolder count |
290 * - subfolder count |
292 * |
291 * |
293 * @return results in this array owned by this object, caller must determine |
292 * @return results in this array owned by this object, caller must determine |
294 * tree structure by examining parent id of each returned folder. |
293 * tree structure by examining parent id of each returned folder. |
295 */ |
294 */ |
296 IMPORT_C RPointerArray<CFSMailFolder>& ListFolders(); |
295 IMPORT_C RPointerArray<CFSMailFolder>& ListFolders( ); |
297 |
296 |
298 /** |
297 /** |
299 * Standard folder id accessor. |
298 * Standard folder id accessor. |
300 * |
299 * |
301 * @param aFolderType defines folder type |
300 * @param aFolderType defines folder type |
302 * @return standard folder id |
301 * @return standard folder id |
303 */ |
302 */ |
304 IMPORT_C TFSMailMsgId GetStandardFolderId( const TFSFolderType aFolderType ); |
303 IMPORT_C TFSMailMsgId GetStandardFolderId( const TFSFolderType aFolderType ); |
305 |
304 |
306 |
305 |
307 /** |
306 /** |
308 * Branding id accessor for this mailbox. This function is used by Branding Manager |
307 * Branding id accessor for this mailbox. This function is used by Branding Manager |
309 * to associate mailbox to a branding definition. |
308 * to associate mailbox to a branding definition. |
310 * |
309 * |
311 * @return branding id |
310 * @return branding id |
312 */ |
311 */ |
313 IMPORT_C TDesC& GetBrandingIdL( ); |
312 IMPORT_C TDesC& GetBrandingIdL( ); |
314 |
313 |
315 |
314 |
316 /** |
315 /** |
317 * Moves a messages between folders. |
316 * Moves a messages between folders. |
318 * |
317 * |
319 * @param aMessageIds ids of the messages to be transferred |
318 * @param aMessageIds ids of the messages to be transferred |
320 * @param aSourceFolderId source folder id |
319 * @param aSourceFolderId source folder id |
321 * @param aDestinationFolderId destination folder id |
320 * @param aDestinationFolderId destination folder id |
322 */ |
321 */ |
323 IMPORT_C void MoveMessagesL( const RArray<TFSMailMsgId>& aMessageIds, |
322 IMPORT_C void MoveMessagesL( const RArray<TFSMailMsgId>& aMessageIds, |
324 const TFSMailMsgId aSourceFolderId, |
323 const TFSMailMsgId aSourceFolderId, |
325 const TFSMailMsgId aDestinationFolderId ); |
324 const TFSMailMsgId aDestinationFolderId ); |
326 |
325 |
|
326 /** |
|
327 * Moves a messages between folders. Async version. |
|
328 * |
|
329 * @param MFSMailRequestObserver& aOperationObserver for callback |
|
330 * @param aMessageIds ids of the messages to be transferred |
|
331 * @param aSourceFolderId source folder id |
|
332 * @param aDestinationFolderId destination folder id |
|
333 */ |
|
334 IMPORT_C TInt MoveMessagesL( MFSMailRequestObserver& aOperationObserver, |
|
335 const RArray<TFSMailMsgId>& aMessageIds, |
|
336 const TFSMailMsgId aSourceFolderId, |
|
337 const TFSMailMsgId aDestinationFolderId ); |
327 /** |
338 /** |
328 * Copies a messages from one folder to another folder. |
339 * Copies a messages from one folder to another folder. |
329 * including the properties, content, and all attachments. |
340 * including the properties, content, and all attachments. |
330 * (note only works if the store is in an authenticated state, |
341 * (note only works if the store is in an authenticated state, |
331 * otherwise this function leaves with KErrNotReady) |
342 * otherwise this function leaves with KErrNotReady) |
334 * @param aCopiedMessages table containing (new) ids of the copied messages |
345 * @param aCopiedMessages table containing (new) ids of the copied messages |
335 * owned by user |
346 * owned by user |
336 * @param aSourceFolderId source folder id |
347 * @param aSourceFolderId source folder id |
337 * @param aDestinationFolderId destination folder id |
348 * @param aDestinationFolderId destination folder id |
338 */ |
349 */ |
339 IMPORT_C void CopyMessagesL( const RArray<TFSMailMsgId>& aMessageIds, |
350 IMPORT_C void CopyMessagesL( const RArray<TFSMailMsgId>& aMessageIds, |
340 RArray<TFSMailMsgId>& aCopiedMessages, |
351 RArray<TFSMailMsgId>& aCopiedMessages, |
341 const TFSMailMsgId aSourceFolderId, |
352 const TFSMailMsgId aSourceFolderId, |
342 const TFSMailMsgId aDestinationFolderId ); |
353 const TFSMailMsgId aDestinationFolderId ); |
343 |
354 |
344 /** |
355 /** |
345 * Asyncronous call for starting search for given string. Only one search can be |
356 * Asyncronous call for starting search for given string. Only one search can be |
346 * performed at a time. |
357 * performed at a time. |
347 * |
358 * |
348 * This function will search for message's containing the given search string. |
359 * This function will search for message's containing the given search string. |
353 * To change the sort order in the search result, use the same search string in the |
364 * To change the sort order in the search result, use the same search string in the |
354 * but change the aSortCriteria parameter. The store "caches" the search |
365 * but change the aSortCriteria parameter. The store "caches" the search |
355 * results generated by the same search string. |
366 * results generated by the same search string. |
356 * |
367 * |
357 * The function will leave with KErrInUse if a search is already in progress. |
368 * The function will leave with KErrInUse if a search is already in progress. |
358 * |
369 * |
359 * note only works if the store is in an authenticated state, |
370 * note only works if the store is in an authenticated state, |
360 * otherwise this function leaves with KErrNotReady |
371 * otherwise this function leaves with KErrNotReady |
361 * |
372 * |
362 * @param aSearchStrings text strings that will be searched from different message fields. |
373 * @param aSearchStrings text strings that will be searched from different message fields. |
363 * @param aSortCriteria sort criteria for the results |
374 * @param aSortCriteria sort criteria for the results |
364 * @param aSortCriteria sort criteria for the results |
375 * @param aSortCriteria sort criteria for the results |
365 * @param aFolderIds user can give list of folders to be searched |
376 * @param aFolderIds user can give list of folders to be searched |
366 */ |
377 */ |
367 IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings, |
378 IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings, |
368 const TFSMailSortCriteria& aSortCriteria, |
379 const TFSMailSortCriteria& aSortCriteria, |
369 MFSMailBoxSearchObserver& aSearchObserver ); |
380 MFSMailBoxSearchObserver& aSearchObserver ); |
370 |
381 |
371 IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings, |
382 IMPORT_C void SearchL( const RPointerArray<TDesC>& aSearchStrings, |
372 const TFSMailSortCriteria& aSortCriteria, |
383 const TFSMailSortCriteria& aSortCriteria, |
373 MFSMailBoxSearchObserver& aSearchObserver, |
384 MFSMailBoxSearchObserver& aSearchObserver, |
374 RArray<TFSMailMsgId> aFolderIds ); |
385 RArray<TFSMailMsgId> aFolderIds ); |
375 /** |
386 /** |
376 * Cancels current search. Does nothing if there is not any search ongoing. |
387 * Cancels current search. Does nothing if there is not any search ongoing. |
377 * The search client will not be called back after this function is called. |
388 * The search client will not be called back after this function is called. |
378 * |
389 * |
379 * note CancelSearch() method does NOT clear the search result cached in the store. |
390 * note CancelSearch() method does NOT clear the search result cached in the store. |
380 * A different sort order can be used for the same search string, and the |
391 * A different sort order can be used for the same search string, and the |
381 * cache will be utilized. Only by using a different search string can the |
392 * cache will be utilized. Only by using a different search string can the |
382 * cache be cleaned. |
393 * cache be cleaned. |
383 */ |
394 */ |
384 IMPORT_C void CancelSearch(); |
395 IMPORT_C void CancelSearch(); |
385 |
396 |
386 /** |
397 /** |
387 * Inform the store to clean up its cache for search results. |
398 * Inform the store to clean up its cache for search results. |
388 * |
399 * |
389 * This method cancels the the ongoing search (if exists), and then clean ups store's cache. |
400 * This method cancels the the ongoing search (if exists), and then clean ups store's cache. |
390 * |
401 * |
391 * This function should be called by the UI when search results are no longer in display. |
402 * This function should be called by the UI when search results are no longer in display. |
392 */ |
403 */ |
393 IMPORT_C void ClearSearchResultCache(); |
404 IMPORT_C void ClearSearchResultCache(); |
394 |
405 |
395 /** |
406 /** |
396 * DEPRECATED |
407 * DEPRECATED |
397 * |
408 * |
398 * @param aFolderId... |
409 * @param aFolderId... |
399 * @param aObserver observer |
410 * @param aObserver observer |
400 */ |
411 */ |
401 IMPORT_C void AddObserver( const TFSMailMsgId aFolderId, MFSMailEventObserver& aObserver ); |
412 IMPORT_C void AddObserver(const TFSMailMsgId aFolderId, MFSMailEventObserver& aObserver); |
402 |
413 |
403 /** |
414 /** |
404 * Get a list of most recently used addresses of this mailbox. |
415 * Get a list of most recently used addresses of this mailbox. |
405 * Each MRU entry consists of two descriptors placed sequentially |
416 * Each MRU entry consists of two descriptors placed sequentially |
406 * in the array. First one is the display name and the second |
417 * in the array. First one is the display name and the second |
409 * the name. |
420 * the name. |
410 * |
421 * |
411 * @return Array of descriptors containing MRUs. Ownership |
422 * @return Array of descriptors containing MRUs. Ownership |
412 * is transferred. Empty if no entries are found. |
423 * is transferred. Empty if no entries are found. |
413 */ |
424 */ |
414 IMPORT_C MDesCArray* ListMrusL() const; |
425 IMPORT_C MDesCArray* ListMrusL() const; |
415 |
426 |
416 /** |
427 /** |
417 * Returns the current synchronizing state of this mailbox. |
428 * Returns the current synchronizing state of this mailbox. |
418 * |
429 * |
419 * @return mailbox synchronizing state data structure |
430 * @return mailbox synchronizing state data structure |
420 */ |
431 */ |
421 IMPORT_C TSSMailSyncState CurrentSyncState() const; |
432 IMPORT_C TSSMailSyncState CurrentSyncState() const; |
422 |
433 |
423 /** |
434 /** |
424 * mailbox capability check for user |
435 * mailbox capability check for user |
425 * |
436 * |
426 * @param aCapa mailbox capability to be checked |
437 * @param aCapa mailbox capability to be checked |
427 */ |
438 */ |
428 IMPORT_C TBool HasCapability( const TFSMailBoxCapabilities aCapability ) const; |
439 IMPORT_C TBool HasCapability(const TFSMailBoxCapabilities aCapability) const; |
429 |
440 |
430 /** |
441 /** |
431 * mailbox connection status accessor |
442 * mailbox connection status accessor |
432 * |
443 * |
433 * @return connection status, online / offline |
444 * @return connection status, online / offline |
434 */ |
445 */ |
435 IMPORT_C TFSMailBoxStatus GetMailBoxStatus( ); |
446 IMPORT_C TFSMailBoxStatus GetMailBoxStatus( ); |
436 |
447 |
437 /** |
448 /** |
438 * mailbox authentication data mutator |
449 * mailbox authentication data mutator |
439 * |
450 * |
440 * @param aUsername account user name |
451 * @param aUsername account user name |
459 * checks from plugin if connection is allowed when roaming |
470 * checks from plugin if connection is allowed when roaming |
460 * |
471 * |
461 * @param aConnectionAllowed |
472 * @param aConnectionAllowed |
462 * @return KErrNone or error code |
473 * @return KErrNone or error code |
463 */ |
474 */ |
464 IMPORT_C TInt IsConnectionAllowedWhenRoaming( TBool& aConnectionAllowed ) ; |
475 IMPORT_C TInt IsConnectionAllowedWhenRoaming( TBool& aConnectionAllowed) ; |
465 |
476 |
|
477 /** |
|
478 * creates email from RFC822 format data stream located |
|
479 * in given attachment file |
|
480 * |
|
481 * @param aFile access to file containing data stream contents |
|
482 * given by user |
|
483 * |
|
484 * return new email object, ownership is transferred to user |
|
485 */ |
|
486 IMPORT_C CFSMailMessage* CreateMessageFromFileL( const RFile& aFile ); |
|
487 |
|
488 public: // from CExtendableEmail |
|
489 |
|
490 /** |
|
491 * @see CExtendableEmail::ReleaseExtension() |
|
492 */ |
|
493 IMPORT_C void ReleaseExtension( CEmailExtension* aExtension ); |
|
494 |
|
495 /** |
|
496 * Returns extension by uid, leaves KErrNotSupported if extension is |
|
497 * not available. |
|
498 * @param aInterfaceUid extension interface uid |
|
499 * @return extension pointer. Ownership depends on extension. |
|
500 */ |
|
501 IMPORT_C CEmailExtension* ExtensionL( const TUid& aInterfaceUid ); |
|
502 |
466 private: |
503 private: |
467 |
504 |
468 /** |
505 /** |
469 * Two-phased constructor |
506 * Two-phased constructor |
470 */ |
507 */ |
471 void ConstructL( TFSMailMsgId aMailBoxId ); |
508 void ConstructL( TFSMailMsgId aMailBoxId ); |
472 |
509 |
473 /** |
510 /** |
474 * C++ default constructor. |
511 * C++ default constructor. |
475 */ |
512 */ |
476 CFSMailBox(); |
513 CFSMailBox(); |
477 |
514 |
478 /** |
515 /** |
479 * Function used internally to inform that Mru list related to this |
516 * Function used internally to inform that Mru list related to this |
480 * mailbox should now be updated using the given recipient info. In |
517 * mailbox should now be updated using the given recipient info. In |
481 * other words this function makes sure that the given recipients are |
518 * other words this function makes sure that the given recipients are |