|
||
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.
CMsvOperation* 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
.
CMsvOperation* ChangeL(const TMsvEntry& aEntry,
TRequestStatus& aStatus)
Not supported, returns KErrNotSupported
.
CMsvOperation* DeleteL(TMsvId aMsvId, TRequestStatus&
aStatus)
CMsvOperation* 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.
CMsvOperation* CopyL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvOperation* 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.
CMsvOperation* MoveL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvOperation* 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.
CMsvOperation* CopyL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvOperation* 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.
CMsvOperation* MoveL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvOperation* 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.
CMsvOperation* CopyL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvOperation* 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.
CMsvOperation* MoveL(const CMsvEntrySelection& aSelection,
TMsvId aTargetId, TRequestStatus& aStatus)
CMsvOperation* 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.