Week 32 contribution of PDK documentation content. See release notes for details. Fixes bug Bug 3582
<?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-DB1D3045-2DC5-5C50-B430-526674369DC6" xml:lang="en"><title>Server-side MTM implementation</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-CCF26E0B-12D7-4ECB-B213-F60D0319FAF3"><title>Example Code</title> <p>Click on the following link
to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.zip" scope="external">TextMTM.zip</xref> </p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-419758e4-b663-48d3-bf21-d9c4bb00da23.html" scope="peer">browse</xref> to view the example code. </p> <p>The files
reproduced here are the main files contained in the examples directory.
Some extra files may be needed to run the examples, and these will
be found in the appropriate examples directory. </p><p>The Server-side
Text MTM simulates with the local file system the actions normally
undertaken by a message transport protocol. A Text service entry
maps a local file directory, from which message header information
can be obtained (in a similar fashion to POP3), and from which messages
can be get and put.</p><p>A file or folder in the mapped directory
is regarded as a remote entry, and recorded by an entry in the message
index. The name of the file to which a message corresponds is stored
in the index Description field, and the full folder path in the index
Details field. No message store is associated with these remote entries.</p><p> Under a local folder, for example, the Inbox, each message has
a message store that contains a rich text stream representing the
body text.</p><p>Messages can be deleted, moved, or copied. When a
local message to transferred to a Text service, the Server-side MTM
constructs a new file, obtaining its name and location from the index
fields. When the transfer is from the service to a local folder, the
Server-side MTM creates a rich text stream and reads the file text
into it.</p><p>The Text server DLL currently supports one MTM-specific
operation, <codeph>KTXTMTMRefresh</codeph>, which refreshes the folder
tree below a service entry.</p></section>
<section id="GUID-0ED77942-8593-4823-BC09-F615474FCF96"><title>Class summary</title><ul>
<li><p><xref href="GUID-681B56F3-B3A2-3147-B25A-FD69451F4A1D.dita"><apiname>CMsvServerEntry</apiname></xref></p></li>
<li><p><xref href="GUID-A4B1F874-27C0-3BB6-9D29-C35C75A5DB98.dita"><apiname> TMsvId</apiname></xref></p></li>
<li><p><xref href="GUID-6BC8851B-D913-3CE5-B343-5163661E8AD5.dita"><apiname>CMsvEntrySelection </apiname></xref></p></li>
<li><p><xref href="GUID-E79A3B03-F8CB-37DB-A2A8-1C6C4E4D739A.dita"><apiname>TParse </apiname></xref></p></li>
</ul></section>
<section id="GUID-2F100CE2-09A7-47C2-B890-993AC9C214D1"><title>Move, copy, and delete implementation</title> <p>Move,
copy, and delete operations all operate on a collection of message
entries, often involving creating new index entries, and deleting
existing ones. This common functionality is provided by the class <codeph>CTxtCopyMoveBase</codeph>. </p> <p>A <codeph>CTxtCopyMoveBase</codeph> instance is provided with an object to perform the specific operation
required. The classes <codeph>CTxtCopyToLocalOp</codeph>, <codeph>CTxtCopyFromLocalOp</codeph>, <codeph>CTxtCopyWithinServiceOp</codeph>, <codeph>CTxtMoveToLocalOp</codeph>, <codeph>CTxtMoveFromLocalOp</codeph>, <codeph>CTxtMoveWithinServiceOp</codeph> and <codeph>CTxtDeleteOp</codeph> each define the functionality for a specific operation. </p> <p>Each of these classes is derived from <codeph>CTxtActiveOper</codeph>. The move operation classes are derived from their copy counterparts,
and add the extra deletion after copying. </p> </section>
<section id="GUID-A9F1DBD5-046A-4B4B-A678-B8790B7E14F2"><title>Service refresh implementation</title> <p>The contents
of folders under the file system can be changed at any time outside
of the application, by the user or some other application. In order
for these changes to be visible in the messaging application, the
Server-side MTM provides a refresh capability. </p> <p>The refresh
capability is provided by the refresher class <codeph>CTxtRefreshMBox</codeph>. It ensures that the current entries accurately reflect the state
of the corresponding file folder, adding or removing entries under
the service as required. </p> </section>
</conbody></concept>