CMsvStore Class Reference
class CMsvStore : public CBase
|
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.
Constructor & Destructor Documentation
CMsvStore(MMsvStoreObserver &, RFs &, TMsvId, MMsvStoreManager &)
~CMsvStore()
Destructor.
If the message store is currently locked, the destructor releases it before deleting the object.
Member Functions Documentation
AttachmentManagerExtensionsL()
AttachmentManagerL()
Returns an interface for the Attachment Manager.
This methods returns an interface that can be used to provided attachment management functionality for each message entry.
MMsvAttachmentManager
Commit()
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.
CommitL()
IMPORT_C void
|
CommitL
|
(
|
)
|
|
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
-
KErrAccessDenied Store open for read only
-
leave
-
Standard streaming error codes Unable to commit changes
ConstructL(TBool)
void
|
ConstructL
|
(
|
TBool
|
aReadOnly
|
)
|
[private]
|
Convert8BitToRichTextL(RFile &, CRichText &, TUint, TUint)
void
|
Convert8BitToRichTextL
|
(
|
RFile
&
|
aBodyTextFile,
|
|
CRichText
&
|
aRichText,
|
|
TUint
|
aCharSet,
|
|
TUint
|
aDefaultCharSet
|
|
)
|
[private]
|
Converts 8 bit data to Unicode and inserts to the
CRichText
object.
Parameters
RFile
& aBodyTextFile
|
|
CRichText
& aRichText
|
The CRichText object that will be filled on return.
|
TUint
aCharSet
|
The charset of the body part.
|
TUint
aDefaultCharSet
|
The default charset of the system.
|
CreateShareProtectedAttachmentL(const TDesC &, RFile &, CMsvAttachment *)
IMPORT_C void
|
CreateShareProtectedAttachmentL
|
(
|
const
TDesC
&
|
aFileName,
|
|
RFile
&
|
aAttachmentFile,
|
|
CMsvAttachment
*
|
aAttachmentInfo
|
|
)
|
|
DeleteBodyTextL()
IMPORT_C void
|
DeleteBodyTextL
|
(
|
)
|
|
Deletes the stream that contains the body text. Write access is needed for this function.
-
leave
-
KErrAccessDenied Store is not open for writing
-
leave
-
Other Standard streaming leave codes
DeleteL()
IMPORT_C void
|
DeleteL
|
(
|
)
|
|
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
-
KErrAccessDenied The store is read only
-
leave
-
Other Standard file store error codes
GetRichTextFrom16BitL(RFile &, CRichText &)
void
|
GetRichTextFrom16BitL
|
(
|
RFile
&
|
aBodyTextFile,
|
|
CRichText
&
|
aRichText
|
|
)
|
[private]
|
Gets
CRichText
from plain body text file if data stored as 16 bit.
Parameters
RFile
& aBodyTextFile
|
|
CRichText
& aRichText
|
The CRichText object that will be filled on return.
|
GetRichTextFrom8BitL(RFile &, CRichText &, TUint, TUint)
void
|
GetRichTextFrom8BitL
|
(
|
RFile
&
|
aBodyTextFile,
|
|
CRichText
&
|
aRichText,
|
|
TUint
|
aCharSet,
|
|
TUint
|
aDefaultCharSet
|
|
)
|
[private]
|
Gets
CRichText
from plain body text file if data stored as 8 bit.
Parameters
RFile
& aBodyTextFile
|
|
CRichText
& aRichText
|
The CRichText object that will be filled on return.
|
TUint
aCharSet
|
The charset of the body part.
|
TUint
aDefaultCharSet
|
The default charset of the system.
|
HasBodyTextL()
IMPORT_C
TBool
|
HasBodyTextL
|
(
|
)
|
const
|
Checks if the store has a body text stream; IsPresentL(KMsvEntryRichTextBody) will always return EFalse when the store_8bit_flag in imcm.rss is enabled.
InitialisePlainBodyTextForReadL(TInt)
Intialise and return the
CMsvPlainBodyText
object that can be used for reading plain body text.
-
leave
-
KErrAccessDenied If Store is opened in Write mode.
Parameters
TInt
aChunkLength
|
The length of the chunk that will be processed while reading.
|
InitialisePlainBodyTextForWriteL(TBool, TUint, TUint)
Intialise and return the
CMsvPlainBodyText
object that can be used for reading/writing plain body text.
-
leave
-
KErrAccessDenied If Store is opened in Read mode.
Parameters
TBool
aIs8Bit
|
TBool indicating whether to store bdy text as 8/16 bit.
|
TUint
aCharsetId
|
The charset of the body part.
|
TUint
aDefaultCharsetId
|
The default charset of the system.
|
IsNullL()
IMPORT_C
TBool
|
IsNullL
|
(
|
)
|
const
|
Tests whether the message store contains any streams.
IsPresentL(TUid)
IMPORT_C
TBool
|
IsPresentL
|
(
|
TUid
|
aUid
|
)
|
const
|
Tests whether the message store contains a stream identifier. Do not use to check if there is a body text part stored with the email; use
CMsvStore::HasBodyTextL()
instead.
Parameters
TUid
aUid
|
Identifier of stream
|
OpenForReadL(MMsvStoreObserver &, RFs &, MMsvStoreManager &, TMsvId)
OpenForWriteL(MMsvStoreObserver &, RFs &, MMsvStoreManager &, TMsvId)
Remove(TUid)
IMPORT_C void
|
Remove
|
(
|
TUid
|
aUid
|
)
|
|
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(TUid)
IMPORT_C void
|
RemoveL
|
(
|
TUid
|
aUid
|
)
|
|
Deletes the identified stream from the store. It leaves if it cannot complete successfully.
Write access is needed for this function.
-
leave
-
KErrAccessDenied The store is read only
-
leave
-
Other Standard streaming error codes
Parameters
TUid
aUid
|
The UID of the stream to delete
|
Restore8BitBodyTextL(RFileReadStream &)
Restores 8 bit body text from the Message Store
Parameters
RFileReadStream
& aInputStream
|
on completion the RFileReadStream contains the message body text stream.
|
RestoreBodyTextL(CRichText &)
IMPORT_C void
|
RestoreBodyTextL
|
(
|
CRichText
&
|
aRichTextBody
|
)
|
|
Restores body text into the given rich text object - doesnt matter if store is locked or not will leave if the file store doesn't exist, the body text does not exist, and also propagate store leaves Reads the body text stream from the message store into the given rich text object.
-
leave
-
KErrNotFound There is no body text stream in the store
-
leave
-
Other Standard streaming leave codes
Parameters
CRichText
& aRichTextBody
|
On return, the message store's body text is inserted into this object. Any previously existing contents is lost.
|
RestoreBodyTextL(CRichText &, TUint)
IMPORT_C void
|
RestoreBodyTextL
|
(
|
CRichText
&
|
aRichTextBody,
|
|
TUint
|
aCharsetOverride
|
|
)
|
|
Restores body text into the given rich text object - doesnt matter if store is locked or not. Reads the body text stream from the message store into the given rich text object.
-
leave
-
KErrNotFound There is no body text stream in the store
-
leave
-
Other Standard streaming leave codes
Parameters
CRichText
& aRichTextBody
|
On return, the message store's body text is inserted into this object. Any previously existing contents is lost.
|
TUint
aCharsetOverride
|
The charset with which to override the existing charset when data is stored a 8 bit format.
|
RestorePlainBodyTextL(CRichText &, TUint)
void
|
RestorePlainBodyTextL
|
(
|
CRichText
&
|
aRichText,
|
|
TUint
|
aCharsetOverride
|
|
)
|
[private]
|
Restores a
CRichText
object from the plain body text file.
Parameters
CRichText
& aRichText
|
On completion this contains the plain body text.
|
TUint
aCharsetOverride
|
The new charset with which to override the existing charset when data is stored a 8 bit plain text format.
|
Revert()
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()
IMPORT_C void
|
RevertL
|
(
|
)
|
|
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
-
KErrAccessDenied The store is read only
-
leave
-
Other Standard streaming error codes
SizeL()
Gets the size of the message store.
StoreBodyTextL(const CRichText &)
IMPORT_C void
|
StoreBodyTextL
|
(
|
const
CRichText
&
|
aRichTextBody
|
)
|
|
Stores the body text stream of the message store. Any existing data is overwritten. Write access is needed for this function. A commit must be done following this function for the new data to be retained.
-
leave
-
KErrAccessDenied Store is not open for writing
-
leave
-
Other Standard streaming leave codes
Parameters
const
CRichText
& aRichTextBody
|
The body data to be externalised
|
Member Data Documentation
CMsvAttachmentManager * iAttachmentManager
TBool
iConstructed
TBool
|
iConstructed
|
[private]
|
enum CMsvStore::@61 iLockStatus
enum CMsvStore::@61
|
iLockStatus
|
[private]
|
MMsvStoreObserver & iObserver
MMsvStoreManager & iStoreManager
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.