# cxxEnumeration

The <cxxEnumeration> element contains all the elements needed to describe the declaration of a C++ enumeration.

## Description

The <cxxEnumeration> element requires an id attribute as an anchor point; id must always be specified. The id attribute is referenced by the conref attribute from internal applications that refer to the <cxxFunctiion> element content. The elements <apiName> and <cxxEnumerationDetail> are required for this top-level container.

## Example

    <cxxEnumeration id="class_b_trace_1a289a8c50777f50be7f2d0535670c1e8d">
        <apiName>THeaderStructure</apiName>
        <cxxEnumerationDetail>
            <cxxEnumerationDefinition>
                <cxxEnumerationAccessSpecifier value="public"/>
                <cxxEnumerationScopedName>BTrace</cxxEnumerationScopedName>
                <cxxEnumerationPrototype>THeaderStructure</cxxEnumerationPrototype>
                <cxxEnumerationNameLookup>BTrace:THeaderStructure</cxxEnumerationNameLookup>
                <cxxEnumerators>
                    <cxxEnumerator id="class_b_trace_1a289a8c50777f50be7f2d0535670c1e8daacb3d2fc73e5d51e0cfe218fe61a4a64">
                        <apiName>ESizeIndex</apiName>
                        <cxxEnumeratorScopedName>BTrace</cxxEnumeratorScopedName>
                        <cxxEnumeratorPrototype>ESizeIndex = 0</cxxEnumeratorPrototype>
                        <cxxEnumeratorNameLookup>BTrace::ESizeIndex</cxxEnumeratorNameLookup>
                        <cxxEnumeratorInitialiser value="0"/>
                        <cxxEnumeratorAPIItemLocation>
                            <cxxEnumeratorDeclarationFile name="filePath" value="C:/src/include/e32btrace.h"/>
                            <cxxEnumeratorDeclarationFileLine name="lineNumber" value="177"/>
                        </cxxEnumeratorAPIItemLocation>
                        <apiDesc>
                            <p>Size of record in bytes. </p>
                        </apiDesc>
                    </cxxEnumerator>
                    <cxxEnumerator id="class_b_trace_1a289a8c50777f50be7f2d0535670c1e8da88aa2174423cbfd0a14b6bc857e06745">
                        <apiName>EFlagsIndex</apiName>
                        <cxxEnumeratorScopedName>BTrace</cxxEnumeratorScopedName>
                        <cxxEnumeratorPrototype>EFlagsIndex = 1</cxxEnumeratorPrototype>
                        <cxxEnumeratorNameLookup>BTrace::EFlagsIndex</cxxEnumeratorNameLookup>
                        <cxxEnumeratorInitialiser value="1"/>
                        <cxxEnumeratorAPIItemLocation>
                            <cxxEnumeratorDeclarationFile name="filePath" value="C:/src/include/e32btrace.h"/>
                            <cxxEnumeratorDeclarationFileLine name="lineNumber" value="190"/>
                        </cxxEnumeratorAPIItemLocation>
                        <apiDesc>
                            <p>Bitfield of flags from enum TFlags. E.g. to detect if a timestamp is present in the record, code like this could be used. <codeblock>			TUint8* record; // pointer to trace record
            if(record[BTrace::EFlagsIndex]&BTrace::ETimestampPresent)
                TimestampPresent();
            else
                TimestampNotPresent();</codeblock> </p>
                        </apiDesc>
                    </cxxEnumerator>
                </cxxEnumerators>
                <cxxEnumerationAPIItemLocation>
                    <cxxEnumerationDeclarationFile name="filePath" value="C:/src/include/e32btrace.h"/>
                    <cxxEnumerationDeclarationFileLine name="lineNumber" value="173"/>
                    <cxxEnumerationDefinitionFile name="filePath" value="C:/EPOC/master/sf/os/commsfw/serialserver/c32serialserver/CCOMM/CC_CLI.CPP"/>
                    <cxxEnumerationDefinitionFileLineStart name="lineNumber" value="172"/>
                    <cxxEnumerationDefinitionFileLineEnd name="lineNumber" value="201"/>
                </cxxEnumerationAPIItemLocation>
            </cxxEnumerationDefinition>
            <apiDesc>
                <p>Byte indices into the trace header for specific fields. </p>
            </apiDesc>
        </cxxEnumerationDetail>
    </cxxEnumeration>

## Contained by

cxxUnion cxxClass cxxStruct

## Contains

apiName, cxxEnumerationDetail no-topic-nesting, prolog, related-links, shortdesc,

## Content Model

(apiName, then shortdesc, then prolog, then cxxEnumerationDetail then related-links, then (no-topic-nesting, ))

## Inheritance

topic/topic reference/reference apiRef/apiRef apiValue/apiValue cxxEnumeration/cxxEnumeration

Parent topic: cxxEnumeration module