root/doc/html/classTypedUserInfo.html @ 261

Revision 261, 18.9 kB (checked in by smidl, 16 years ago)

doc

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><a href="modules.html"><span>Modules</span></a></li>
14      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
15      <li class="current"><a href="classes.html"><span>Classes</span></a></li>
16      <li><a href="files.html"><span>Files</span></a></li>
17    </ul>
18  </div>
19  <div class="tabs">
20    <ul>
21      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
22      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
23      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
24      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
25    </ul>
26  </div>
27</div>
28<div class="contents">
29<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;
30<a href="#_details">More...</a>
31<p>
32<code>#include &lt;<a class="el" href="userinfo_8h-source.html">userinfo.h</a>&gt;</code>
33<p>
34<div class="dynheader">
35Inheritance diagram for TypedUserInfo&lt; T &gt;:</div>
36<div class="dynsection">
37<p><center><img src="classTypedUserInfo__inherit__graph.png" border="0" usemap="#TypedUserInfo_3_01T_01_4__inherit__map" alt="Inheritance graph"></center>
38<map name="TypedUserInfo_3_01T_01_4__inherit__map">
39<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>
40<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
41<div class="dynheader">
42Collaboration diagram for TypedUserInfo&lt; T &gt;:</div>
43<div class="dynsection">
44<p><center><img src="classTypedUserInfo__coll__graph.png" border="0" usemap="#TypedUserInfo_3_01T_01_4__coll__map" alt="Collaboration graph"></center>
45<map name="TypedUserInfo_3_01T_01_4__coll__map">
46<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>
47<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
48
49<p>
50<a href="classTypedUserInfo-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
51<tr><td></td></tr>
52<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
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 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>
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#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>
58
59<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T&gt; </td></tr>
60<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>
61
62<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
63<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)" -->
64&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypedUserInfo.html#f4fe0532c1cdee3d6e00d96561efbdd5">TypedUserInfo</a> (const string &amp;userFriendlyTypeName)</td></tr>
65
66<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">default constructor, which is intentionally declared as protected <br></td></tr>
67<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b1bb67b76a677f0cf33e923fd9147e9a"></a><!-- doxytag: member="TypedUserInfo::~TypedUserInfo" ref="b1bb67b76a677f0cf33e923fd9147e9a" args="()" -->
68&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypedUserInfo.html#b1bb67b76a677f0cf33e923fd9147e9a">~TypedUserInfo</a> ()</td></tr>
69
70<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">destructor <br></td></tr>
71<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)" -->
72string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#2244bd5181c3d1e70f3a6be2b72e9424">XMLCh2str</a> (const XMLCh *const XMLCh_str)</td></tr>
73
74<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">function which transcodes Xerces' XMLCh-based strings into C++ strings <br></td></tr>
75<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)" -->
76string&nbsp;</td><td class="memItemRight" valign="bottom"><b>removeSpaces</b> (const string &amp;str)</td></tr>
77
78<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" -->
79virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#c6d068c261d4fc3a0a4d1305ade1483d">AssemblyComponentsFromXML</a> (DOMElement &amp;element)=0</td></tr>
80
81<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This method parse DOMElement, finds proper DOMNode and fills binded data accordingly. <br></td></tr>
82<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8d4dc5902ee71a473983d6a8fa3c8b7a"></a><!-- doxytag: member="TypedUserInfo::ReleaseMemory" ref="8d4dc5902ee71a473983d6a8fa3c8b7a" args="()" -->
83virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBindingFrame.html#8d4dc5902ee71a473983d6a8fa3c8b7a">ReleaseMemory</a> ()</td></tr>
84
85<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A method for releasing memory allocated within the 'AssemblyComponentsFromXML()' method. <br></td></tr>
86<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>
87
88<tr><td colspan="2"><br><h2>Static Protected Attributes</h2></td></tr>
89<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>
90
91</table>
92<hr><a name="_details"></a><h2>Detailed Description</h2>
93<h3>template&lt;typename T&gt;<br>
94 class TypedUserInfo&lt; T &gt;</h3>
95
96TypeUserInfo 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;.
97<p>
98There 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>
99<a class="anchor" name="0f090c6525a3e8fb11634a553f467ede"></a><!-- doxytag: member="TypedUserInfo::Assembly" ref="0f090c6525a3e8fb11634a553f467ede" args="(DOMElement &amp;element, const string tagName)" -->
100<div class="memitem">
101<div class="memproto">
102<div class="memtemplate">
103template&lt;class T&gt; </div>
104      <table class="memname">
105        <tr>
106          <td class="memname">static T* UserInfo::Assembly           </td>
107          <td>(</td>
108          <td class="paramtype">DOMElement &amp;&nbsp;</td>
109          <td class="paramname"> <em>element</em>, </td>
110        </tr>
111        <tr>
112          <td class="paramkey"></td>
113          <td></td>
114          <td class="paramtype">const string&nbsp;</td>
115          <td class="paramname"> <em>tagName</em></td><td>&nbsp;</td>
116        </tr>
117        <tr>
118          <td></td>
119          <td>)</td>
120          <td></td><td></td><td><code> [inline, static, inherited]</code></td>
121        </tr>
122      </table>
123</div>
124<div class="memdoc">
125
126<p>
127This 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.
128<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>
129
130</div>
131</div><p>
132<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)" -->
133<div class="memitem">
134<div class="memproto">
135<div class="memtemplate">
136template&lt;class T&gt; </div>
137      <table class="memname">
138        <tr>
139          <td class="memname">static bool UserInfo::Disassembly           </td>
140          <td>(</td>
141          <td class="paramtype">T &amp;&nbsp;</td>
142          <td class="paramname"> <em>instance</em>, </td>
143        </tr>
144        <tr>
145          <td class="paramkey"></td>
146          <td></td>
147          <td class="paramtype">DOMElement &amp;&nbsp;</td>
148          <td class="paramname"> <em>element</em>, </td>
149        </tr>
150        <tr>
151          <td class="paramkey"></td>
152          <td></td>
153          <td class="paramtype">const string&nbsp;</td>
154          <td class="paramname"> <em>tagName</em>, </td>
155        </tr>
156        <tr>
157          <td class="paramkey"></td>
158          <td></td>
159          <td class="paramtype">const string&nbsp;</td>
160          <td class="paramname"> <em>help</em></td><td>&nbsp;</td>
161        </tr>
162        <tr>
163          <td></td>
164          <td>)</td>
165          <td></td><td></td><td><code> [inline, static, inherited]</code></td>
166        </tr>
167      </table>
168</div>
169<div class="memdoc">
170
171<p>
172This 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).
173<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>
174
175<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>
176
177</div>
178</div><p>
179<a class="anchor" name="917b2257abc31b94c89ef3cd270e4a42"></a><!-- doxytag: member="TypedUserInfo::Disassembly" ref="917b2257abc31b94c89ef3cd270e4a42" args="(T &amp;instance, DOMElement &amp;element, const string tagName)" -->
180<div class="memitem">
181<div class="memproto">
182<div class="memtemplate">
183template&lt;class T&gt; </div>
184      <table class="memname">
185        <tr>
186          <td class="memname">static bool UserInfo::Disassembly           </td>
187          <td>(</td>
188          <td class="paramtype">T &amp;&nbsp;</td>
189          <td class="paramname"> <em>instance</em>, </td>
190        </tr>
191        <tr>
192          <td class="paramkey"></td>
193          <td></td>
194          <td class="paramtype">DOMElement &amp;&nbsp;</td>
195          <td class="paramname"> <em>element</em>, </td>
196        </tr>
197        <tr>
198          <td class="paramkey"></td>
199          <td></td>
200          <td class="paramtype">const string&nbsp;</td>
201          <td class="paramname"> <em>tagName</em></td><td>&nbsp;</td>
202        </tr>
203        <tr>
204          <td></td>
205          <td>)</td>
206          <td></td><td></td><td><code> [inline, static, inherited]</code></td>
207        </tr>
208      </table>
209</div>
210<div class="memdoc">
211
212<p>
213This 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.
214<p>References <a class="el" href="userinfo_8h-source.html#l00297">UserInfo::Disassembly()</a>.</p>
215
216</div>
217</div><p>
218<a class="anchor" name="0c207ed6e5a4c975ed5bc9a758a063ca"></a><!-- doxytag: member="TypedUserInfo::DisassemblyComponentsToXML" ref="0c207ed6e5a4c975ed5bc9a758a063ca" args="(DOMElement &amp;element)=0" -->
219<div class="memitem">
220<div class="memproto">
221      <table class="memname">
222        <tr>
223          <td class="memname">virtual bool BindingFrame::DisassemblyComponentsToXML           </td>
224          <td>(</td>
225          <td class="paramtype">DOMElement &amp;&nbsp;</td>
226          <td class="paramname"> <em>element</em>          </td>
227          <td>&nbsp;)&nbsp;</td>
228          <td><code> [pure virtual, inherited]</code></td>
229        </tr>
230      </table>
231</div>
232<div class="memdoc">
233
234<p>
235This method reads binded data, fill them into a new DOMNode, which then appends to the passed DOMElement
236<p>Implemented in <a class="el" href="classCompoundUserInfo_1_1BindedElement.html#6ef55cedb98f5d2dbcf92730f2fed939">CompoundUserInfo&lt; T &gt;::BindedElement&lt; U &gt;</a>.</p>
237
238</div>
239</div><p>
240<hr><h2>Member Data Documentation</h2>
241<a class="anchor" name="c7ad10a9ff002383518155c965ade85c"></a><!-- doxytag: member="TypedUserInfo::instance" ref="c7ad10a9ff002383518155c965ade85c" args="" -->
242<div class="memitem">
243<div class="memproto">
244<div class="memtemplate">
245template&lt;typename T&gt; </div>
246      <table class="memname">
247        <tr>
248          <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>
249        </tr>
250      </table>
251</div>
252<div class="memdoc">
253
254<p>
255the only instance of this class (each type T has its own instance) which is used as a factory for processing related userinfos
256</div>
257</div><p>
258<hr>The documentation for this class was generated from the following file:<ul>
259<li><a class="el" href="userinfo_8h-source.html">userinfo.h</a></ul>
260</div>
261<hr size="1"><address style="text-align: right;"><small>Generated on Fri Feb 6 15:29:49 2009 for mixpp by&nbsp;
262<a href="http://www.doxygen.org/index.html">
263<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
264</body>
265</html>
Note: See TracBrowser for help on using the browser.