<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.5.6">
  <compounddef id="classCompoundUserInfo" kind="class" prot="public">
    <compoundname>CompoundUserInfo</compoundname>
    <basecompoundref refid="classTypedUserInfo" prot="public" virt="non-virtual">TypedUserInfo&lt; T &gt;</basecompoundref>
    <includes refid="userinfo_8h" local="no">userinfo.h</includes>
    <innerclass refid="classCompoundUserInfo_1_1BindedElement" prot="protected">CompoundUserInfo::BindedElement</innerclass>
    <templateparamlist>
      <param>
        <type>typename</type>
        <declname>T</declname>
        <defname>T</defname>
      </param>
    </templateparamlist>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classCompoundUserInfo_1ea2c8231586e2e69711f2187589f63bf" prot="private" static="no" mutable="no">
        <type>vector&lt; <ref refid="classBindingFrame" kindref="compound">BindingFrame</ref> * &gt;</type>
        <definition>vector&lt;BindingFrame*&gt; CompoundUserInfo&lt; T &gt;::bindedElements</definition>
        <argsstring></argsstring>
        <name>bindedElements</name>
        <briefdescription>
<para>Elements binding inner XML tags to related userinfos. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="424" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="424" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="private-func">
      <memberdef kind="function" id="classCompoundUserInfo_11d62c74d5f4a83561371376be0f587be" prot="private" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>void</type>
        <definition>void CompoundUserInfo&lt; T &gt;::AssemblyComponentsFromXML</definition>
        <argsstring>(DOMElement &amp;element)</argsstring>
        <name>AssemblyComponentsFromXML</name>
        <reimplements refid="classBindingFrame_1c6d068c261d4fc3a0a4d1305ade1483d">AssemblyComponentsFromXML</reimplements>
        <param>
          <type>DOMElement &amp;</type>
          <declname>element</declname>
        </param>
        <briefdescription>
<para>This method parse DOMElement, finds proper DOMNode and fills binded data accordingly. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="488" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="487" bodyend="491"/>
      </memberdef>
      <memberdef kind="function" id="classCompoundUserInfo_1db347fdb53198e3a44ecdeddced6e273" prot="private" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>void</type>
        <definition>void CompoundUserInfo&lt; T &gt;::ReleaseMemory</definition>
        <argsstring>()</argsstring>
        <name>ReleaseMemory</name>
        <reimplements refid="classBindingFrame_18d4dc5902ee71a473983d6a8fa3c8b7a">ReleaseMemory</reimplements>
        <briefdescription>
<para>A method for releasing memory allocated within the &apos;AssemblyComponentsFromXML()&apos; method. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="494" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="493" bodyend="497"/>
      </memberdef>
      <memberdef kind="function" id="classCompoundUserInfo_1fc724ac908f5c8c6a0da432f50ae6cbb" prot="private" static="no" const="no" explicit="no" inline="yes" virt="virtual">
        <type>bool</type>
        <definition>bool CompoundUserInfo&lt; T &gt;::DisassemblyComponentsToXML</definition>
        <argsstring>(DOMElement &amp;element)</argsstring>
        <name>DisassemblyComponentsToXML</name>
        <reimplements refid="classBindingFrame_10c207ed6e5a4c975ed5bc9a758a063ca">DisassemblyComponentsToXML</reimplements>
        <param>
          <type>DOMElement &amp;</type>
          <declname>element</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>This method reads binded data, fill them into a new DOMNode, which then appends to the passed DOMElement </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="500" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="499" bodyend="505"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="protected-func">
      <memberdef kind="function" id="classCompoundUserInfo_1e2265e447e2f48550c5d8d479119bbb3" prot="protected" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>CompoundUserInfo&lt; T &gt;::CompoundUserInfo</definition>
        <argsstring>(string userFriendlyTypeName)</argsstring>
        <name>CompoundUserInfo</name>
        <param>
          <type>string</type>
          <declname>userFriendlyTypeName</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="511"/>
      </memberdef>
      <memberdef kind="function" id="classBindingFrame_12244bd5181c3d1e70f3a6be2b72e9424" prot="protected" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>string</type>
        <definition>string BindingFrame::XMLCh2str</definition>
        <argsstring>(const XMLCh *const XMLCh_str)</argsstring>
        <name>XMLCh2str</name>
        <param>
          <type>const XMLCh *const </type>
          <declname>XMLCh_str</declname>
        </param>
        <briefdescription>
<para>function which transcodes Xerces&apos; XMLCh-based strings into C++ strings </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="99" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.cpp" bodystart="20" bodyend="26"/>
      </memberdef>
      <memberdef kind="function" id="classBindingFrame_1820e4df85c0dc545e3079e407fcdbbaa" prot="protected" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>string</type>
        <definition>string BindingFrame::removeSpaces</definition>
        <argsstring>(const string &amp;str)</argsstring>
        <name>removeSpaces</name>
        <param>
          <type>const string &amp;</type>
          <declname>str</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="102" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="101" bodyend="108"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="protected-static-attrib">
      <memberdef kind="variable" id="classTypedUserInfo_1c7ad10a9ff002383518155c965ade85c" prot="protected" static="yes" mutable="no">
        <type>const <ref refid="classTypedUserInfo" kindref="compound">TypedUserInfo</ref>&lt; T &gt; &amp;</type>
        <definition>const TypedUserInfo&lt;T&gt;&amp; TypedUserInfo&lt; T &gt;::instance</definition>
        <argsstring></argsstring>
        <name>instance</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>the only instance of this class (each type T has its own instance) which is used as a factory for processing related userinfos </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="387" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="387" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-static-func">
      <memberdef kind="function" id="classUserInfo_10f090c6525a3e8fb11634a553f467ede" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>class</type>
            <declname>T</declname>
            <defname>T</defname>
          </param>
        </templateparamlist>
        <type>T *</type>
        <definition>static T* UserInfo::Assembly</definition>
        <argsstring>(DOMElement &amp;element, const string tagName)</argsstring>
        <name>Assembly</name>
        <param>
          <type>DOMElement &amp;</type>
          <declname>element</declname>
        </param>
        <param>
          <type>const string</type>
          <declname>tagName</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>This methods tries to assembly a new instance of type T (or some of its descendant types) according to a data stored in a DOMNode named tagName within a child nodes of the passed element. If an error occurs, it returns a NULL pointer. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="227" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="226" bodyend="291"/>
        <references refid="classAttribute_16ebbcaaf9c90a979e645f469e02bb940" compoundref="userinfo_8cpp" startline="40" endline="44">Attribute::Get</references>
        <references refid="classAttribute_15f6cce980606fa8943857204aacb5478" compoundref="userinfo_8h" startline="152">Attribute::type</references>
      </memberdef>
      <memberdef kind="function" id="classUserInfo_11d402661b82feccb5265a70f65c242e1" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>class</type>
            <declname>T</declname>
            <defname>T</defname>
          </param>
        </templateparamlist>
        <type>bool</type>
        <definition>static bool UserInfo::Disassembly</definition>
        <argsstring>(T &amp;instance, DOMElement &amp;element, const string tagName, const string help)</argsstring>
        <name>Disassembly</name>
        <param>
          <type>T &amp;</type>
          <declname>instance</declname>
        </param>
        <param>
          <type>DOMElement &amp;</type>
          <declname>element</declname>
        </param>
        <param>
          <type>const string</type>
          <declname>tagName</declname>
        </param>
        <param>
          <type>const string</type>
          <declname>help</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>This methods tries to disassembly an instance of type T (or some of its descendant types) and build DOM tree accordingly. Then, it creates a new DOMNode named according tagName and connecti it to the passed DOMElement as a new child node (with a help attribute filled). </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="298" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="297" bodyend="321"/>
        <references refid="classAttribute_1d6474fd976f505e70e10c497199c6770" compoundref="userinfo_8h" startline="149">Attribute::help</references>
        <references refid="classAttribute_1e011d84e2e3c40390807a8b8e58e3c35" compoundref="userinfo_8cpp" startline="46" endline="52">Attribute::Set</references>
        <references refid="classAttribute_15f6cce980606fa8943857204aacb5478" compoundref="userinfo_8h" startline="152">Attribute::type</references>
        <referencedby refid="classUserInfo_1917b2257abc31b94c89ef3cd270e4a42" compoundref="userinfo_8h" startline="327" endline="330">UserInfo::Disassembly</referencedby>
        <referencedby refid="classCompoundUserInfo_1_1BindedElement_16ef55cedb98f5d2dbcf92730f2fed939" compoundref="userinfo_8h" startline="479" endline="482">CompoundUserInfo&lt; T &gt;::BindedElement&lt; U &gt;::DisassemblyComponentsToXML</referencedby>
      </memberdef>
      <memberdef kind="function" id="classUserInfo_1917b2257abc31b94c89ef3cd270e4a42" prot="public" static="yes" const="no" explicit="no" inline="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>class</type>
            <declname>T</declname>
            <defname>T</defname>
          </param>
        </templateparamlist>
        <type>bool</type>
        <definition>static bool UserInfo::Disassembly</definition>
        <argsstring>(T &amp;instance, DOMElement &amp;element, const string tagName)</argsstring>
        <name>Disassembly</name>
        <param>
          <type>T &amp;</type>
          <declname>instance</declname>
        </param>
        <param>
          <type>DOMElement &amp;</type>
          <declname>element</declname>
        </param>
        <param>
          <type>const string</type>
          <declname>tagName</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>This methods tries to disassembly an instance of type T (or some of its descendant types) and build DOM tree accordingly. Then, it creates a new DOMNode named according tagName and connecti it to the passed DOMElement as a new child node. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="328" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="327" bodyend="330"/>
        <references refid="classUserInfo_11d402661b82feccb5265a70f65c242e1" compoundref="userinfo_8h" startline="297" endline="321">UserInfo::Disassembly</references>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>The main userinfo template class. You should derive this class whenever you need a new userinfo of a class which is compound from smaller elements (all having its own userinfo class prepared). </para>    </briefdescription>
    <detaileddescription>
<para>To bind some inner element to its own userinfo class, and also to automate its assembling and disassembling, it is necessary to create a instance of an inner templated class BindedElement&lt;T&gt;. Those attributes have to be initialized in constructor of a new compound userinfo this way:</para><para><programlisting><codeline><highlight class="keyword">class<sp/></highlight><highlight class="normal">BikeUI:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="classCompoundUserInfo" kindref="compound" tooltip="The main userinfo template class. You should derive this class whenever you need...">CompoundUserInfo</ref>&lt;Bike&gt;</highlight></codeline>
<codeline><highlight class="normal">{</highlight></codeline>
<codeline><highlight class="normal"></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>BindedElement&lt;int&gt;<sp/>year;<sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>BindedElement&lt;bool&gt;<sp/>lights;<sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>BindedElement&lt;string&gt;<sp/>manufacturer;<sp/></highlight></codeline>
<codeline><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>BikeUI()</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>:<ref refid="classCompoundUserInfo" kindref="compound" tooltip="The main userinfo template class. You should derive this class whenever you need...">CompoundUserInfo</ref>&lt;Bike&gt;(</highlight><highlight class="stringliteral">&quot;bike&quot;</highlight><highlight class="normal">),</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>year(<sp/>this,<sp/></highlight><highlight class="stringliteral">&quot;year&quot;</highlight><highlight class="normal">,<sp/>0<sp/>),</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>lights(<sp/>this,<sp/></highlight><highlight class="stringliteral">&quot;electric<sp/>lights&quot;</highlight><highlight class="normal">,<sp/>false<sp/>),<sp/></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>manufacturer(<sp/>this,<sp/></highlight><highlight class="stringliteral">&quot;manufacturer&quot;</highlight><highlight class="normal">,<sp/></highlight><highlight class="stringliteral">&quot;unknown&quot;</highlight><highlight class="normal">)</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline><highlight class="normal"></highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>...</highlight></codeline>
<codeline><highlight class="normal">}</highlight></codeline>
</programlisting> </para>    </detaileddescription>
    <inheritancegraph>
      <node id="774">
        <label>BikeUI</label>
        <childnode refid="773" relation="public-inheritance">
        </childnode>
      </node>
      <node id="768">
        <label>TypedUserInfo&lt; T &gt;</label>
        <link refid="classTypedUserInfo"/>
        <childnode refid="769" relation="public-inheritance">
        </childnode>
      </node>
      <node id="773">
        <label>CompoundUserInfo&lt; Bike &gt;</label>
        <link refid="classCompoundUserInfo"/>
        <childnode refid="767" relation="template-instance">
          <edgelabel>&lt; Bike &gt;</edgelabel>
        </childnode>
      </node>
      <node id="771">
        <label>CompoundUserInfo&lt; Car &gt;</label>
        <link refid="classCompoundUserInfo"/>
        <childnode refid="767" relation="template-instance">
          <edgelabel>&lt; Car &gt;</edgelabel>
        </childnode>
      </node>
      <node id="767">
        <label>CompoundUserInfo&lt; T &gt;</label>
        <link refid="classCompoundUserInfo"/>
        <childnode refid="768" relation="public-inheritance">
        </childnode>
      </node>
      <node id="769">
        <label>UserInfo</label>
        <link refid="classUserInfo"/>
        <childnode refid="770" relation="protected-inheritance">
        </childnode>
      </node>
      <node id="772">
        <label>CarUI</label>
        <childnode refid="771" relation="public-inheritance">
        </childnode>
      </node>
      <node id="770">
        <label>BindingFrame</label>
        <link refid="classBindingFrame"/>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="779">
        <label>AssertXercesIsAlive</label>
        <link refid="classAssertXercesIsAlive"/>
      </node>
      <node id="776">
        <label>TypedUserInfo&lt; T &gt;</label>
        <link refid="classTypedUserInfo"/>
        <childnode refid="777" relation="public-inheritance">
        </childnode>
      </node>
      <node id="780">
        <label>string</label>
      </node>
      <node id="775">
        <label>CompoundUserInfo&lt; T &gt;</label>
        <link refid="classCompoundUserInfo"/>
        <childnode refid="776" relation="public-inheritance">
        </childnode>
      </node>
      <node id="777">
        <label>UserInfo</label>
        <link refid="classUserInfo"/>
        <childnode refid="778" relation="protected-inheritance">
        </childnode>
        <childnode refid="780" relation="usage">
          <edgelabel>userFriendlyTypeName
typeNameByRTTI</edgelabel>
        </childnode>
      </node>
      <node id="778">
        <label>BindingFrame</label>
        <link refid="classBindingFrame"/>
        <childnode refid="779" relation="usage">
          <edgelabel>dummy</edgelabel>
        </childnode>
      </node>
    </collaborationgraph>
    <location file="/home/smidl/work/git/mixpp/bdm/userinfo.h" line="421" bodyfile="/home/smidl/work/git/mixpp/bdm/userinfo.h" bodystart="420" bodyend="514"/>
    <listofallmembers>
      <member refid="classUserInfo_10f090c6525a3e8fb11634a553f467ede" prot="public" virt="non-virtual"><scope>CompoundUserInfo</scope><name>Assembly</name></member>
      <member refid="classCompoundUserInfo_11d62c74d5f4a83561371376be0f587be" prot="private" virt="virtual"><scope>CompoundUserInfo</scope><name>AssemblyComponentsFromXML</name></member>
      <member refid="classCompoundUserInfo_1ea2c8231586e2e69711f2187589f63bf" prot="private" virt="non-virtual"><scope>CompoundUserInfo</scope><name>bindedElements</name></member>
      <member refid="classBindingFrame_165bec8fcde1865e2e211f42ca52a816f" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>BindingFrame</name></member>
      <member refid="classCompoundUserInfo_1e2265e447e2f48550c5d8d479119bbb3" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>CompoundUserInfo</name></member>
      <member refid="classUserInfo_11d402661b82feccb5265a70f65c242e1" prot="public" virt="non-virtual"><scope>CompoundUserInfo</scope><name>Disassembly</name></member>
      <member refid="classUserInfo_1917b2257abc31b94c89ef3cd270e4a42" prot="public" virt="non-virtual"><scope>CompoundUserInfo</scope><name>Disassembly</name></member>
      <member refid="classCompoundUserInfo_1fc724ac908f5c8c6a0da432f50ae6cbb" prot="private" virt="virtual"><scope>CompoundUserInfo</scope><name>DisassemblyComponentsToXML</name></member>
      <member refid="classTypedUserInfo_1c7ad10a9ff002383518155c965ade85c" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>instance</name></member>
      <member refid="classCompoundUserInfo_1db347fdb53198e3a44ecdeddced6e273" prot="private" virt="virtual"><scope>CompoundUserInfo</scope><name>ReleaseMemory</name></member>
      <member refid="classBindingFrame_1820e4df85c0dc545e3079e407fcdbbaa" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>removeSpaces</name></member>
      <member refid="classTypedUserInfo_1f4fe0532c1cdee3d6e00d96561efbdd5" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>TypedUserInfo</name></member>
      <member refid="classUserInfo_10bccb19c6b819cf9f763e985c573ae8f" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>UserInfo</name></member>
      <member refid="classBindingFrame_12244bd5181c3d1e70f3a6be2b72e9424" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>XMLCh2str</name></member>
      <member refid="classTypedUserInfo_1b1bb67b76a677f0cf33e923fd9147e9a" prot="protected" virt="non-virtual"><scope>CompoundUserInfo</scope><name>~TypedUserInfo</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
