Symbian3/PDK/Source/GUID-2D872656-7FD3-56D2-B084-8CC84E8453A4.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.

<?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 xml:lang="en" id="GUID-2D872656-7FD3-56D2-B084-8CC84E8453A4"><title>MTP PTP-IP Transport Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>PTP-IP is one of the supported MTP transport modes. This section describes the PTP-IP Transport plug-in and its sub-components (the PTP-IP Connection Controller and related APIs). </p> <section><title>Required Background</title> <p>Before you start, you must be familiar with the following: </p> <ul><li id="GUID-35C46BF1-3450-57B2-BE03-5E93F64C0594"><p>The data type, communication layers, and transport model of PTP-IP can be found in the <xref scope="external" href="http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-X005.pdf">PTP-IP specification</xref>. </p> </li> <li id="GUID-8043E286-6546-547F-A744-423268B2A6E0"><p>Socket programming. </p> </li> </ul> </section> <section><title>Architecture</title> <p>The diagram below shows the components and sub-components provided by the Symbian platform in green and those that a device creator must implement in blue. They run in two processes: </p> <ul><li id="GUID-C3042566-185B-5963-AC43-BE7DF1C9AEAC"><p>The PTP-IP Controller process is responsible for setting up the TCP/IP connection and PTP-IP connection. According to the PTP-IP specification, PTP-IP is the layer above the TCP/IP. </p> <p> <b>Note</b>: Once a PTP-IP connection is established, the Listener rejects new connection requests until the current connection stops. </p> </li> <li id="GUID-DD1C7B02-8C52-5737-AE71-5F2A96236516"><p>The MTP process loads the PTP-IP Transport plug-in and transfers MTP data over the Symbian TCP/IP Stack between a host PC and a device. </p> </li> </ul> <fig id="GUID-12465D81-1881-566C-B348-695C2F34FB36"><title>
             MTP Architecture with PTP-IP Transport Plug-in 
          </title> <image href="GUID-2B4E0859-1CA9-5C4A-B20C-25FC6BC357C4_d0e649431_href.jpg" placement="inline"/></fig> <p>MTP over PTP-IP is initiated in the following way: </p> <ol id="GUID-C86C9F2D-61E4-5FB5-9DFD-23305836CEA2"><li id="GUID-00EAB276-B6BA-52E4-95C5-A3E286ACDFBB"><p>A <b>Listener</b> listens on a specific port to accept a PTP-IP connection (based on TCP/IP) request from a host PC. It calls the <b>TCP/IP Stack</b> to establish the TCP/IP connection between the host PC (initiator) and the Symbian device (responder). </p> <p>A Listener must be implemented by a device creator. For more information about implementing a Listener, refer to <xref href="GUID-24CF2B94-5F10-57D9-B0D4-E56A80266595.dita">Implementing a Listener</xref>. </p> </li> <li id="GUID-B1B08C90-7598-5A68-9D5F-657047C8311E"><p>Once the TCP/IP connection is established, the Listener calls the <b>PTP-IP Connection Controller</b> to set up the PTP-IP connection. </p> <p>For more information about using PTP-IP Controller, refer to <xref href="GUID-143DAD71-9BCA-52D3-8BC8-AE80DBF05636.dita">Using PTP-IP Controller</xref>. </p> </li> <li id="GUID-42AEA595-E294-5289-BA1C-51585637126F"><p>The PTP-IP Connection Controller validates whether to accept the request for a PTP-IP connection by calling a <b>Filter</b>. </p> <p>The Filter (<xref href="GUID-8FB56D92-F4FC-3125-930F-7F7B26300A47.dita"><apiname>MPTPIPHostFilter</apiname></xref> and <xref href="GUID-58C9564F-C96F-3CED-993C-01DB4F70DF63.dita"><apiname>CPTPIPHostFilterInterface</apiname></xref>) must be implemented by a device creator. For more information about implementing a Filter, refer to <xref href="GUID-7CFE584D-B605-5A3E-9294-84A28003000B.dita">Implementing a Filter</xref>. </p> </li> <li id="GUID-730B7B4E-E41E-5B60-986A-95C3CAB342DD"><p>Once the PTP-IP connection request is accepted and the PTP-IP connection is established, the PTP-IP Connection Controller calls the <b>MTP Client API</b> to send the <codeph>StartTransport</codeph> command to the MTP Framework. </p> </li> <li id="GUID-372DC6F5-78C6-5955-9EC2-3DA0343ADBD3"><p>The MTP Framework loads the <b>MTP PTP-IP Transport plug-in</b>. </p> </li> <li id="GUID-125B0774-5257-5853-B550-3193456C1C04"><p>Requests and responses can be issued and MTP data can be transferred between the host PC and the Symbian device over the TCP/IP Stack. </p> </li> </ol> </section> <section><title>APIs</title> <p>The MTP PTP-IP Transport includes the following key APIs: </p> <table id="GUID-1A782B18-1DC7-5A2D-A378-8FD8C19A581C"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-58C9564F-C96F-3CED-993C-01DB4F70DF63.dita"><apiname>CPTPIPHostFilterInterface</apiname></xref>  </p> </entry> <entry><p>Provides an ECom plug-in interface for the Connection Controller to load the right Filter implementation. </p> </entry> </row> <row><entry><p> <xref href="GUID-44FEC8DA-8C77-3A2B-B1CF-C0AAD854CDED.dita"><apiname>RPTPIPFramework</apiname></xref>  <xref href="GUID-6BD89347-671F-3518-9777-55801A090C79.dita"><apiname/></xref>  </p> </entry> <entry><p>Gets an instance of the <xref href="GUID-E5CB0731-9BFC-32F2-951B-5F1C1C41D781.dita"><apiname>MPTPIPController</apiname></xref> instance. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The MTP PTP-IP Transport can be used to </p> <ul><li id="GUID-EDF2ED86-32FE-58DB-BF0A-59C614FA68D7"><p>Validate and set up a PTP-IP connection between a host PC and a Symbian device. </p> </li> <li id="GUID-494FBB92-2868-56A8-96FD-3D5A6869AB0B"><p>Provide MTP over PTP-IP transport support. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-24CF2B94-5F10-57D9-B0D4-E56A80266595.dita"><linktext>Implementing a Listener</linktext> </link> <link href="GUID-7CFE584D-B605-5A3E-9294-84A28003000B.dita"><linktext>Implementing a Filter</linktext> </link> <link href="GUID-32453B7B-4596-50FB-A7B8-04D53B41B7A1.dita"><linktext>Configuring Multiple Transport
                Protocols</linktext> </link> </related-links></concept>