root/doc/html/classTypedUserInfo.html @ 172

Revision 171, 18.7 kB (checked in by smidl, 16 years ago)

New documentation

Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>mixpp: TypedUserInfo&lt; T &gt; Class Template Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5<link href="tabs.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.6 -->
8<div class="navigation" id="top">
9  <div class="tabs">
10    <ul>
11      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
13      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
14      <li><a href="files.html"><span>Files</span></a></li>
15    </ul>
16  </div>
17  <div class="tabs">
18    <ul>
19      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
20      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
21      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
22    </ul>
23  </div>
24</div>
25<div class="contents">
26<h1>TypedUserInfo&lt; T &gt; Class Template Reference</h1><!-- doxytag: class="TypedUserInfo" --><!-- doxytag: inherits="UserInfo" -->TypeUserInfo is still an abstract class, but contrary to the <a class="el" href="classUserInfo.html" title="UserInfo is an abstract is for internal purposes only. Use CompoundUserInfo&lt;T&gt;...">UserInfo</a> class it is already templated. It serves as a bridge to non-abstract classes CompoundUserInfo&lt;T&gt; or ValuedUserInfo&lt;T&gt;
27<a href="#_details">More...</a>
28<p>
29<code>#include &lt;<a class="el" href="userinfo_8h-source.html">userinfo.h</a>&gt;</code>
30<p>
31<div class="dynheader">
32Inheritance diagram for TypedUserInfo&lt; T &gt;:</div>
33<div class="dynsection">
34<p><center><img src="classTypedUserInfo__inherit__graph.png" border="0" usemap="#TypedUserInfo_3_01T_01_4__inherit__map" alt="Inheritance graph"></center>
35<map name="TypedUserInfo_3_01T_01_4__inherit__map">
36<area shape="rect" href="classCompoundUserInfo.html" title="The main userinfo template class. You should derive this class whenever you need..." alt="" coords="564,69,745,96"><area shape="rect" href="classValuedUserInfo.html" title="The main userinfo template class. It should be derived whenever you need a new userinfo..." alt="" coords="577,272,732,299"><area shape="rect" href="classTypedUserInfo.html" title="TypedUserInfo\&lt; double \&gt;" alt="" coords="563,171,747,197"><area shape="rect" href="classTypedUserInfo.html" title="TypedUserInfo\&lt; int \&gt;" alt="" coords="577,221,732,248"><area shape="rect" href="classTypedUserInfo.html" title="TypedUserInfo\&lt; string \&gt;" alt="" coords="567,343,743,369"><area shape="rect" href="classTypedUserInfo.html" title="TypedUserInfo\&lt; Car \&gt;" alt="" coords="573,5,736,32"><area shape="rect" href="classTypedUserInfo.html" title="TypedUserInfo\&lt; bool \&gt;" alt="" coords="571,435,739,461"><area shape="rect" href="classTypedUserInfo.html" title="TypedUserInfo\&lt; Bike \&gt;" alt="" coords="571,120,739,147"><area shape="rect" href="classUserInfo.html" title="UserInfo is an abstract is for internal purposes only. Use CompoundUserInfo&lt;T&gt;..." alt="" coords="165,197,240,224"><area shape="rect" href="classBindingFrame.html" title="Abstract class declaring general properties of a frame for data binding." alt="" coords="7,197,113,224"><area shape="rect" href="classCompoundUserInfo.html" title="CompoundUserInfo\&lt; Car \&gt;" alt="" coords="873,27,1068,53"><area shape="rect" href="classCompoundUserInfo.html" title="CompoundUserInfo\&lt; Bike \&gt;" alt="" coords="871,99,1071,125"><area shape="rect" href="classValuedUserInfo.html" title="ValuedUserInfo\&lt; double \&gt;" alt="" coords="876,185,1065,212"><area shape="rect" href="classValuedUserInfo.html" title="ValuedUserInfo\&lt; int \&gt;" alt="" coords="889,253,1052,280"><area shape="rect" href="classValuedUserInfo.html" title="ValuedUserInfo\&lt; string \&gt;" alt="" coords="879,321,1063,348"><area shape="rect" href="classValuedUserInfo.html" title="ValuedUserInfo\&lt; bool \&gt;" alt="" coords="884,409,1057,436"></map>
37<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
38<div class="dynheader">
39Collaboration diagram for TypedUserInfo&lt; T &gt;:</div>
40<div class="dynsection">
41<p><center><img src="classTypedUserInfo__coll__graph.png" border="0" usemap="#TypedUserInfo_3_01T_01_4__coll__map" alt="Collaboration graph"></center>
42<map name="TypedUserInfo_3_01T_01_4__coll__map">
43<area shape="rect" href="classUserInfo.html" title="UserInfo is an abstract is for internal purposes only. Use CompoundUserInfo&lt;T&gt;..." alt="" coords="119,215,193,241"><area shape="rect" href="classBindingFrame.html" title="Abstract class declaring general properties of a frame for data binding." alt="" coords="24,103,131,129"><area shape="rect" href="classAssertXercesIsAlive.html" title="Class initializing Xerces library." alt="" coords="5,7,149,33"></map>
44<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
45
46<p>
47<a href="classTypedUserInfo-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
48<tr><td></td></tr>
49<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
50<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
51<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static T *&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classUserInfo.html#0f090c6525a3e8fb11634a553f467ede">Assembly</a> (DOMElement &amp;element, const string tagName)</td></tr>
52
53<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
54<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classUserInfo.html#1d402661b82feccb5265a70f65c242e1">Disassembly</a> (T &amp;<a class="el" href="classTypedUserInfo.html#c7ad10a9ff002383518155c965ade85c">instance</a>, DOMElement &amp;element, const string tagName, const string help)</td></tr>
55
56<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
57<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classUserInfo.html#917b2257abc31b94c89ef3cd270e4a42">Disassembly</a> (T &amp;<a class="el" href="classTypedUserInfo.html#c7ad10a9ff002383518155c965ade85c">instance</a>, DOMElement &amp;element, const string tagName)</td></tr>
58
59<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
60<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f4fe0532c1cdee3d6e00d96561efbdd5"></a><!-- doxytag: member="TypedUserInfo::TypedUserInfo" ref="f4fe0532c1cdee3d6e00d96561efbdd5" args="(const string &amp;userFriendlyTypeName)" -->
61&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypedUserInfo.html#f4fe0532c1cdee3d6e00d96561efbdd5">TypedUserInfo</a> (const string &amp;userFriendlyTypeName)</td></tr>
62
63<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">default constructor, which is intentionally declared as protected <br></td></tr>
64<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b1bb67b76a677f0cf33e923fd9147e9a"></a><!-- doxytag: member="TypedUserInfo::~TypedUserInfo" ref="b1bb67b76a677f0cf33e923fd9147e9a" args="()" -->
65&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypedUserInfo.html#b1bb67b76a677f0cf33e923fd9147e9a">~TypedUserInfo</a> ()</td></tr>
66
67<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">destructor <br></td></tr>
68<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2244bd5181c3d1e70f3a6be2b72e9424"></a><!-- doxytag: member="TypedUserInfo::XMLCh2str" ref="2244bd5181c3d1e70f3a6be2b72e9424" args="(const XMLCh *const XMLCh_str)" -->
69string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#2244bd5181c3d1e70f3a6be2b72e9424">XMLCh2str</a> (const XMLCh *const XMLCh_str)</td></tr>
70
71<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">function which transcodes Xerces' XMLCh-based strings into C++ strings <br></td></tr>
72<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="820e4df85c0dc545e3079e407fcdbbaa"></a><!-- doxytag: member="TypedUserInfo::removeSpaces" ref="820e4df85c0dc545e3079e407fcdbbaa" args="(const string &amp;str)" -->
73string&nbsp;</td><td class="memItemRight" valign="bottom"><b>removeSpaces</b> (const string &amp;<a class="el" href="classstr.html">str</a>)</td></tr>
74
75<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c6d068c261d4fc3a0a4d1305ade1483d"></a><!-- doxytag: member="TypedUserInfo::AssemblyComponentsFromXML" ref="c6d068c261d4fc3a0a4d1305ade1483d" args="(DOMElement &amp;element)=0" -->
76virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#c6d068c261d4fc3a0a4d1305ade1483d">AssemblyComponentsFromXML</a> (DOMElement &amp;element)=0</td></tr>
77
78<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method parse DOMElement, finds proper DOMNode and fills binded data accordingly. <br></td></tr>
79<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8d4dc5902ee71a473983d6a8fa3c8b7a"></a><!-- doxytag: member="TypedUserInfo::ReleaseMemory" ref="8d4dc5902ee71a473983d6a8fa3c8b7a" args="()" -->
80virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#8d4dc5902ee71a473983d6a8fa3c8b7a">ReleaseMemory</a> ()</td></tr>
81
82<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A method for releasing memory allocated within the 'AssemblyComponentsFromXML()' method. <br></td></tr>
83<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#0c207ed6e5a4c975ed5bc9a758a063ca">DisassemblyComponentsToXML</a> (DOMElement &amp;element)=0</td></tr>
84
85<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
86<tr><td class="memItemLeft" nowrap align="right" valign="top">static const <a class="el" href="classTypedUserInfo.html">TypedUserInfo</a>&lt; T &gt; &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypedUserInfo.html#c7ad10a9ff002383518155c965ade85c">instance</a></td></tr>
87
88</table>
89<hr><a name="_details"></a><h2>Detailed Description</h2>
90<h3>template&lt;typename T&gt;<br>
91 class TypedUserInfo&lt; T &gt;</h3>
92
93TypeUserInfo is still an abstract class, but contrary to the <a class="el" href="classUserInfo.html" title="UserInfo is an abstract is for internal purposes only. Use CompoundUserInfo&lt;T&gt;...">UserInfo</a> class it is already templated. It serves as a bridge to non-abstract classes CompoundUserInfo&lt;T&gt; or ValuedUserInfo&lt;T&gt;.
94<p>
95There are two important features of this class. The first is a primitive mechanism bounding typeless methods DisassemblyTypelessInstance, resp. AssemblyTypelessInstance, to their typed virtual versions DisassemblyInstance, resp. AssemblyInstance. And the other is the only public attribute of this class, called 'instance', which is to be filled by the only instance of this class. Indeed, it is not possible to create any other instance outside this class (or its descendant classes), as the constructor is intentionally protected. <hr><h2>Member Function Documentation</h2>
96<a class="anchor" name="0f090c6525a3e8fb11634a553f467ede"></a><!-- doxytag: member="TypedUserInfo::Assembly" ref="0f090c6525a3e8fb11634a553f467ede" args="(DOMElement &amp;element, const string tagName)" -->
97<div class="memitem">
98<div class="memproto">
99<div class="memtemplate">
100template&lt;class T&gt; </div>
101      <table class="memname">
102        <tr>
103          <td class="memname">static T* UserInfo::Assembly           </td>
104          <td>(</td>
105          <td class="paramtype">DOMElement &amp;&nbsp;</td>
106          <td class="paramname"> <em>element</em>, </td>
107        </tr>
108        <tr>
109          <td class="paramkey"></td>
110          <td></td>
111          <td class="paramtype">const string&nbsp;</td>
112          <td class="paramname"> <em>tagName</em></td><td>&nbsp;</td>
113        </tr>
114        <tr>
115          <td></td>
116          <td>)</td>
117          <td></td><td></td><td><code> [inline, static, inherited]</code></td>
118        </tr>
119      </table>
120</div>
121<div class="memdoc">
122
123<p>
124This 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.
125<p>References <a class="el" href="userinfo_8cpp-source.html#l00040">Attribute::Get()</a>, and <a class="el" href="userinfo_8h-source.html#l00152">Attribute::type</a>.</p>
126
127</div>
128</div><p>
129<a class="anchor" name="1d402661b82feccb5265a70f65c242e1"></a><!-- doxytag: member="TypedUserInfo::Disassembly" ref="1d402661b82feccb5265a70f65c242e1" args="(T &amp;instance, DOMElement &amp;element, const string tagName, const string help)" -->
130<div class="memitem">
131<div class="memproto">
132<div class="memtemplate">
133template&lt;class T&gt; </div>
134      <table class="memname">
135        <tr>
136          <td class="memname">static bool UserInfo::Disassembly           </td>
137          <td>(</td>
138          <td class="paramtype">T &amp;&nbsp;</td>
139          <td class="paramname"> <em>instance</em>, </td>
140        </tr>
141        <tr>
142          <td class="paramkey"></td>
143          <td></td>
144          <td class="paramtype">DOMElement &amp;&nbsp;</td>
145          <td class="paramname"> <em>element</em>, </td>
146        </tr>
147        <tr>
148          <td class="paramkey"></td>
149          <td></td>
150          <td class="paramtype">const string&nbsp;</td>
151          <td class="paramname"> <em>tagName</em>, </td>
152        </tr>
153        <tr>
154          <td class="paramkey"></td>
155          <td></td>
156          <td class="paramtype">const string&nbsp;</td>
157          <td class="paramname"> <em>help</em></td><td>&nbsp;</td>
158        </tr>
159        <tr>
160          <td></td>
161          <td>)</td>
162          <td></td><td></td><td><code> [inline, static, inherited]</code></td>
163        </tr>
164      </table>
165</div>
166<div class="memdoc">
167
168<p>
169This 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).
170<p>References <a class="el" href="userinfo_8h-source.html#l00149">Attribute::help</a>, <a class="el" href="userinfo_8cpp-source.html#l00046">Attribute::Set()</a>, and <a class="el" href="userinfo_8h-source.html#l00152">Attribute::type</a>.</p>
171
172<p>Referenced by <a class="el" href="userinfo_8h-source.html#l00327">UserInfo::Disassembly()</a>, and <a class="el" href="userinfo_8h-source.html#l00479">CompoundUserInfo&lt; T &gt;::BindedElement&lt; U &gt;::DisassemblyComponentsToXML()</a>.</p>
173
174</div>
175</div><p>
176<a class="anchor" name="917b2257abc31b94c89ef3cd270e4a42"></a><!-- doxytag: member="TypedUserInfo::Disassembly" ref="917b2257abc31b94c89ef3cd270e4a42" args="(T &amp;instance, DOMElement &amp;element, const string tagName)" -->
177<div class="memitem">
178<div class="memproto">
179<div class="memtemplate">
180template&lt;class T&gt; </div>
181      <table class="memname">
182        <tr>
183          <td class="memname">static bool UserInfo::Disassembly           </td>
184          <td>(</td>
185          <td class="paramtype">T &amp;&nbsp;</td>
186          <td class="paramname"> <em>instance</em>, </td>
187        </tr>
188        <tr>
189          <td class="paramkey"></td>
190          <td></td>
191          <td class="paramtype">DOMElement &amp;&nbsp;</td>
192          <td class="paramname"> <em>element</em>, </td>
193        </tr>
194        <tr>
195          <td class="paramkey"></td>
196          <td></td>
197          <td class="paramtype">const string&nbsp;</td>
198          <td class="paramname"> <em>tagName</em></td><td>&nbsp;</td>
199        </tr>
200        <tr>
201          <td></td>
202          <td>)</td>
203          <td></td><td></td><td><code> [inline, static, inherited]</code></td>
204        </tr>
205      </table>
206</div>
207<div class="memdoc">
208
209<p>
210This 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.
211<p>References <a class="el" href="userinfo_8h-source.html#l00297">UserInfo::Disassembly()</a>.</p>
212
213</div>
214</div><p>
215<a class="anchor" name="0c207ed6e5a4c975ed5bc9a758a063ca"></a><!-- doxytag: member="TypedUserInfo::DisassemblyComponentsToXML" ref="0c207ed6e5a4c975ed5bc9a758a063ca" args="(DOMElement &amp;element)=0" -->
216<div class="memitem">
217<div class="memproto">
218      <table class="memname">
219        <tr>
220          <td class="memname">virtual bool BindingFrame::DisassemblyComponentsToXML           </td>
221          <td>(</td>
222          <td class="paramtype">DOMElement &amp;&nbsp;</td>
223          <td class="paramname"> <em>element</em>          </td>
224          <td>&nbsp;)&nbsp;</td>
225          <td><code> [pure virtual, inherited]</code></td>
226        </tr>
227      </table>
228</div>
229<div class="memdoc">
230
231<p>
232This method reads binded data, fill them into a new DOMNode, which then appends to the passed DOMElement
233<p>Implemented in <a class="el" href="classCompoundUserInfo_1_1BindedElement.html#6ef55cedb98f5d2dbcf92730f2fed939">CompoundUserInfo&lt; T &gt;::BindedElement&lt; U &gt;</a>.</p>
234
235</div>
236</div><p>
237<hr><h2>Member Data Documentation</h2>
238<a class="anchor" name="c7ad10a9ff002383518155c965ade85c"></a><!-- doxytag: member="TypedUserInfo::instance" ref="c7ad10a9ff002383518155c965ade85c" args="" -->
239<div class="memitem">
240<div class="memproto">
241<div class="memtemplate">
242template&lt;typename T&gt; </div>
243      <table class="memname">
244        <tr>
245          <td class="memname">const <a class="el" href="classTypedUserInfo.html">TypedUserInfo</a>&lt;T&gt;&amp; <a class="el" href="classTypedUserInfo.html">TypedUserInfo</a>&lt; T &gt;::<a class="el" href="classTypedUserInfo.html#c7ad10a9ff002383518155c965ade85c">instance</a><code> [static, protected]</code>          </td>
246        </tr>
247      </table>
248</div>
249<div class="memdoc">
250
251<p>
252the only instance of this class (each type T has its own instance) which is used as a factory for processing related userinfos
253</div>
254</div><p>
255<hr>The documentation for this class was generated from the following file:<ul>
256<li>work/git/mixpp/bdm/<a class="el" href="userinfo_8h-source.html">userinfo.h</a></ul>
257</div>
258<hr size="1"><address style="text-align: right;"><small>Generated on Tue Sep 23 16:00:56 2008 for mixpp by&nbsp;
259<a href="http://www.doxygen.org/index.html">
260<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
261</body>
262</html>
Note: See TracBrowser for help on using the browser.