Symbian3/SDK/Source/GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita
changeset 0 89d6a7a84779
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9.dita	Thu Jan 21 18:18:20 2010 +0000
@@ -0,0 +1,45 @@
+<?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-82B73D69-0176-5CBB-B3ED-5CA7F5CCD5D9" xml:lang="en"><title>The
+relationship between descriptor classes</title><shortdesc>Describes inheritance relationship between the descriptor classes
+and associated abstract base classes.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The following diagram shows the inheritance relationship between the concrete
+descriptor classes and their abstract base classes. </p>
+<p>The diagram uses the 16-bit variant types: </p>
+<ul>
+<li id="GUID-9F68E03E-EC88-50FD-868C-EB3C91DE9F50"><p> <xref href="GUID-8FE95467-D48B-3E61-9028-29C0F15F567E.dita"><apiname>TPtrC16</apiname></xref> </p> </li>
+<li id="GUID-DC40BC35-AA45-515C-9721-8B6E73A7AC89"><p> <xref href="GUID-262C5A94-F186-31A1-855E-1FE123BC101C.dita"><apiname>TPtr16</apiname></xref> </p> </li>
+<li id="GUID-10AD9787-4CCA-5600-8898-1F18B94C6499"><p> <xref href="GUID-44622E86-313E-36B3-9989-3016F8E6E252.dita"><apiname>TBufC16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
+<li id="GUID-D88E7A38-CF2F-5723-B1C1-C9FF3113AEF9"><p> <xref href="GUID-EF25E407-26DF-3D97-B725-2DD0345975BA.dita"><apiname>TBuf16</apiname></xref> <codeph>&lt;TInt&gt;</codeph> </p> </li>
+<li id="GUID-55E8280B-DB84-51B0-B103-E674DACCE388"><p> <xref href="GUID-BFBC574B-EFF6-37A4-9189-B71DA1505BC8.dita"><apiname>RBuf</apiname></xref> </p> </li>
+<li id="GUID-9B7A4836-E7BA-5751-AFA7-563ED80B2F76"><p> <xref href="GUID-3D3D9CD7-C8FD-3F81-9CC5-1A71D4F9751E.dita"><apiname>HBufC16</apiname></xref> </p> </li>
+</ul>
+<p>but the relationship is exactly the same for the 8-bit variants. The class
+names can also be replaced by the build independent types and the relationships
+remains valid. </p>
+<p>The <codeph>TBufBase16</codeph> and <codeph>TBufCBase16</codeph> classes
+are an implementation convenience and are not part of the public API. </p>
+<p> <xref href="GUID-440FF2B4-353B-3097-A2BA-5887D10B8B23.dita"><apiname>TDesC16</apiname></xref> and <xref href="GUID-C04A9A0C-DBA7-37DA-B744-54FBF3D544CD.dita"><apiname>TDes16</apiname></xref> are abstract
+classes and cannot be instantiated, However, these types can be passed as
+arguments to functions. </p>
+<fig id="GUID-B76A3D70-207B-55B2-B5BC-003E6E143375">
+<image href="GUID-4BCE7915-6BF9-5D83-9049-B7FA9725B406_d0e196472_href.png" placement="inline"/>
+<p>Inheritance relationship between the concrete descriptor classes and their
+abstract base classes</p>
+</fig>
+<p>Because descriptors are widely used (especially on the stack), the size
+of descriptor objects must be kept to a minimum. To help with this, no virtual
+functions are defined in order to avoid the overhead of a virtual function
+table pointer in each descriptor object. </p>
+<p>As a consequence, the base classes have implicit knowledge of the classes
+derived from them. </p>
+</conbody></concept>
\ No newline at end of file