Symbian3/SDK/Source/GUID-C85B4EA2-0184-52AF-B097-152E4A023CEF.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
parent 0 89d6a7a84779
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and 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 id="GUID-C85B4EA2-0184-52AF-B097-152E4A023CEF" xml:lang="en"><title>Abstract
base descriptor classes</title><shortdesc>Describes the modifiable descriptor class and the non-modifiable
descriptor class.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The concrete descriptor classes are all derived from a set of base classes.
The base classes are abstract and implement nearly most of the behaviour of
descriptors. They are:</p>
<ul>
<li id="GUID-0942F246-8BB5-50DB-8314-AA4B1DD1B8C0"><p>The abstract non-modifiable
descriptor</p> </li>
<li id="GUID-1750CF5B-E6F3-57E5-A107-B17DA0481E22"><p>The abstract modifiable
descriptor</p> </li>
</ul>
<section id="GUID-136970EE-DFB5-469F-9597-1105AA05947E"><title>The abstract non-modifiable descriptor class</title> <p>The
class has a data member containing the length of the data represented by the
serived concrete descriptor. It also provides the set of functions through
which data can be accessed but not modified.</p> <p>This class is supplied
in two variants:</p> <ul>
<li id="GUID-669B11F1-84DA-5064-88B8-5D3F603114F6"><p>the 16 bit variant,
a <codeph>TDesC16</codeph>, to handle Unicode strings.</p> </li>
<li id="GUID-A9F1113E-0736-570D-BF57-B060817549C8"><p>the 8 bit variant, a <codeph>TDesC8</codeph>,
to handle non-Unicode strings and binary data.</p> </li>
</ul> <p>There is also a build independent type, <codeph>TDesC</codeph>. This
is the type which is most commonly used in program code; the appropriate variant
is selected at build time.</p> <p>An explicit 8 bit variant is chosen when
handling binary data. The explicit 16 bit variant is rarely used.</p> </section>
<section id="GUID-DA165923-2587-4F77-AEAF-FA012B7EAC24"><title>The abstract modifiable descriptor class</title> <p>The class
has a data member containing the maximum length of data that the descriptor
is capable of representing. It also provides the set of functions through
which data can be modified.</p> <p>This class is supplied in two variants:</p> <ul>
<li id="GUID-3F876EFE-1E91-5834-914A-45478D70B0A7"><p>the 16 bit variant,
a <codeph>TDes16</codeph>, to handle Unicode strings.</p> </li>
<li id="GUID-1F1F3894-3CD0-5DEB-AA75-8259CC86BF58"><p>the 8 bit variant, a <codeph>TDes8</codeph>,
to handle non-Unicode strings and binary data.</p> </li>
</ul> <p>There is also a build independent type, <codeph>TDes</codeph>. This
is the type which is most commonly used in program code; the appropriate variant
is selected at build time.</p> <p>An explicit 8 bit variant is chosen when
handling binary data. The explicit 16 bit variant is rarely used.</p> </section>
</conbody></concept>