# Complex Types

Besides integral types, such as various integer and floating-point types, also complex types are supported. This is achieved by converting the complex type into an array of basic types. These can be static or dynamic in size.  
  
To make this possible, the code generator must know the underlying basic-types for a specific complex type which is done by providing an optional Complex-Type definition file. Further the user must implement matching conversion functions between the specified basic and complex types.  
  
Note: Complex-Types using mixed data types can be supported by treating them as simple byte-arrays

# XML Definition

<span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">Complex Types are defined in an XML Schema file which is located at “cgi\_studio\_connector/schema/ComplexType.xsd”. This file can be used to validate xml files and with some editors (e.g. Visual-Studio) and provide code-completion when writing the XML file.</span>

#### ComplexTypeDefinition-Element

Root Element. List of Complex types.

**<span lang="EN-US">Attributes:  
</span>**<span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">None</span>

<span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">**Children:**</span>

<table border="1" id="bkmrk-argument-occurrence-" style="border-collapse: collapse; width: 55.3086%;"><colgroup><col style="width: 28.8591%;"></col><col style="width: 33.7912%;"></col><col style="width: 37.5734%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(230, 126, 35);">**<span style="color: rgb(255, 255, 255);">Argument</span>**</td><td class="align-center" style="background-color: rgb(230, 126, 35);">**<span style="color: rgb(255, 255, 255);"><span lang="EN-US">Occurrence</span></span>**</td><td class="align-center" style="background-color: rgb(230, 126, 35);">**<span style="color: rgb(255, 255, 255);">Description</span>**</td></tr><tr><td>ComplexType</td><td>0 - \*</td><td>Complex type</td></tr></tbody></table>

#### <span style="mso-bookmark: _Toc135401528;"><span lang="EN-US">ComplexType-Element</span></span>

<span lang="EN-US">Defines a specific Complex type.</span>

**<span lang="EN-US">Attributes:</span>**

<table border="1" id="bkmrk-argument-occurrence--1" style="border-collapse: collapse; width: 73.3333%; height: 148.984px;"><colgroup><col style="width: 22.1284%;"></col><col style="width: 25%;"></col><col style="width: 52.8716%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="background-color: rgb(230, 126, 35); height: 29.7969px;">**<span style="color: rgb(255, 255, 255);">Argument</span>**</td><td class="align-center" style="background-color: rgb(230, 126, 35); height: 29.7969px;">**<span style="color: rgb(255, 255, 255);"><span lang="EN-US">Occurrence</span></span>**</td><td class="align-center" style="background-color: rgb(230, 126, 35); height: 29.7969px;">**<span style="color: rgb(255, 255, 255);">Description</span>**</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">native\_type</td><td style="height: 29.7969px;"><span lang="EN-US" style="color: black; mso-color-alt: windowtext;">Yes</span></td><td style="height: 29.7969px;">Native data type (e.g. Candera::Vector3)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">basic\_type</td><td style="height: 29.7969px;"><span lang="EN-US" style="color: black; mso-color-alt: windowtext;">Yes</span></td><td style="height: 29.7969px;">Corresponding basic type. Valid values are:  
- Double  
- Single  
- Int8  
- UInt8  
- Int16  
- UInt16  
- Int32  
- UInt32  
- Int64  
- UInt64  
- Bool</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">basic\_type\_length</td><td style="height: 29.7969px;"><span lang="EN-US" style="color: black; mso-color-alt: windowtext;">Yes</span></td><td style="height: 29.7969px;">Length of basic type  
-1: Dynamic size  
&gt;0: Fixed size</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">default\_value</td><td style="height: 29.7969px;"><span lang="EN-US" style="color: black; mso-color-alt: windowtext;">Yes</span></td><td style="height: 29.7969px;">Default value of type</td></tr></tbody></table>

**<span lang="EN-US">Children:  
</span>**<span lang="EN-US">None</span>

#### <span lang="EN-US">Sample</span>

<span lang="EN-US">Below a sample XML file is shown</span>

<span lang="EN-US"> </span>

<table cellpadding="0" cellspacing="0" id="bkmrk-%3C%3Fxml-version%3D%221.0%22%3F" style="width: 78.1481%;" width="100%"><tbody><tr><td style="width: 100%;"><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">&lt;?</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">xml</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">version</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">1.0</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">?&gt;</span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">&lt;</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">ComplexTypeDefinition</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">xsi:noNamespaceSchemaLocation</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">../../tools/Core/Schema/ComplexType.xsd</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">xmlns:xsi</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">http://www.w3.org/2001/XMLSchema-instance</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">&gt;</span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"><span style="mso-spacerun: yes;"> </span>&lt;</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">ComplexType</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">native\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Candera::Vector2</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Single</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type\_length</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">2</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">default\_value</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Candera::Vector2(0.0F, 0.0F)</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">/&gt;</span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"><span style="mso-spacerun: yes;"> </span>&lt;</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">ComplexType</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">native\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Candera::Vector3</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Single</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type\_length</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">3</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">default\_value</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Candera::Vector3(0.0F, 0.0F, 0.0F)</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">/&gt;</span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"><span style="mso-spacerun: yes;"> </span>&lt;</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">ComplexType</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">native\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">FeatStd::String</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">UInt8</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type\_length</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">-1</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">default\_value</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">FeatStd::String(</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">&amp;quot;&amp;quot;</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">)</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">/&gt;</span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"><span style="mso-spacerun: yes;"> </span>&lt;</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">ComplexType</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">native\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">Custom::ByteArray</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">UInt8</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">basic\_type\_length</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">-1</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">"</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;"> </span>

<span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: red;">default\_value</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">=</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: black;">""</span><span lang="EN-US" style="font-size: 8.0pt; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">/&gt;</span>

<span lang="EN-US" style="font-size: 8.0pt; line-height: 107%; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">&lt;/</span><span lang="EN-US" style="font-size: 8.0pt; line-height: 107%; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: #a31515;">ComplexTypeDefinition</span><span lang="EN-US" style="font-size: 8.0pt; line-height: 107%; font-family: 'Cascadia Mono'; mso-bidi-font-family: 'Cascadia Mono'; color: blue;">&gt;</span>

</td></tr></tbody></table>

---

<span lang="EN-US"> </span>

# Converter

<span lang="EN-US">For conversion between the basic type and actual complex type, conversion functions needs to be available. This function must be implemented inside the “ComplexType” namespace (additionally to the default namespace for the Interface) and within the “ComplexType.h/cpp” files. </span>

<span lang="EN-US">For fixed size data types the conversion looks like the following:</span>

<span lang="EN-US"> </span>

<table cellpadding="0" cellspacing="0" id="bkmrk-void-convert%28featstd" width="100%"><tbody><tr><td><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> Convert(FeatStd::</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">Float</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">, Candera::</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">Vector3</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">)</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">-&gt;SetX(</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\[0\]);</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">-&gt;SetY(</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\[1\]);</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">-&gt;SetZ(</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\[2\]);</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">}</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> Convert(Candera::</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">Vector3</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">, FeatStd::</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">Float</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">)</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\[0\] = </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">-&gt;GetX();</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\[1\] = </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">-&gt;GetY();</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\[2\] = </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">-&gt;GetZ();</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">}</span>

</td></tr></tbody></table>

<span lang="EN-US"> </span>

<span lang="EN-US">For login/tracing purposes a “PrintValue\_CUSTOM\_TYPE” function is also required. This function’s purpose is to print the given value to the provided buffer. The provided value is the basic type not the final complex type (e.g. float\[3\] instead of Candera::Vector3). The function must return the bytes written to the buffer.</span>

<span lang="EN-US"> </span>

<table cellpadding="0" cellspacing="0" id="bkmrk-featstd%3A%3Aint-printva" width="100%"><tbody><tr><td><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">FeatStd::Int PrintValue\_Candera\_Vector3(</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\* buffer, FeatStd::UInt32 bufferLength, </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">const</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\* value)</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">const</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> Candera::Float\* floatValues = (</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">const</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> Candera::Float \*)value;</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">return</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">FeatStd::Internal::String::StringPrintf<span style="background: white; mso-highlight: white;">((</span></span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">char</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\*)buffer, bufferLength, </span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: #a31515; background: white; mso-highlight: white; layout-grid-mode: line;">"\[%.2f, %.2f, %.2f\]"</span><span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">, floatValues\[0\], floatValues\[1\], floatValues\[2\]);</span>

<span lang="EN-US" style="font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">}</span>

</td></tr></tbody></table>

<span lang="EN-US"> </span>

<span lang="EN-US">For dynamic arrays (such as used for strings) the “DataBuffer” class will be used when the type is used in Data-Interfaces and the “Queue” class will be used if this type is used in actions or events. Additionally, a function that converts a void\* with size information to the target type is required in both cases.</span>

<span lang="EN-US"> </span>

<table cellpadding="0" cellspacing="0" id="bkmrk-void-convert%28featstd-1" width="100%"><tbody><tr><td><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> Convert(FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">String</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">, </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">Internal::DataBuffer</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">)</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; layout-grid-mode: line;">-&gt;CopyFrom<span style="color: gray;">(from</span><span style="color: black;">-&gt;GetCString(), </span><span style="color: gray;">from</span><span style="color: black;">-&gt;GetCharCount());</span></span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">}</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> Convert(FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">String</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">from</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">, </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">Internal::Queue</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">)</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; layout-grid-mode: line;">-&gt;WriteSizeData<span style="color: gray;">(from</span><span style="color: black;">-&gt;GetCString(), </span><span style="color: gray;">from</span><span style="color: black;">-&gt;GetCharCount());</span></span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">}</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> Convert(</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">const</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">data</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">, FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">UInt32</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">dataSize</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">, FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">String</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\* </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">)</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #6f008a; layout-grid-mode: line;">FEATSTD\_UNUSED</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">(</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">dataSize</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">);</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span>\*</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">to</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: teal; layout-grid-mode: line;">=</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">String</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">((FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #2b91af; layout-grid-mode: line;">TChar</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">\*)(</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: gray; layout-grid-mode: line;">data</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">));</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">}</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;"> </span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">FeatStd::Int PrintValue\_FeatStd\_String(</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\* buffer, FeatStd::SizeType bufferLength,</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">const</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">void</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\* value</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; color: black; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">, </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; color: black; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">FeatStd::</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; color: rgb(43, 145, 175); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">UInt32</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; color: black; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;"> valueSize</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; color: black; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">)</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">{</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"><span style="mso-spacerun: yes;"> </span></span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">return</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; layout-grid-mode: line;">FeatStd::Internal::String::StringPrintf<span style="background: white; mso-highlight: white;">((</span></span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">char</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\*)buffer, bufferLength, </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: #a31515; background: white; mso-highlight: white; layout-grid-mode: line;">"%s"</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">, (</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">const</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;"> </span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: blue; background: white; mso-highlight: white; layout-grid-mode: line;">char</span><span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">\*)value);</span>

<span lang="EN-US" style="font-size: 9.5pt; line-height: 107%; font-family: Consolas; mso-bidi-font-family: Consolas; color: black; background: white; mso-highlight: white; layout-grid-mode: line;">}</span>

</td></tr></tbody></table>

---

# Editor

<span lang="EN-US">An editor for the Native-Function definition can be found here:  
“</span><span class="DescriptionChar"><span lang="EN-US">cgi\_studio\_connector/bin/ComplexTypeEditor.exe</span></span><span lang="EN-US">”</span><span lang="EN-US"> </span>

<span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">If called with a file as first argument the editor will try to open the specified file.</span>

#### Complex-Types

<div drawio-diagram="6947"><img src="https://doc316en.candera.eu/uploads/images/drawio/2024-10/drawing-7-1728279282.png" alt=""/></div>

On the left side, Complex-Types can be added/removed and reordered using the respective buttons.

**Properties:**

<div drawio-diagram="8310"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-04/drawing-7-1744610699.png" alt=""/></div>

<table border="1" id="bkmrk-property-name-descri-20" style="border-collapse: collapse; width: 97.284%;"><colgroup><col style="width: 16.5394%;"></col><col style="width: 83.4606%;"></col></colgroup><tbody><tr><td class="align-center" style="background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**Property Name**</span></td><td class="align-center" style="background-color: rgb(230, 126, 35);"><span style="color: rgb(255, 255, 255);">**Description**</span></td></tr><tr><td>**Native Type** </td><td><span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">C/C++ name of the native type</span></td></tr><tr><td>**Basic Type**</td><td><span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">Basic type used to represent the Complex-Type. This type will be used when transferring data via the Interface.</span></td></tr><tr><td>**Length**</td><td><span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">Length of the Complex-Type based on the Basic-Type. To use to a dynamic length (e.g. an array) the “Dynamic” checkbox can be used.</span></td></tr><tr><td>**Default Value**</td><td><span lang="EN-US" style="font-size: 10.0pt; mso-bidi-font-size: 11.0pt; line-height: 107%; font-family: 'Daytona',sans-serif; mso-fareast-font-family: 游明朝; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: JA; mso-bidi-language: AR-SA;">Default value used for this Complex-Type.</span></td></tr></tbody></table>

---