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