Symbian3/PDK/Source/GUID-893737B2-4863-5BB9-8AA1-6AB5045FADC9.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
parent 14 578be2adaf3e
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?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-893737B2-4863-5BB9-8AA1-6AB5045FADC9"><title>Positioning Plug-in API (PSY API)</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Positioning Plug-in API defines the framework classes needed to implement Positioning Plug-ins (PSYs). </p> <p>This API is intended for device creators who develop their own PSYs. </p> <section><title>API description</title> <p>The Positioning Plug-in API provides framework classes for developing PSYs. </p> <p>The Location Server (eposserver.exe) loads and uses a PSY implementation to obtain position information. </p> <p>In order to implement a PSY, a licensee must define new subclasses of the main API class <xref href="GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350.dita"><apiname>CPositioner</apiname></xref>. </p> <p>A PSY must also implement the <xref href="GUID-DA2DC704-CE65-54FB-9049-4E1C73092EDF-GENID-1-12-1-19-1-1-10-1-5-1-5-1-8-1.dita">Positioning Plug-in Information API</xref> to publish information about its capabilities to the Location Framework. </p> </section> <section><title>API summary</title> <p>Figure 1 shows the classes of the PSY API. </p> <fig id="GUID-1C5F848C-0687-524B-8125-7CD50ADA87E9"><title>
             Figure 1. PSY API class diagram. 
          </title> <image href="GUID-4F8197C3-D61B-579A-81E9-ED6397EB5645_d0e459715_href.png" placement="inline"/></fig> <p>The following table gives a brief description of the API classes. </p> <table id="GUID-EDCF2480-C199-5077-829C-984AF786F15F"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>Class Name</entry> <entry>Description</entry> <entry>Header file</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350.dita"><apiname>CPositioner</apiname></xref>  </p> </entry> <entry><p> <xref href="GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350.dita"><apiname>CPositioner</apiname></xref> is the main class in the Positioning Plug-in API. </p> <p>A PSY must implement a <codeph>CPositioner</codeph> subclass to handle positioning requests. </p> <p> <codeph>CPositioner</codeph> defines two pure virtual functions: </p> <ul><li id="GUID-658C8C9C-DE2A-5DB3-A894-97040CB37CB5"><p> <xref href="GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350.dita#GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350/GUID-03A37FAC-3129-3483-AC7F-C17A46D9F431"><apiname>CPositioner::NotifyPositionUpdate()</apiname></xref>  </p> </li> <li id="GUID-D80EA49F-71A7-56F6-9D33-5FF9052CAA73"><p> <xref href="GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350.dita#GUID-0CA8AEC1-FF5E-3556-ACBD-0D4277CF1350/GUID-D28C6BC6-69B8-3D69-BE46-5745C5B77A4D"><apiname>CPositioner::CancelNotifyPositionUpdate()</apiname></xref> </p> </li> </ul> <p>A PSY must implement these two functions. </p> <p>This class also defines advanced features, such as for location tracking, for which it provides a default implementation. </p> </entry> <entry><p> <codeph>EPos_CPositioner.h</codeph>  </p> </entry> </row> <row><entry><p> <xref href="GUID-86CB276D-F920-3115-858E-31AF13EABD30.dita"><apiname>MPositionerStatus</apiname></xref>  </p> </entry> <entry><p> <xref href="GUID-86CB276D-F920-3115-858E-31AF13EABD30.dita"><apiname>MPositionerStatus</apiname></xref> provides an interface through which a PSY reports its status. </p> <p>Class <xref href="GUID-F8376F62-46F2-3E7C-9536-920DB6FC6039.dita"><apiname>TPositionModuleStatus</apiname></xref> of the Location Acquisition API defines the states that a PSY can report. </p> </entry> <entry><p> <codeph>EPos_MPositionerStatus.h</codeph>  </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Libraries</title> <p>API classes are packaged in <filepath>epospluginfw.dll</filepath>. Clients link with <filepath>epospluginfw.lib</filepath>  </p> </section> <section><title>Capabilities</title> <p>PSYs are ECOM plug-ins loaded by the LBS Location Framework. They must be declared as having the capability <codeph>ALL -TCB</codeph>. </p> </section> </conbody><related-links><link href="GUID-CEBAC67F-DEFE-51EF-93CE-2FA61AA68997.dita"><linktext>Positioning
                Plug-in API Tutorial</linktext> </link> <link href="GUID-DA2DC704-CE65-54FB-9049-4E1C73092EDF-GENID-1-12-1-19-1-1-10-1-5-1-5-1-8-1.dita"><linktext>Positioning Plug-in
                Information API</linktext> </link> </related-links></concept>