Symbian3/SDK/Source/GUID-E189B0C0-AAB5-5472-996B-91043DE0B6D4.dita
changeset 0 89d6a7a84779
child 13 48780e181b38
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-E189B0C0-AAB5-5472-996B-91043DE0B6D4" xml:lang="en"><title>Package
       
    13 Buffers Overview</title><shortdesc>Allows any value type (a T class) to be encapsulated as a descriptor,
       
    14 for the purpose of inter-thread data transfer.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <section id="GUID-D6ADB133-EB0D-41C5-B513-152ED052BA9F"><title>Architectural relationships</title> <p>The Client/Server API
       
    16 expects data that is to be passed between threads to be encapsulated in a
       
    17 descriptor. Package buffers provide a generic way for the thread providing
       
    18 the data to do this. The thread receiving the data extracts the original data
       
    19 from the package.</p> <p>APIs with client/server architectures, such as telephony
       
    20 and Messaging, define specialised package buffer types that encapsulate the
       
    21 particular data types that they require to pass between threads.</p> </section>
       
    22 <section id="GUID-545604B3-1A3A-4236-AB40-F15E19D40487"><title>Description</title> <p>The API has two key concepts: package
       
    23 buffer descriptor, and package pointer descriptor. </p> </section>
       
    24 <section id="GUID-5B34C59B-3D61-48E9-9939-0259E1EC9A64"><title>Package buffer descriptor</title> <p>The package buffer descriptor
       
    25 creates a new instance of the type to encapsulate and stores it within the
       
    26 descriptor. The interface allows a reference to the encapsulated object to
       
    27 be obtained, so that it can be accessed and modified.</p> <p>The package buffer
       
    28 descriptor interface is provided by <xref href="GUID-C7A094BD-846F-3ED2-8CCE-C0743DB3712A.dita"><apiname>TPckgBuf</apiname></xref>.</p></section>
       
    29 <section id="GUID-B12499C9-B385-43CF-8342-06B34150BE67"><title>Package pointer descriptor</title> <p>The package pointer
       
    30 descriptor refers to an already existing object. It is otherwise used in a
       
    31 similar way to the package buffer descriptor.</p> <p>The package pointer descriptor
       
    32 interface is provided by <xref href="GUID-36B29964-420D-38D0-AF08-4DA70BED8B6E.dita"><apiname>TPckgC</apiname></xref> for const objects, and <xref href="GUID-4DFB8E64-81FF-3D3B-9694-CE51B11DA69A.dita"><apiname>TPckg</apiname></xref> for
       
    33 non-const objects. </p> </section>
       
    34 </conbody><related-links>
       
    35 <link>
       
    36 <desc><xref href="GUID-D0D27AEA-FDDB-5F6F-94F6-ADDF5910DC47.dita">Client/Server
       
    37 Overview</xref></desc>
       
    38 </link>
       
    39 <link href="GUID-11EEFB3D-0414-5BEB-9D78-56A4B9154008.dita"><linktext>Using Descriptors</linktext>
       
    40 </link>
       
    41 </related-links></concept>