Types of Storage for a Message Entry

Message Server provides the following types of storage in the Message Store for each entry:

  • Index: The index contains state and generic message header information for an entry. Each index entry (and so each item) is uniquely identified by an ID field and uses TMsvEntry to provide sufficient information for UI applications to display list views.

  • Dictionary file store: Each entry can have an associated direct file stream store that holds message body text and protocol-specific data. To provide storage of streams of data associated with UIDs CMsvStore is used.

  • Binary files: This provides storage for attachments that are associated with the entry.

    Any entry can have binary files associated with it. These are stored in a directory, created by the Message Server that is unique to the entry. Before Symbian OS v9.0, clients used to read and write files directly into that directory. From v9.0 and onwards, clients use the API classes MMsvAttachmentManager and CMsvAttachment to manage attachments.

  • Removable storage device: An external storage device, such as memory card, that is used to store messages.

Note: The index entry is always present in the message store but dictionary file stores and attachment directories are only used when required.

Storage format

The following table summarises the format of a message entry.

Type

Storage

Generic header and message state information

Index entry

MTM-specific header information

MTM-specific stream in an associated Message Store

Message body

Default rich text object stream in the Message Store. Note that this can be empty if the message body contains no text.

Attachments

Attachment files are stored in the Message Store, or can also be specified as links to files stored elsewhere on disk.

Storage abstractions

The abstractions through which applications access the various types of storage are key to Messaging Middleware. They are:

  • CMsvEntry is the highest level abstraction. It encapsulates actions to access, manipulate, create, delete, and move entries.

  • CMsvServerEntry is similar to CMsvEntry, but used only by server-side MTMs.

  • TMsvEntry encapsulates an index entry.

  • CMsvStore encapsulates an entry’s Message Store.