Symbian3/SDK/Source/GUID-DB1D3045-2DC5-5C50-B430-526674369DC6.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 21 Jan 2010 18:18:20 +0000
changeset 0 89d6a7a84779
child 8 ae94777fff8f
permissions -rw-r--r--
Initial contribution of Documentation_content according to Feature bug 1266 bug 1268 bug 1269 bug 1270 bug 1372 bug 1374 bug 1375 bug 1379 bug 1380 bug 1381 bug 1382 bug 1383 bug 1385

<?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><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><title>Class summary</title><p><xref href="GUID-DA714708-9A0B-3B10-AC8E-44C903365453.dita"><apiname>CMsvServerEntry TMsvId CMsvEntrySelection
TParse </apiname></xref></p></section>
<section><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><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>