<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved.		
		-->
<!DOCTYPE reference PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd">
<reference xml:lang="en-us" outputclass="element" id="cxxClass">
    <title>cxxClass</title>
    <shortdesc>The &lt;cxxClass&gt; element provides the name of the C++ API
class, all the elements necessary to describe the members that are introduced
by the class declaration, and the members inherited from the direct base class.</shortdesc>
    <refbody>
        <section>
            <title>Description</title>
            <p>The &lt;cxxClass&gt; element requires
an ID attribute as an anchor point; this ID must always be specified. The
ID attribute is referenced by the <i>conref</i> attribute and internal applications
that refer to the  &lt;cxxClass&gt; element content. The elements &lt;apiName&gt; 
and &lt;cxxClassDetail&gt; are required for this top-level container. </p>
        </section>
        <example><title>Example</title>
        <codeblock>&lt;cxxClass id=&quot;class_c_array_fix_flat_3_01_t_uid_01_4&quot;&gt;
	&lt;apiName&gt;CArrayFixFlat&amp;lt; TUid &amp;gt;&lt;/apiName&gt;
	&lt;cxxClassDetail&gt;
		&lt;cxxClassDefinition&gt;
			&lt;cxxClassAccessSpecifier value=&quot;public&quot;/&gt;
			&lt;cxxClassDerivations&gt;
				&lt;cxxClassDerivation&gt;
					&lt;cxxClassDerivationAccessSpecifier value=&quot;public&quot;/&gt;
					&lt;cxxClassBaseClass href=&quot;class_c_array_fix.xml#class_c_array_fix&quot;&gt;CArrayFix&amp;lt; TUid &amp;gt;&lt;/cxxClassBaseClass&gt;
				&lt;/cxxClassDerivation&gt;
			&lt;/cxxClassDerivations&gt;
			&lt;cxxClassAPIItemLocation&gt;
				&lt;cxxClassDeclarationFile name=&quot;filePath&quot; value=&quot;C:/src/include/e32base.h&quot;/&gt;
				&lt;cxxClassDeclarationFileLine name=&quot;lineNumber&quot; value=&quot;531&quot;/&gt;
				&lt;cxxClassDefinitionFile name=&quot;filePath&quot; value=&quot;C:/src/include/e32base.h&quot;/&gt;
				&lt;cxxClassDefinitionFileLineStart name=&quot;lineNumber&quot; value=&quot;521&quot;/&gt;
				&lt;cxxClassDefinitionFileLineEnd name=&quot;lineNumber&quot; value=&quot;536&quot;/&gt;
			&lt;/cxxClassAPIItemLocation&gt;
		&lt;/cxxClassDefinition&gt;
		&lt;apiDesc&gt;
			&lt;p&gt;Template specialisation base class for arrays of &lt;xref href=&quot;class_t_uid.xml#class_t_uid&quot;&gt;TUid&lt;/xref&gt; types implemented in a flat dynamic buffer.&lt;/p&gt;
			&lt;p&gt;
				&lt;xref href=&quot;class_t_uid.xml#class_t_uid&quot;&gt;TUid&lt;/xref&gt; &lt;/p&gt;
		&lt;/apiDesc&gt;
	&lt;/cxxClassDetail&gt;
	&lt;cxxFunction id=&quot;class_c_array_fix_flat_3_01_t_uid_01_4_1afd277b81e961b25f35b92dbc90f8d97c&quot;&gt;
		&lt;apiName&gt;SetReserveL&lt;/apiName&gt;
		&lt;cxxFunctionDetail&gt;
			&lt;cxxFunctionDefinition&gt;
				&lt;cxxFunctionAccessSpecifier value=&quot;public&quot;/&gt;
				&lt;cxxFunctionInline/&gt;
				&lt;cxxFunctionDeclaredType&gt;void&lt;/cxxFunctionDeclaredType&gt;
				&lt;cxxFunctionScopedName&gt;CArrayFixFlat&amp;lt; TUid &amp;gt;&lt;/cxxFunctionScopedName&gt;
				&lt;cxxFunctionPrototype&gt;inline void SetReserveL(TInt aCount)&lt;/cxxFunctionPrototype&gt;
				&lt;cxxFunctionNameLookup&gt;CArrayFixFlat&amp;lt; TUid &amp;gt;::SetReserveL(TInt)&lt;/cxxFunctionNameLookup&gt;
				&lt;cxxFunctionParameters&gt;
					&lt;cxxFunctionParameter&gt;
						&lt;cxxFunctionParameterDeclaredType&gt;
							&lt;apiRelation href=&quot;e32def_8h.xml#e32def_8h_1abb88f5378e8305d934297176fe5fa298&quot;&gt;TInt&lt;/apiRelation&gt;
						&lt;/cxxFunctionParameterDeclaredType&gt;
						&lt;cxxFunctionParameterDeclarationName&gt;aCount&lt;/cxxFunctionParameterDeclarationName&gt;
						&lt;apiDefNote&gt;The total number of elements for which space is to be reserved.&lt;/apiDefNote&gt;
					&lt;/cxxFunctionParameter&gt;
				&lt;/cxxFunctionParameters&gt;
				&lt;cxxFunctionAPIItemLocation&gt;
					&lt;cxxFunctionDeclarationFile name=&quot;filePath&quot; value=&quot;C:/src/include/e32base.h&quot;/&gt;
					&lt;cxxFunctionDeclarationFileLine name=&quot;lineNumber&quot; value=&quot;535&quot;/&gt;
					&lt;cxxFunctionDefinitionFile name=&quot;filePath&quot; value=&quot;C:/src/master/sf/mw/classicui/animation/src/SpriteAnimationServer.cpp&quot;/&gt;
					&lt;cxxFunctionDefinitionFileLineStart name=&quot;lineNumber&quot; value=&quot;1137&quot;/&gt;
					&lt;cxxFunctionDefinitionFileLineEnd name=&quot;lineNumber&quot; value=&quot;1157&quot;/&gt;
				&lt;/cxxFunctionAPIItemLocation&gt;
			&lt;/cxxFunctionDefinition&gt;
			&lt;apiDesc&gt;
				&lt;p&gt;Reserves space in the array buffer.&lt;/p&gt;
				&lt;p&gt;If necessary, the array buffer is allocated or re-allocated so that it can accommodate the specified number of &lt;xref href=&quot;class_t_uid.xml#class_t_uid&quot;&gt;TUid&lt;/xref&gt; elements.&lt;/p&gt;
				&lt;p&gt;After a successful call to this function, elements can be added to the array and the process is guaranteed not to fail for lack of memory - provided the total number of elements does not exceed the specified number.&lt;/p&gt;
				&lt;p&gt;This function does not increase the number of elements in the array; i.e. the member function &lt;xref href=&quot;class_c_array_fix_base.xml#class_c_array_fix_base_1ad5bc874aceea074862134dc8e4937faa&quot;&gt;CArrayFixBase::Count()&lt;/xref&gt; returns the same value both before and after a call to this function.&lt;/p&gt;
				&lt;p&gt;
					&lt;b&gt;panic&lt;/b&gt;
				&lt;/p&gt;
				&lt;p&gt;E32USER-CBase 27, if aCount is less than the current number of elements in the array. &lt;/p&gt;
			&lt;/apiDesc&gt;
		&lt;/cxxFunctionDetail&gt;
	&lt;/cxxFunction&gt;    
	&lt;cxxFunction id=&quot;class_c_array_fix_flat_3_01_t_uid_01_4_1a78b3dd428f88a9f9f693911129e9eb51&quot;&gt;
		...
	&lt;/cxxFunction&gt;
	&lt;cxxFunction id=&quot;class_c_array_fix_flat_3_01_t_uid_01_4_1a3b0a085b65c307ad4937a6c7c4bb767a&quot;&gt;
		...
	&lt;/cxxFunction&gt;
	&lt;cxxClassInherits&gt;
		&lt;cxxClassInheritsDetail&gt;
			&lt;cxxClassFunctionInherited href=&quot;class_c_array_fix.xml#class_c_array_fix_1ab18347f8849b6dfe174c57bbdccdc3a6&quot;&gt;CArrayFix&amp;lt; TUid &amp;gt;::AppendL(const TUid &amp;amp;)&lt;/cxxClassFunctionInherited&gt;
			&lt;cxxClassFunctionInherited href=&quot;class_c_array_fix.xml#class_c_array_fix_1a98b10e4a4f97fd76a722e33afd3b8ee3&quot;&gt;CArrayFix&amp;lt; TUid &amp;gt;::AppendL(const TUid &amp;amp;,TInt)&lt;/cxxClassFunctionInherited&gt;
			...
		&lt;/cxxClassInheritsDetail&gt;
	&lt;/cxxClassInherits&gt;
&lt;/cxxClass&gt;</codeblock>
        </example>        
        <section conref="../packagedef.dita#cxxClass-reference/cxxClass-containedBy-section"/>
        <section conref="../packagedef.dita#cxxClass-reference/cxxClass-contains-section"/>
        <section conref="../packagedef.dita#cxxClass-reference/cxxClass-contentModel-section"/>
        <section conref="../packagedef.dita#cxxClass-reference/cxxClass-attList-section"/>
        <section conref="../packagedef.dita#cxxClass-reference/cxxClass-classValue-section"/>
    </refbody>
</reference>