--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-59217FA7-3078-53CA-88B3-78D6FB788271.dita Thu Jan 21 18:18:20 2010 +0000
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License
+"Eclipse Public License v1.0" which accompanies this distribution,
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+ Nokia Corporation - initial contribution.
+Contributors:
+-->
+<!DOCTYPE concept
+ PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-59217FA7-3078-53CA-88B3-78D6FB788271" xml:lang="en"><title>Message
+Type Module Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Message Type Modules (MTMs) are polymorphic DLL plug-ins that implement
+the interfaces defined by the Message Server framework to handle various message
+types—such as, IMAP4, POP3, SMTP, SMS and MMS. </p>
+<section><title>Purpose</title> <p>Client applications can access different
+types of message and every message type must handled in a specific way. To
+support a new message type within the client applications, MTMs to implement
+that type must be provided. The following points are specific to each message
+type, and so must be implemented in an MTM: </p> <ul>
+<li id="GUID-B47F5D1A-1C45-56FE-8074-D48F8B72AA58"><p>Message structure </p> </li>
+<li id="GUID-39DEC177-3210-5ED2-8095-32728E33EF7A"><p>User interface requirements </p> </li>
+<li id="GUID-3BA20B3C-0922-515D-8E11-B5A7336CE263"><p>Addressing mechanism </p> </li>
+<li id="GUID-3ADE85A9-3BF2-50F0-9A94-01002A440CF9"><p>Error handling mechanism </p> </li>
+<li id="GUID-E0E95CA4-EB36-5D90-8313-CC608ED2ABF1"><p>MTM DLL information </p> </li>
+</ul> <p>A Message Server abstraction that is used to locate and load particular
+MTM components. </p></section>
+<section><title>Description</title> <p>The MTM architecture is the plug-in
+scheme provided by the Messaging Framework to integrate different message
+transports to the Message Server. The plug-in scheme consists of four interfaces,
+the UI MTM, UI Data MTM, Client MTM and Server MTM. </p> <ul>
+<li id="GUID-A2763364-A20D-52B4-99FB-5D08747C22B4"><p>Client MTM manages the
+message type’s data model, providing the UI MTM and client applications with
+interfaces to access and to search for messages. </p> </li>
+<li id="GUID-BCF8AD0F-42D9-55D3-92DE-998FBD97E5E9"><p>User Interface (UI)
+Data MTM provides icons, menu text and a list of capabilities for a message
+type. </p> </li>
+<li id="GUID-66AFF19F-1ED2-5AF4-A079-5C8B5344E557"><p>User Interface (UI)
+MTM implements the user interface required for the message type, including
+a viewer, editor and dialog settings. </p> </li>
+<li id="GUID-6C73D1B2-A6F6-5F26-A814-6BD38F43DE3B"><p>Server MTM provides
+message transport over the network and manages a queue of outstanding client
+requests, and ensures that more than one message of a given type is sent simultaneously. </p> </li>
+</ul> <p>Each of the MTM DLLs is a polymorphic DLL that exports an instance
+of a system-defined base class. The Message Server and client applications
+use these base class interfaces to access MTM functionality in a generic and
+extensible way. The MTM in turn implements a specialized version of the class
+to provide specific message type functionality. </p> <p>Client applications
+can load and use the UI MTM, UI Data MTM and Client MTM DLLs. The DLLs are
+loaded within the client’s process space. The Server MTM DLLs are loaded within
+the Message Server process. The Messaging Middleware architecture allows clients
+to access the combined functionality of the Message Server and the Server
+MTMs through a single server interface. The following figure shows the MTM
+architecture. </p> <fig id="GUID-D9869871-08F2-5601-8A9C-1871D2AB4E1B">
+<title> MTM architecture </title>
+<image href="GUID-9E9C00E1-00A2-5248-946B-D3AE182F44EC_d0e253528_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>Message Server and MTMs</title> <p>The following figure shows
+the relationship between the Message Server and MTMs. The grey classes are
+realisations of the MTM interfaces defined by the Messaging Framework. The
+Message Server depends on the Server MTM interface and controls access to
+message data and delegates protocol-specific requests to Server side MTMs.
+Messaging clients depend on the Client, UI and UI Data MTM interfaces and
+the Message Server client API. </p> <fig id="GUID-F743115B-6934-5026-9D15-8DA5BE3A2D6F">
+<title> Relationship between Message Server and MTMs
+ </title>
+<image href="GUID-5059C3F9-1CEA-5DF3-914A-B99376570242_d0e253544_href.jpg" placement="inline"/>
+</fig> </section>
+<section><title>MTM class summary</title> <p>Messaging Middleware provides
+the following base classes, which defines the component interfaces for MTM
+implementations. </p> <ul>
+<li id="GUID-B72EC9B2-DC51-502F-A23C-303597405B13"><p>The base class for UI
+MTMs is <xref href="GUID-A5982338-A057-3870-8832-F503AEAC470A.dita"><apiname>CBaseMtmUi</apiname></xref>. </p> </li>
+<li id="GUID-5549337B-621D-52F0-A19F-A0EA61816486"><p>The base class for UI
+Data MTMs is <xref href="GUID-899C6D87-5712-34A7-902C-EA452894700C.dita"><apiname>CBaseMtmUiData</apiname></xref>. </p> </li>
+<li id="GUID-D2E07F67-69DF-54A8-A7E2-3EA64FD74D3C"><p>The base class for Client
+MTMs is <xref href="GUID-177AF50B-14EF-3C45-AE22-1FEE5678261D.dita"><apiname>CBaseMtm</apiname></xref>. </p> </li>
+<li id="GUID-42B1BC77-0D29-5627-93C2-CDCC02417B2F"><p>The base class for Server
+MTMs is <xref href="GUID-D088273D-FAFE-30F6-8D0A-3A62D3DE62FD.dita"><apiname>CBaseServerMtm</apiname></xref>. </p> </li>
+</ul> <p> <b> Important:</b> MTMs can also provide message type-specific functionality
+that is not defined by the base class interfaces. For example, for IMAP4,
+perform a full synchronization with a remote service; for POP3, connect to
+a remote server and download messages. The APIs for the client interfaces
+are extensible through run time type information provided by the <xref href="GUID-B3B2885E-DB79-3047-BCD9-C2A9BF08F5FD.dita"><apiname>QueryCapability</apiname></xref> API,
+and the <xref href="GUID-41E5C23D-CD5A-3DD3-BFCE-F8C576CE2149.dita"><apiname>InvokeAsyncFunction</apiname></xref> and <xref href="GUID-88DEB665-B4B1-3F73-A2A9-44E72C8514B4.dita"><apiname>InvokeSyncFunction</apiname></xref> APIs. </p> <p>For
+information on how to implement the base classes, see the <xref href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita">Implementing
+MTMs</xref>. </p> </section>
+<section><title>MTM functions</title><p>The MTM DLLs provide the following
+functions. MTMs implement them according to the requirements for the message
+type: </p><ul>
+<li id="GUID-56E24547-DA0C-5B01-B68C-4A928D07802F"><p>Querying functionality </p> <p>Allow
+the client applications to query the supported functionality for the message
+type. For example, the maximum message size or whether attachments are supported. </p> </li>
+<li id="GUID-110AFD4C-09D8-585D-B078-6DCD1A4525B4"><p>Message management functionality </p> <p>Allow
+the client applications to manage the messages, for example, to send, reply
+and forward messages. </p> </li>
+<li id="GUID-92F32F80-8E5F-56F9-B35B-99A2934C50E5"><p>Attachment management
+functionality </p> <p>Allow the client applications to handle attachments.
+For example, to add, remove or create an attachment for a particular message. </p> </li>
+</ul></section>
+</conbody><related-links>
+<link href="GUID-B394A824-8745-505E-8429-8B9B6D418387.dita"><linktext>Message Server
+and Store</linktext></link>
+<link href="GUID-400E4702-973A-5CAC-9F9C-3A10121F856A.dita"><linktext>Types of
+MTM</linktext></link>
+<link href="GUID-F3E5D412-BEB5-4E0F-9CDE-1DF3F9302BC3.dita"><linktext>Implementing
+MTMs</linktext></link>
+</related-links></concept>
\ No newline at end of file