CMsvEntry Class Reference

#include <mw/msvapi.h>

class CMsvEntry : public CBase, public MMsvSessionObserver, public MMsvStoreObserver, public CBase, public MMsvSessionObserver, public MMsvStoreObserver
Public Member Functions
~CMsvEntry()
IMPORT_C voidAddObserverL(MMsvEntryObserver &)
IMPORT_C voidChangeAttributesL(const CMsvEntrySelection &, TUint, TUint)
IMPORT_C voidChangeL(const TMsvEntry &)
IMPORT_C voidChangeL(const TMsvEntry &, TSecureId)
IMPORT_C CMsvOperation *ChangeL(const TMsvEntry &, TRequestStatus &)
IMPORT_C CMsvOperation *ChangeL(const TMsvEntry &, TSecureId, TRequestStatus &)
IMPORT_C CMsvOperation *ChangeL(const CMsvEntrySelection &, TBool, TRequestStatus &)
IMPORT_C const TMsvEntry &ChildDataL(TMsvId)
IMPORT_C CMsvEntry *ChildEntryL(TMsvId)
IMPORT_C CMsvEntrySelection *ChildrenL()
IMPORT_C CMsvEntrySelection *ChildrenWithMtmL(TUid)
IMPORT_C CMsvEntrySelection *ChildrenWithServiceL(TMsvId)
IMPORT_C CMsvEntrySelection *ChildrenWithTypeL(TUid)
IMPORT_C CMsvOperation *CopyL(const CMsvEntrySelection &, TMsvId, TRequestStatus &)
IMPORT_C CMsvOperation *CopyL(TMsvId, TMsvId, TRequestStatus &)
IMPORT_C voidCopyL(const CMsvEntrySelection &, TMsvId, TMsvLocalOperationProgress &)
IMPORT_C voidCopyL(TMsvId, TMsvId)
TInt Count()
IMPORT_C CMsvOperation *CreateL(const TMsvEntry &, TRequestStatus &)
IMPORT_C CMsvOperation *CreateL(const TMsvEntry &, TSecureId, TRequestStatus &)
IMPORT_C voidCreateL(TMsvEntry &)
IMPORT_C voidCreateL(TMsvEntry &, TSecureId)
IMPORT_C CMsvOperation *DeleteL(const CMsvEntrySelection &, TRequestStatus &)
IMPORT_C CMsvOperation *DeleteL(TMsvId, TRequestStatus &)
IMPORT_C voidDeleteL(TMsvId)
IMPORT_C voidDeleteL(const CMsvEntrySelection &, TMsvLocalOperationProgress &)
IMPORT_C CMsvStore *EditStoreL()
const TMsvEntry &Entry()
TMsvId EntryId()
virtual voidHandleSessionEventL(TMsvSessionEvent, TAny *, TAny *, TAny *)
virtual voidHandleStoreEvent(TMsvStoreEvent, TMsvId)
IMPORT_C TBoolHasStoreL()
IMPORT_C CMsvOperation *MoveL(const CMsvEntrySelection &, TMsvId, TRequestStatus &)
IMPORT_C CMsvOperation *MoveL(TMsvId, TMsvId, TRequestStatus &)
IMPORT_C voidMoveL(TMsvId, TMsvId)
IMPORT_C voidMoveL(const CMsvEntrySelection &, TMsvId, TMsvLocalOperationProgress &)
IMPORT_C CMsvEntry *NewL(CMsvSession &, TMsvId, const TMsvSelectionOrdering &)
TMsvId OwningService()
IMPORT_C CMsvStore *ReadStoreL()
IMPORT_C voidRemoveObserver(MMsvEntryObserver &)
CMsvSession &Session()
IMPORT_C voidSetEntryL(TMsvId)
IMPORT_C voidSetEntryNoCheckL(TMsvId)
IMPORT_C voidSetMtmListL(const CArrayFix< TUid > &)
IMPORT_C voidSetSortTypeL(const TMsvSelectionOrdering &)
const TMsvSelectionOrdering &SortType()
IMPORT_C const TMsvEntry &operator[](TInt)
Inherited Enumerations
MMsvSessionObserver:TMsvSessionEvent
MMsvStoreObserver:TMsvStoreEvent
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()

Detailed Description

Accesses and acts upon a particular Message Server entry. The current entry that a CMsvEntry object relates is referred to as its context.

It may be helpful to consider CMsvEntry functions in two broad groups. The first provides means to access the various types of storage associated with an entry. The second provides a means to discover and access other entries that the entry owns (its children).

Message client applications, Client-side MTMs, and User Interface MTMs all commonly use CMsvEntry objects. CMsvEntry objects though represent a lower level of access to an entry than that provided by a Client-side MTM or User Interface MTM. In particular, any MTM-specific functionality, such as address lists or subject fields, must be accessed by a message client application through an MTM inteface.

A CMsvEntry object is relatively expensive in RAM usage, as it caches its children, updating them as necessary when notified of changes. They should therefore be created sparingly.

Note that Server-side MTMs do not use this class, but a similar one, CMsvServerEntry.

Constructor & Destructor Documentation

~CMsvEntry ( )

IMPORT_C~CMsvEntry()

Destructor.

This cleans up the object. CMsvEntry objects must be deleted by client applications when they are no longer required. Note that deleting a CMsvEntry object does not delete the context, simply the immediate means of accessing it.

Member Function Documentation

AddObserverL ( MMsvEntryObserver & )

IMPORT_C voidAddObserverL(MMsvEntryObserver &aObserver)

Registers an observer for the object.

CMsvEntry objects can call back observer objects that implement the MMsvEntryObserver interface when certain events occur. Any number of observers can be registered.

Observers are called primarily when the context changes state or contents. For details, see MMsvEntryObserver::TMsvEntryEvent.

Parameters
aObserverThe observer to be registered for events
Leave Codes
KErrNoMemoryNot enough memory to register the observer

ChangeAttributesL ( const CMsvEntrySelection &, TUint, TUint )

IMPORT_C voidChangeAttributesL(const CMsvEntrySelection &aSelection,
TUintaSetAttributes,
TUintaClearAttributes
)

Sets or clears multiple fields in a selection of children of the context.

Fields to change are specified using a bitmask of TMsvAttribute values. Possible fields that can be changed using this function are the PC synchronisation, Visibility, Pending Deletion, Read, In-preparation, Connected, and New flags.

See also: CMsvSession::ChangeAttributesL()

Parameters
aSelectionThe entries to change
aSetAttributesA bitmask of the fields to set
aClearAttributesA bitmask of the fields to clear
Leave Codes
KErrNotFoundAn entry was not a child of the context

ChangeL ( const TMsvEntry & )

IMPORT_C voidChangeL(const TMsvEntry &aEntry)

Sets the context's index entry to the specified values. The function is performed synchronously.

This function can only be used on local entries.

Parameters
aEntryThe new index entry values for the context
Leave Codes
KErrAccessDeniedThe entry is locked by another client
KErrArgumentaEntry is invalid or the ID specified in aEntry is not the same as the context ID
KErrNoMemoryThe operation could not be created or passed to the server

ChangeL ( const TMsvEntry &, TSecureId )

IMPORT_C voidChangeL(const TMsvEntry &aEntry,
TSecureIdaOwnerId
)

Sets the context's index entry to the specified values. The function is performed synchronously. Sets the owner of the changed entry to process specified by the supplied ID.

This function can only be used on local entries.

Parameters
aEntryThe new index entry values for the context
aOwnerIdThe ID of process that owns the changed entry.
Leave Codes
KErrAccessDeniedThe entry is locked by another client
KErrArgumentaEntry is invalid or the ID specified in aEntry is not the same as the context ID
KErrNoMemoryThe operation could not be created or passed to the server

ChangeL ( const TMsvEntry &, TRequestStatus & )

IMPORT_C CMsvOperation *ChangeL(const TMsvEntry &aEntry,
TRequestStatus &aStatus
)

Sets the context's index entry to the specified values. The returned CMsvOperation object completes when the change is complete.

It is important to note that the state of the context is undefined until the observer of the entry has been informed that the entry has been changed, or the operation is completed with an error. If the function leaves, the context is unchanged.

Parameters
aEntryThe new index entry values for the context
aStatusThe request status to be completed when the operation has finished
Return Value
An operation object controlling the change command
Leave Codes
KErrAccessDeniedThe entry is locked by another client
KErrArgumentaEntry is invalid or the ID specified in aEntry is not the same as the context ID
KErrNoMemoryThe operation could not be created or passed to the server

ChangeL ( const TMsvEntry &, TSecureId, TRequestStatus & )

IMPORT_C CMsvOperation *ChangeL(const TMsvEntry &aEntry,
TSecureIdaOwnerId,
TRequestStatus &aStatus
)

Sets the context's index entry to the specified values. The returned CMsvOperation object completes when the change is complete. Sets the owner of the changed entry to process specified by the supplied ID.

It is important to note that the state of the context is undefined until the observer of the entry has been informed that the entry has been changed, or the operation is completed with an error. If the function leaves, the context is unchanged.

Parameters
aEntryThe new index entry values for the context
aOwnerIdThe ID of process that owns the changed entry.
aStatusThe request status to be completed when the operation has finished
Return Value
An operation object controlling the change command
Leave Codes
KErrAccessDeniedThe entry is locked by another client
KErrArgumentaEntry is invalid or the ID specified in aEntry is not the same as the context ID
KErrNoMemoryThe operation could not be created or passed to the server

ChangeL ( const CMsvEntrySelection &, TBool, TRequestStatus & )

IMPORT_C CMsvOperation *ChangeL(const CMsvEntrySelection &aSelection,
TBoolaMark,
TRequestStatus &aStatus
)

Update a selection of children to read or Unread asynchronously of the context. The returned CMsvOperation object .

Parameters
aSelectionThe selectio of entry values for the context
aMarkTrue : Update selection to UnRead . False: Update selection to Read .
aStatusThe request status to be completed when the operation has finished .
Return Value
An operation object controlling the change command
Leave Codes
KErrAccessDeniedThe entry is locked by another client

ChildDataL ( TMsvId )

IMPORT_C const TMsvEntry &ChildDataL(TMsvIdaId)const

Gets the index entry of context's child with the specified ID.

Parameters
aIdID of the child
Return Value
Index entry for the specified child. Valid for in-range values of aIndex.
Leave Codes
KErrNotFoundNo child exists with that ID

ChildEntryL ( TMsvId )

IMPORT_C CMsvEntry *ChildEntryL(TMsvIdaId)const

Gets a new CMsvEntry object with its context set to the child entry ID. aMsvId must specify a child of the current context.

The CMsvEntry object must be deleted by the client application when it is no longer required.

Parameters
aIdID of a child entry
Return Value
CMsvEntry object with its context set to child entry
Leave Codes
KErrNotFoundaMsvId does not specify a child of the context

ChildrenL ( )

IMPORT_C CMsvEntrySelection *ChildrenL()const

Gets a selection containing the IDs of all the context children. If the entry has no children, the selection is empty.

The calling function is responsible for the deletion of the returned CMsvEntrySelection.

Return Value
A selection containing the ID of all children of the context
Leave Codes
KErrNoMemoryNot enough memory to create the selection

ChildrenWithMtmL ( TUid )

IMPORT_C CMsvEntrySelection *ChildrenWithMtmL(TUidaMtm)const

Gets a selection containing the IDs of all the context children filtered by MTM type. i.e. the index entry's iMtm field equals aMtm.

If the entry has no such children, the selection is empty.

The calling function is responsible for the deletion of the returned CMsvEntrySelection.

Parameters
aMtmMTM type by which to filter
Return Value
A selection containing the ID of all children of the context meeting the criterion
Leave Codes
KErrNoMemoryNot enough memory to create the selection

ChildrenWithServiceL ( TMsvId )

IMPORT_C CMsvEntrySelection *ChildrenWithServiceL(TMsvIdaServiceId)const

Gets a selection containing the IDs of all the context children filtered by message service. i.e. the index entry's iServiceId field equals aId.

If the entry has no such children, the selection is empty.

The calling function is responsible for the deletion of the returned CMsvEntrySelection.
Parameters
aServiceIdService by which to filter
Return Value
List of IDs of all children of the context meeting the criterion
Leave Codes
KErrNoMemoryNot enough memory to create the selection

ChildrenWithTypeL ( TUid )

IMPORT_C CMsvEntrySelection *ChildrenWithTypeL(TUidaType)const

Gets a selection containing the IDs of all the context children filtered by entry type. i.e. is the entry a folder, a message, etc.

If the entry has no such children, the selection is empty.

The calling function is responsible for the deletion of the returned CMsvEntrySelection.

Parameters
aTypeEntry type by which to filter.
Return Value
A selection containing the ID of all children of the context meeting the criterion
Leave Codes
KErrNoMemoryNot enough memory to create the selection

CopyL ( const CMsvEntrySelection &, TMsvId, TRequestStatus & )

IMPORT_C CMsvOperation *CopyL(const CMsvEntrySelection &aSelection,
TMsvIdaTargetId,
TRequestStatus &aStatus
)

Creates, asynchronously. copies of children of the context as new entries owned by the specified target ID.

All descendants will be copied as well. Any files and stores associated with the entries are also copied.

The returned CMsvOperation object completes when copying is complete.

Parameters
aSelectionList of IDs of the entries to be copied
aTargetIdThe ID of the entry to own the copies
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the copy command.
Leave Codes
KErrNoMemoryThe operation could not be created or passed to the server
KErrNotFoundAn entry was not a child of the context

CopyL ( TMsvId, TMsvId, TRequestStatus & )

IMPORT_C CMsvOperation *CopyL(TMsvIdaMsvId,
TMsvIdaTargetId,
TRequestStatus &aStatus
)

Creates, asynchronously, a copy of a child of the context as a new entry owned by the specified target ID.

All descendants will be copied as well. Any files and stores associated with the entry are also copied.

The returned CMsvOperation object completes when copying is complete.

Parameters
aMsvIdThe ID of the entry to be copied
aTargetIdThe ID of the entry to own the copy
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the copy command.
Leave Codes
KErrNoMemoryThe operation could not be created or passed to the server
KErrNotFoundAn entry was not a child of the context

CopyL ( const CMsvEntrySelection &, TMsvId, TMsvLocalOperationProgress & )

IMPORT_C voidCopyL(const CMsvEntrySelection &aSelection,
TMsvIdaTargetId,
TMsvLocalOperationProgress &aProgress
)

Creates, synchronously. copies of children of the context as new entries owned by the specified target ID.

All descendants will be copied as well. Any files and stores associated with the entries are also copied.

Parameters
aSelectionList of IDs of the entries to be copied
aTargetIdThe ID of the entry to own the copies
aProgressOn return, records the outcome of the copy
Leave Codes
KErrNoMemory
KErrNotFoundAn entry was not a child of the context

CopyL ( TMsvId, TMsvId )

IMPORT_C voidCopyL(TMsvIdaMsvId,
TMsvIdaTargetId
)

Creates, synchronously, a copy of a child of the context as a new entry owned by the specified target ID.

Parameters
aMsvIdThe ID of the entry to be copied
aTargetIdThe ID of the entry to own the copy

Count ( )

TInt Count()const [inline]

Gets the number of children of the context.

Return Value
Count of the child entries for the current context

CreateL ( const TMsvEntry &, TRequestStatus & )

IMPORT_C CMsvOperation *CreateL(const TMsvEntry &aEntry,
TRequestStatus &aStatus
)

Creates a new child entry owned by the context asynchronously.

Note that all session observers are notified when a new entry is created with an EMsvEntriesCreated event (see TMsvSessionEvent). CMsvEntry objects are such session observers themselves. When the object receives such a session notification, it calls all registered entry observers with a TMsvEntryEvent event EMsvNewChildren, passing in the ID of the new child.

If aEntry is not a service entry, then the context must not be set to the root entry and iServiceId field must be defined . If aEntry is a service entry, then the context must be set to the root entry.

The returned CMsvOperation object completes when creation is complete.

Parameters
aEntryIndex entry value for the new entry
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the create command.
Leave Codes
KErrArgumentaEntry is invalid

CreateL ( const TMsvEntry &, TSecureId, TRequestStatus & )

IMPORT_C CMsvOperation *CreateL(const TMsvEntry &aEntry,
TSecureIdaOwnerId,
TRequestStatus &aStatus
)

Creates a new child entry owned by the context asynchronously. Sets the owner of the created entry to process specified by the supplied ID.

Note that all session observers are notified when a new entry is created with an EMsvEntriesCreated event (see TMsvSessionEvent). CMsvEntry objects are such session observers themselves. When the object receives such a session notification, it calls all registered entry observers with a TMsvEntryEvent event EMsvNewChildren, passing in the ID of the new child.

If aEntry is not a service entry, then the context must not be set to the root entry and iServiceId field must be defined . If aEntry is a service entry, then the context must be set to the root entry.

The returned CMsvOperation object completes when creation is complete.

Parameters
aEntryIndex entry value for the new entry
aOwnerIdThe ID of process that owns the created entry.
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the create command.
Leave Codes
KErrArgumentaEntry is invalid

CreateL ( TMsvEntry & )

IMPORT_C voidCreateL(TMsvEntry &aEntry)

Creates a new child entry owned by the context synchronously.

Note that all session observers are notified when a new entry is created with an EMsvEntriesCreated event (see TMsvSessionEvent). CMsvEntry objects are such session observers themselves. When the object receives such a session notification, it calls all registered entry observers with a TMsvEntryEvent event EMsvNewChildren, passing in the ID of the new child.

If aEntry is not a service entry, then the context must not be set to the root entry and iServiceId field must be defined . If aEntry is a service entry, then the context must be set to the root entry.

This function can only be used on local entries.

Parameters
aEntryIndex entry value for the new entry
Leave Codes
KErrArgumentaEntry is invalid

CreateL ( TMsvEntry &, TSecureId )

IMPORT_C voidCreateL(TMsvEntry &aEntry,
TSecureIdaOwnerId
)

Creates a new child entry owned by the context synchronously. Sets the owner of the created entry to process specified by the supplied ID.

Note that all session observers are notified when a new entry is created with an EMsvEntriesCreated event (see TMsvSessionEvent). CMsvEntry objects are such session observers themselves. When the object receives such a session notification, it calls all registered entry observers with a TMsvEntryEvent event EMsvNewChildren, passing in the ID of the new child.

If aEntry is not a service entry, then the context must not be set to the root entry and iServiceId field must be defined . If aEntry is a service entry, then the context must be set to the root entry.

This function can only be used on local entries.

Parameters
aEntryIndex entry value for the new entry
aOwnerIdThe ID of process that owns the created entry.
Leave Codes
KErrArgumentaEntry is invalid

DeleteL ( const CMsvEntrySelection &, TRequestStatus & )

IMPORT_C CMsvOperation *DeleteL(const CMsvEntrySelection &aSelection,
TRequestStatus &aStatus
)

Deletes child entries of the context asynchronously.

The delete works recursively through all the descendants. If a child or any descendant is locked by another client or any store or file is open, then that child will not be deleted. Any files and stores associated with the entries are deleted.

The returned CMsvOperation object completes when deletion is complete.

Parameters
aSelectionList of ID of the entries to be deleted
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the deletion command
Leave Codes
KErrNotFoundA specified entry was not a child of the context
KErrNotSupportedIf deleting entries from non-current drive

DeleteL ( TMsvId, TRequestStatus & )

IMPORT_C CMsvOperation *DeleteL(TMsvIdaMsvId,
TRequestStatus &aStatus
)

Deletes a child entry of the context asynchronously.

The delete works recursively through all the descendants. If a child or any descendant is locked by another client or any store or file is open, then that child will not be deleted. Any files and stores associated with the entry are deleted.

The returned CMsvOperation object completes when deletion is complete.

Parameters
aMsvIdID of entry to be deleted
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the deletion command
Leave Codes
KErrNotFoundThe specified entry was not a child of the context
KErrNotSupportedIf deleting entries from non-current drive

DeleteL ( TMsvId )

IMPORT_C voidDeleteL(TMsvIdaId)

Deletes a child entry of the context synchronously.

The delete works recursively through all the descendants. If a child or any descendant is locked by another client or any store or file is open, then that child will not be deleted. Any files and stores associated with the entry are deleted.

This function can only be used on local entries.

Parameters
aIdID of entry to be deleted
Leave Codes
KErrNotFoundThe specified entry was not a child of the context
KErrNotSupportedIf deleting entries from non-current drive

DeleteL ( const CMsvEntrySelection &, TMsvLocalOperationProgress & )

IMPORT_C voidDeleteL(const CMsvEntrySelection &aSelection,
TMsvLocalOperationProgress &aProgress
)

Deletes child entries of the context synchronously.

The delete works recursively through all the descendants. If a child or any descendant is locked by another client or any store or file is open, then that child will not be deleted. Any files and stores associated with the entries are deleted.

Parameters
aSelectionList of ID of the entries to be deleted
aProgressProgress information for the delete operation
Leave Codes
KErrNotFoundA specified entry was not a child of the context
KErrNotSupportedIf deleting entries from non-current drive

EditStoreL ( )

IMPORT_C CMsvStore *EditStoreL()

Gets the message store for the current context with read-write access.

Only one client can edit a message store at one time. If another client is already writing to the store, KErrAccessDenied is returned. Other clients can be reading the store.

If the message store does not exist when EditStore() is called, a new message store is created.

The returned CMsvStore must be deleted when it is no longer required.

Return Value
Context's message store open for read-write access
Leave Codes
KErrAccessDeniedStore is locked by another process or the entry is read only
KErrNoMemoryNot enough memory to open the store

Entry ( )

const TMsvEntry &Entry()const [inline]

Gets the index entry for the context.

Return Value
Current context's index entry

EntryId ( )

TMsvId EntryId()const [inline]

Gets the ID of the context.

Return Value
Current context's entry ID

HandleSessionEventL ( TMsvSessionEvent, TAny *, TAny *, TAny * )

voidHandleSessionEventL(TMsvSessionEventaEvent,
TAny *aArg1,
TAny *aArg2,
TAny *aArg3
)[virtual]

Reimplemented from MMsvSessionObserver::HandleSessionEventL(TMsvSessionEvent,TAny *,TAny *,TAny *)

Indicates an event has occurred.

The type of event is indicated by the value of aEvent. The interpretation of the TAny arguments depends on this type.

For most event types, the action that is taken, for example, updating the display, is client-specific. All clients though should respond to EMsvCloseSession and EMsvServerTerminated events.

Parameters
aEventIndicates the event type.
aArg1Event type-specific argument value
aArg2Event type-specific argument value
aArg3Event type-specific argument value

HandleStoreEvent ( TMsvStoreEvent, TMsvId )

voidHandleStoreEvent(TMsvStoreEventaEvent,
TMsvIdaId
)[virtual]

Reimplemented from MMsvStoreObserver::HandleStoreEvent(TMsvStoreEvent,TMsvId)

Receives a message store event.

Parameters
aEventEvent type
aIdID of the message to which the event relates

HasStoreL ( )

IMPORT_C TBoolHasStoreL()const

Checks if the context has an associated message store.

Return Value
ETrue: entry has a message store EFalse: entry does not have a message store

MoveL ( const CMsvEntrySelection &, TMsvId, TRequestStatus & )

IMPORT_C CMsvOperation *MoveL(const CMsvEntrySelection &aSelection,
TMsvIdaTargetId,
TRequestStatus &aStatus
)

Moves, asynchronously, children of the context to become entries owned by the target entry.

All descendants will be moved as well. Any files and stores associated with the entries are also moved.

The returned CMsvOperation object completes when moving is complete.

Parameters
aSelectionList of IDs of the entries to be moved
aTargetIdThe ID of the entry to own the moved entires
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the move command.
Leave Codes
KErrNoMemoryThe operation could not be created or passed to the server
KErrNotFoundAn entry was not a child of the context

MoveL ( TMsvId, TMsvId, TRequestStatus & )

IMPORT_C CMsvOperation *MoveL(TMsvIdaMsvId,
TMsvIdaTargetId,
TRequestStatus &aStatus
)

Moves, asynchronously, a child of the context to become an entry owned by the target entry.

All descendants will be moved as well. Any files and stores associated with the entry are also moved.

The returned CMsvOperation object completes when moving is complete.

Parameters
aMsvIdThe ID of the entry to be moved
aTargetIdThe ID of the entry to own the moved entries
aStatusThe request status to be completed when the operation has finished
Return Value
The operation object controlling the move command.
Leave Codes
KErrNoMemoryThe operation could not be created or passed to the server
KErrNotFoundAn entry was not a child of the context

MoveL ( TMsvId, TMsvId )

IMPORT_C voidMoveL(TMsvIdaMsvId,
TMsvIdaTargetId
)

Moves, synchronously, a child of the context to become an entry owned by the target entry.

All descendants will be moved as well. Any files and stores associated with the entry are also moved.

Parameters
aMsvIdThe ID of the entry to be moved
aTargetIdThe ID of the entry to own the moved entries
Leave Codes
KErrNoMemory
KErrNotFoundAn entry was not a child of the context

MoveL ( const CMsvEntrySelection &, TMsvId, TMsvLocalOperationProgress & )

IMPORT_C voidMoveL(const CMsvEntrySelection &aSelection,
TMsvIdaTargetId,
TMsvLocalOperationProgress &aProgress
)

Moves, synchronously, children of the context to become entries owned by the target entry.

All descendants will be moved as well. Any files and stores associated with the entries are also moved.

Parameters
aSelectionList of IDs of the entries to be moved
aTargetIdThe ID of the entry to own the moved entires
aProgressOn return, records the outcome of the move
Leave Codes
KErrNoMemory
KErrNotFoundAn entry was not a child of the context

NewL ( CMsvSession &, TMsvId, const TMsvSelectionOrdering & )

IMPORT_C CMsvEntry *NewL(CMsvSession &aMsvSession,
TMsvIdaMsvId,
const TMsvSelectionOrdering &aOrdering
)[static]

Creates a new CMsvEntry for the specified entry ID.

Note that this function does not create a new entry, but simply a new object to access an existing entry. To create a new entry, use CreateL().

Parameters
aMsvSessionThe clients Message Server session
aMsvIdID of the entry to access
Return Value
If the function succeeds, this is a pointer to a newly allocated and initialised object.
Leave Codes
KErrNotFoundThe requested entry does not exist
KErrNoMemoryA memory allocation failed

OwningService ( )

TMsvId OwningService()const [inline]

Gets the ID of the service entry that owns the context.

Local entries are considered as being members of the local service:

Return Value
ID of the service entry that the context is under.

ReadStoreL ( )

IMPORT_C CMsvStore *ReadStoreL()

Obtains the message store for the current context with read-only access.

Multiple clients can read from a store simultaneously. If another client is already writing to the store, the function leaves with KErrAccessDenied.

The returned CMsvStore must be deleted when it is no longer required.

Return Value
Context's message store open for read-only access
Leave Codes
KErrNoMemoryNot enough memory to open store
KErrAccessDeniedAnother client is currently writing to the store
KErrNotFoundThere is no store associated with this entry

RemoveObserver ( MMsvEntryObserver & )

IMPORT_C voidRemoveObserver(MMsvEntryObserver &aObserver)

Unregisters an observer previously registered with AddObserverL().

Parameters
aObserverA reference to an observer to be unregistered for events

Session ( )

CMsvSession &Session()[inline]

Gets the Message Server session used by this object. This is the same session passed by the client in NewL().

Return Value
The session used by the object

SetEntryL ( TMsvId )

IMPORT_C voidSetEntryL(TMsvIdaId)

Sets the context to the specified entry.

If the function leaves, the context is unchanged.

Parameters
aIdID of the message entry which is to become the new context
Leave Codes
KErrNotFoundaId could not be found in the index

SetEntryNoCheckL ( TMsvId )

IMPORT_C voidSetEntryNoCheckL(TMsvIdaId)

Sets the context to the specified entry.

If the function leaves, the context is unchanged.

Parameters
aIdID of the message entry which is to become the new context
Leave Codes
KErrNotFoundaMsvId could not be found in the index

SetMtmListL ( const CArrayFix< TUid > & )

IMPORT_C voidSetMtmListL(const CArrayFix< TUid > &aMtmList)

Sets the MTM order to the specified sort order. When children of an entry are sorted, entries belonging to the same MTM type can be grouped together.

MTM grouping can be switched on or off through setting the appropriate TMsvSelectionOrdering value by SetSortTypeL().

If the function leaves, the sort order is unchanged.

Parameters
aMtmListThe order of MTMs to use for sorting
Leave Codes
KErrNoMemoryInsufficient memory to resort the entries

SetSortTypeL ( const TMsvSelectionOrdering & )

IMPORT_C voidSetSortTypeL(const TMsvSelectionOrdering &aOrdering)

Sets the sort order that is used when listing children, for example with ChildrenL().

If the function leaves, the sort order is unchanged.

Parameters
aOrderingSort order to use
Leave Codes
KErrNoMemoryInsufficient memory to resort the entries

SortType ( )

const TMsvSelectionOrdering &SortType()const [inline]

Gets the current sort order of children of the entry. The sort order is initially set through NewL().

Return Value
Current sort order

operator[] ( TInt )

IMPORT_C const TMsvEntry &operator[](TIntaIndex)const

Gets the index entry of the child at the position specified by the array index. The child entries of the context can be considered as a zero-based array, with entries sorted according to the current sort order.

Note:

The function panics with E32USER-CBase 21 if aIndex was out of range.

Parameters
aIndexArray index
Return Value
Index entry for the specified child. Valid for in-range values of aIndex.