Symbian
Symbian OS Library

SYMBIAN OS V9.3

[Index] [Spacer] [Previous] [Next]



CMsvEntry functions for IMAP4 message entries

The messaging architecture supplies a generic interface, CMsvEntry, for manipulating message entries. Not all generic operations are meaningful in the context of the IMAP4 protocol, and therefore a number of the generic operation functions will return KErrNotSupported if they are called. In particular, IMAP4 does not support sending email.


Create function

CMsvFunction* CreateL(const TMsvEntry& aEntry, TRequestStatus& aStatus)

Online: Creates a new folder on the remote mail server at the position specified by aEntry within the mirror. The folder will be given the name specified by aEntry.iDetails descriptor.

Offline: returns KErrNotSupported.

[Top]


Change function

CMsvFunction* ChangeL(const TMsvEntry& aEntry, TRequestStatus& aStatus)

Not supported, returns KErrNotSupported.

[Top]


Delete function

CMsvFunction* DeleteL(TMsvId aMsvId, TRequestStatus& aStatus)

CMsvFunction* DeleteL(const CMsvEntrySelection& aSelection, TRequestStatus& aStatus)

void DeleteL(TMsvId aMsvId);

void DeleteL(const CMsvEntrySelection& aSelection, TMsvLocalOperationProgress& aProgress);

Online: Immediately deletes all specified messages from the remote server.

Offline: Queues delete operations on the specified messages to be carried out when next online (either on synchronisation or disconnection depending on the service settings). A pending delete can be removed by using the KIMAP4MTMUndeleteAll command.

[Top]


Copy from remote function

CMsvFunction* CopyL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus)

CMsvFunction* CopyL(TMsvId aMsvId, TMsvId aTargetId, TRequestStatus& aStatus)

Online: For each specified item in aSelection,

Offline: the function queues copy operations on each of the specified items, to be carried out when next online. When a copy or move operation of a message (not a part) is queued, then a shadow entry is created at the location where the new message will appear. The original message that this shadow relates to can be found by looking at the iRelatedId field in the shadow. Note that only the head TMsvId is created for a shadow item: none of the component parts are shadowed. A queued copy operation cannot be removed individually. Note that if the destination folder specified is the source message or the source's folder, then the message is only fetched to the mirror and not fetched further.

[Top]


Move from remote function

CMsvFunction* MoveL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus)

CMsvFunction* MoveL(TMsvId aMsvId, TMsvId aTargetId, TRequestStatus& aStatus)

Online: for each message in aSelection, the function fetch all its parts and move the message from the mirror into the destination folder specified, and then deletes the source message from the server. Message parts cannot be moved.

Offline: the functions queues move operations for each of the specified items, to be carried out when next online. A queued move operation can be removed by queuing a move of the shadow entry back to the original folder.

[Top]


Copy from local function

CMsvFunction* CopyL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus)

CMsvFunction* CopyL(TMsvId aMsvId, TMsvId aTargetId, TRequestStatus& aStatus)

Online: Uploads the specified messages into a folder on the remote server specified by aTargetId. Message parts cannot be uploaded.

Offline: Queues copy operations for each of the specified items, to be carried out when next online. A queued copy operation cannot be removed individually.

[Top]


Move from local function

CMsvFunction* MoveL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus)

CMsvFunction* MoveL(TMsvId aMsvId, TMsvId aTargetId, TRequestStatus& aStatus)

Online: Uploads the specified messages into a folder on the remote server specified by aTargetId, and then deletes the source messages from the local service.

Offline: Queues move operations for each of the specified items, to be carried out when next online. A queued move operation can be removed by queuing a move of the shadow entry back to the original folder.

[Top]


Copy within service function

CMsvFunction* CopyL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus)

CMsvFunction* CopyL(TMsvId aMsvId, TMsvId aTargetId, TRequestStatus& aStatus)

Online: Copies all specified messages in the remote mailbox mirror from their current position into the remote folder identified by aTargetId. All entries in aSelection must be message entries; aTargetId must be a folder entry.

Offline: Queues copy operations on each of the specified items, to be carried out when next online. A queued copy operation cannot be removed individually.

[Top]


Move within service function

CMsvFunction* MoveL(const CMsvEntrySelection& aSelection, TMsvId aTargetId, TRequestStatus& aStatus)

CMsvFunction* MoveL(TMsvId aMsvId, TMsvId aTargetId, TRequestStatus& aStatus)

Online: Moves all specified messages in the remote mailbox mirror from their current position into the remote folder identified by aTargetId. All entries in aSelection must be message entries; aTargetId must be a folder entry.

Offline: Queues move operations on each of the specified items, to be carried out when next online. A queued move operation can be removed by queuing a move of the shadow entry back to the original folder.