Server MTMs provide specific message type storage and transport. It interacts with the Messaging Server to store and manage entries and provide a transport mechanism, using components such as the Telephony Server or Sockets Server, to send and receive messages. When a message is received, the Server MTM creates a new index entry and stores the message data in the entry’s store and binary files. Conversely, when a message is sent, the Server MTM retrieves the message data from the index, and converts the message into a format appropriate for the message transport.
Server MTMs must provide the following capabilities:
Copy and move files to or from the local folders
Return the progress of the current operation
Interpret MTM-specific commands
Note: Some Server MTMs may also have the ability to create, delete, and change messages and folders on remote servers.
The base class for Server MTM is CBaseServerMtm.
Note: Developers of Messaging client applications must not be concerned with this class and its sub-classes, as these are accessed only by the Message Server.
Server MTM functions are called by the Message Server as a result of a client request that requires some remote operation with the MTM's protocol. The following are some significant functions that can be implemented in a class derived from the CBaseServerMtm base class:
Copy and move from remote functions
The CBaseServerMtm::CopyToLocalL() and CBaseServerMtm::MoveToLocalL() functions are called by the Message Server to get a selection of entries from a remote location. For many protocols, this must be interpreted as message retrieval. For protocols where messages exist on a remote server, this function is typically used to download specific messages, after an initial connection has downloaded message headers.
Copy and move to remote functions
The CBaseServerMtm::CopyFromLocalL() and CBaseServerMtm::MoveFromLocalL() functions are called by the Message Server to copy or move a selection of entries to a remote location. For many protocols, this must be interpreted as message sending.
Copy and move within remote functions
The CBaseServerMtm::CopyWithinServiceL() and CBaseServerMtm::MoveWithinServiceL() functions are called by the Message Server to copy a selection of entries within a remote service.
The CBaseServerMtm class provides the virtual functions for overriding in derived classes.