Structure of a Message Store

This section provides information about the Message Store entries.

Message Framework provides a tree view of entries in a Message Store. The tree is divided into three levels: root entry, service entry, and folder and message entry, which are provided TMsvEntry. The child entries of the root entry must be service entries. A message client application can begin from the root entry, and by successively finding the children of an entry, can traverse the whole entry tree. The parent of each entry is recorded in the index entry's details.

The following figure illustrates how services are placed below a root entry.

Figure 1. Message Store
  • 1: Root entry —This entry is just present to tie the tree structure together.

  • 2: Service entry —This level used for settings information, usually to set up communication protocols, for example, ISP settings. There is one local service under which local folders and messages are stored, and zero or more remote services. Remote services represent message accounts.

    There are two types of service entry:

    • Remote Services: These represent message accounts stored on remote stores such as email servers and the SIM store of SMS messages.

    • Local Services: There is a single local service under which local folders and messages are stored.

      The Message Server handles changes to local entries. Internally it may delegate changes to remote entries, such as copying and moving messages to and from a remote service, to the server MTM that owns that service.

    Figure 2. Remote and local entries
  • 3: Folder entries and message entries — Folders entries are used to group a number of message entries. For more information on folders, see Message folders. Messages store the content of a message. Message entries can have child entries which represent the structure of a message.

    Folders and messages under the local service represent messages stored on the device. Folders and messages under remote services represent a local copy of messages that are present on a remote server. For example, under a POP3 email service you can have copies of all the messages present on the POP3 email server, and under an SMS service you can have SMS messages that are stored on a SIM.

    Each message entry also has an associated service ID. The service ID is associated with a service entry whose settings is used in all Messaging operations on that message entry.

Validity of the Message Store

The structure of the Message store is considered to be valid only if an index entry conforms to the following rules:

  • A non-service entry cannot be owned by root and must have its service ID field set.

  • A service entry must be owned by root and have the service ID of itself.

Important: The Message Server controls access to the entries in the store. It enforces the three levels; therefore, attempts to create message or folder entries directly under the root entry fails.