Symbian Developer Library

SYMBIAN OS V6.1 EDITION FOR C++

[Index] [Glossary] [Previous] [Next]



Location: msvstore.h
Link against: msgs.lib

Class CMsvStore

CMsvStore

Support

Supported from 5.0

Description

Provides an interface over the message store that is associated with a message entry. It is similar to the dictionary store in supporting the concept of streams referenced by UID.

This class is intended for use by MTM implementations. Message client applications access the store through the higher-level functions provided by Client-side and User Interface MTMs.

A CMsvStore object is created by a CMsvEntry object and passed to a client process. The client process then becomes responsible for deleting the CMsvStore object. The store can be opened in two modes, read or edit, and only one CMsvStore object can have edit access to a store.

CMsvStore provides functions for general manipulation of the store, and for accessing the standard body text stream. RMsvReadStream and RMsvWriteStream must be used to access other streams.

In pre-Unicode versions this class had the import library ment.lib.

Derivation

CBaseBase class for all classes to be instantiated on the heap
CMsvStoreProvides an interface over the message store that is associated with a message entry

Defined in CMsvStore:
Commit(), CommitL(), DeleteBodyTextL(), DeleteL(), HasBodyTextL(), IsNullL(), IsPresentL(), Remove(), RemoveL(), RestoreBodyTextL(), Revert(), RevertL(), SizeL(), StoreBodyTextL(), ~CMsvStore()

Inherited from CBase:
operator new()


Destructor


~CMsvStore()

~CMsvStore();

Description

If the message store is currently locked, the destructor releases it before deleting the object.

[Top]


Body text


DeleteBodyTextL()

void DeleteBodyTextL();

Description

Deletes the stream that contains the body text. Write access is needed for this function.

Leave codes

KErrAccessDenied

Store is not open for writing

Other

Standard streaming leave codes


HasBodyTextL()

TBool HasBodyTextL() const;

Description

Checks if the store has a body text stream.

Return value

TBool

ETrue if the store has a body text stream, else EFalse


RestoreBodyTextL()

void RestoreBodyTextL(CRichText& aRichTextBody) const;

Description

Reads the body text stream from the message store into the given rich text object.

Parameters

CRichText& aRichTextBody

On return, the message store’s body text is inserted into this object. Any previously existing contents is lost.

Leave codes

KErrNotFound

There is no body text stream in the store

Other

Standard streaming leave codes


StoreBodyTextL()

void StoreBodyTextL(const CRichText& aRichTextBody);

Description

Stores and commits the body text stream of the message store. Any existing data is overwritten. Write access is needed for this function.

Parameters

const CRichText& aRichTextBody

The body data to be externalised

Leave codes

KErrAccessDenied

Store is not open for writing

Other

Standard streaming leave codes

[Top]


Commit to message store


Commit()

TInt Commit();

Description

Commits changes to the message store, returning any error code.

Committing changes makes these changes permanent, and means that the store cannot be rolled back to a state before the changes were begun.

You should use this function before deleting a CMsvStore, if you have made changes to it through RMsvWriteStream . Note that StoreBodyTextL() performs a commit itself, so an additional commit is not required after its use.

The functions is identical to the following one, except that it returns an error code if an error occurs.

Write access is needed.

Return value

KErrNone

Changes committed successfully

KErrAccessDenied

Store open for read only

Standard streaming error codes

Unable to commit changes


CommitL()

void CommitL();

Description

Commits changes to the message store, leaving if an error occurs.

Committing changes makes these changes permanent, and means that the store cannot be rolled back to a state before the changes were begun.

You should use this function before deleting a CMsvStore, if you have made changes to it through RMsvWriteStream . Note that StoreBodyTextL() performs a commit itself, so an additional commit is not required after its use.

The functions is identical to the previous one, except that it leaves with the error code if an error occurs.

Write access is needed.

Leave codes

KErrAccessDenied

Store open for read only

Standard streaming error codes

Unable to commit changes

[Top]


General message store functions


DeleteL()

void DeleteL();

Description

Deletes the message store. After a delete, the behaviour of the object is undefined: it can only be deleted.

Write access is needed for this function.

Leave codes

KErrAccessDenied

The store is read only

Other

Standard file store error codes


IsNullL()

TBool IsNullL() const;

Description

Tests whether the message store contains any streams.

Return value

TBool

ETrue if the store has no streams, else EFalse


IsPresentL()

TBool IsPresentL(TUid aUid) const;

Description

Tests whether the message store contains a stream identifier.

Parameters

TUid aUid

Identifier of stream

Return value

TBool

ETrue if the store has a stream aUid, else EFalse


Remove()

void Remove(TUid aUid);

Description

Deletes the identified stream from the store. The function returns, whether or not it completes successfully.

Write access is needed for this function.

Parameters

TUid aUid

The UID of the stream to delete


RemoveL()

void RemoveL(TUid aUid);

Description

Deletes the identified stream from the store. It leaves if it cannot complete successfully.

Write access is needed for this function.

Parameters

TUid aUid

The UID of the stream to delete

Leave codes

KErrAccessDenied

The store is read only

Other

Standard streaming error codes


Revert()

void Revert();

Description

Reverts the store to the previous commit level. This removes all changes that have been made to the store since the last commit.

The function cannot leave: it returns, whether or not it completes successfully.

Write access is needed for this function.


RevertL()

void RevertL();

Description

Reverts the store to the previous commit level. This removes all changes that have been made to the store since the last commit.

The function leaves if it cannot complete successfully.

Write access is needed for this function.

Leave codes

KErrAccessDenied

The store is read only

Other

Standard streaming error codes


SizeL()

TInt SizeL();

Description

Gets the size of the message store.

Return value

TInt

Size of the message store in bytes

Leave codes

 

Standard file store error codes