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.
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
.
CMsvFunction* ChangeL(const TMsvEntry& aEntry,
TRequestStatus& aStatus)
Not supported, returns KErrNotSupported
.
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.
CMsvFunction* CopyL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvFunction* CopyL(TMsvId aMsvId, TMsvId aTargetId,
TRequestStatus& aStatus)
Online: For each specified item in aSelection
,
If the item is a message, the function fetches the message
parts specified by the service settings
(CImImap4Settings::GetMailOptions()
), and moves the
message from the mirror into the destination folder specified by
aTargetId
, copying back the structure of the message to the mirror
afterwards.
If the item is a message text item or attachment, the function
fetches just that specified part and moves it into the destination folder
specified (regardless of the GetMailOptions()
options). It is the
caller's responsibility to ensure that the destination folder is specified
correctly.
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.
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.
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.
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.
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.
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.