Tarball tree for barry-0.15.tar.bz2
[barry.git] / doc / www / doxygen / html / classBarry_1_1RecordBuilder.html
blobe1b91a9d3e201f35b2289608d05d750914879067
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>Barry: Barry::RecordBuilder&lt; RecordT, StorageT &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="modules.html"><span>Modules</span></a></li>
13 <li><a href="namespaces.html"><span>Namespaces</span></a></li>
14 <li class="current"><a href="classes.html"><span>Classes</span></a></li>
15 <li><a href="files.html"><span>Files</span></a></li>
16 <li><a href="dirs.html"><span>Directories</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 class="navpath"><a class="el" href="namespaceBarry.html">Barry</a>::<a class="el" href="classBarry_1_1RecordBuilder.html">RecordBuilder</a>
28 </div>
29 </div>
30 <div class="contents">
31 <h1>Barry::RecordBuilder&lt; RecordT, StorageT &gt; Class Template Reference</h1><!-- doxytag: class="Barry::RecordBuilder" --><!-- doxytag: inherits="Barry::Builder" --><code>#include &lt;<a class="el" href="builder_8h-source.html">builder.h</a>&gt;</code>
32 <p>
33 <div class="dynheader">
34 Inheritance diagram for Barry::RecordBuilder&lt; RecordT, StorageT &gt;:</div>
35 <div class="dynsection">
36 <p><center><img src="classBarry_1_1RecordBuilder__inherit__graph.png" border="0" usemap="#Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4__inherit__map" alt="Inheritance graph"></center>
37 <map name="Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4__inherit__map">
38 <area shape="rect" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy." alt="" coords="93,5,192,32"></map>
39 <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
40 <div class="dynheader">
41 Collaboration diagram for Barry::RecordBuilder&lt; RecordT, StorageT &gt;:</div>
42 <div class="dynsection">
43 <p><center><img src="classBarry_1_1RecordBuilder__coll__graph.png" border="0" usemap="#Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4__coll__map" alt="Collaboration graph"></center>
44 <map name="Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4__coll__map">
45 <area shape="rect" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy." alt="" coords="5,5,104,32"></map>
46 <center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
48 <p>
49 <a href="classBarry_1_1RecordBuilder-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
50 <h3>template&lt;class RecordT, class StorageT&gt;<br>
51 class Barry::RecordBuilder&lt; RecordT, StorageT &gt;</h3>
53 Template class for easy creation of specific protocol packet builder objects.
54 <p>
55 This template takes the following template arguments:<p>
56 <ul>
57 <li>RecordT: One of the record classes in <a class="el" href="record_8h.html" title="Blackberry database record classes.">record.h</a></li><li>StorageT: A custom storage functor class. An object of this type will be called as a function with empty Record as an argument. The storage class is expected to fill the record object in preparation for building the packet out of that data. These calls happen on the fly as the data is sent to the device over USB, so it should not block forever.</li></ul>
58 <p>
59 Example SaveDatabase() call:<p>
60 <pre>
61 FIXME
62 </pre>
63 <p>Definition at line <a class="el" href="builder_8h-source.html#l00091">91</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
64 <table border="0" cellpadding="0" cellspacing="0">
65 <tr><td></td></tr>
66 <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
67 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#c8cda12de94498b715d6171fb51930af">RecordBuilder</a> (StorageT &amp;storage)</td></tr>
69 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor that references an externally managed storage object. <a href="#c8cda12de94498b715d6171fb51930af"></a><br></td></tr>
70 <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#ab6421e54af5c0886d2d9979fe4d2d35">RecordBuilder</a> (StorageT *storage)</td></tr>
72 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor that references a locally managed storage object. <a href="#ab6421e54af5c0886d2d9979fe4d2d35"></a><br></td></tr>
73 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#8ce2a42e0805c1b64c6bda3aadeb040e">Retrieve</a> (unsigned int databaseId)</td></tr>
75 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called first in the sequence, to allow the application to load the needed data from memory, disk, etc. <a href="#8ce2a42e0805c1b64c6bda3aadeb040e"></a><br></td></tr>
76 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#13dba30bb979be690b85ade4ce79cd7a">GetRecType</a> () const </td></tr>
78 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called to retrive the unique ID for this record. <a href="#13dba30bb979be690b85ade4ce79cd7a"></a><br></td></tr>
79 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#b12fe31225a41f2ebcca45dd4d4ce373">BuildHeader</a> (Data &amp;data, size_t &amp;offset)</td></tr>
81 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Functor member called by Controller::SaveDatabase() during processing. <a href="#b12fe31225a41f2ebcca45dd4d4ce373"></a><br></td></tr>
82 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#d95441f87e80998803d1bb8cfc443c5c">BuildFields</a> (Data &amp;data, size_t &amp;offset, const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *ic)</td></tr>
84 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called to build the record field data. <a href="#d95441f87e80998803d1bb8cfc443c5c"></a><br></td></tr>
85 </table>
86 <hr><h2>Constructor &amp; Destructor Documentation</h2>
87 <a class="anchor" name="c8cda12de94498b715d6171fb51930af"></a><!-- doxytag: member="Barry::RecordBuilder::RecordBuilder" ref="c8cda12de94498b715d6171fb51930af" args="(StorageT &amp;storage)" -->
88 <div class="memitem">
89 <div class="memproto">
90 <div class="memtemplate">
91 template&lt;class RecordT, class StorageT&gt; </div>
92 <table class="memname">
93 <tr>
94 <td class="memname"><a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::<a class="el" href="classBarry_1_1RecordBuilder.html">RecordBuilder</a> </td>
95 <td>(</td>
96 <td class="paramtype">StorageT &amp;&nbsp;</td>
97 <td class="paramname"> <em>storage</em> </td>
98 <td>&nbsp;)&nbsp;</td>
99 <td><code> [inline]</code></td>
100 </tr>
101 </table>
102 </div>
103 <div class="memdoc">
106 Constructor that references an externally managed storage object.
109 <p>Definition at line <a class="el" href="builder_8h-source.html#l00099">99</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
111 </div>
112 </div><p>
113 <a class="anchor" name="ab6421e54af5c0886d2d9979fe4d2d35"></a><!-- doxytag: member="Barry::RecordBuilder::RecordBuilder" ref="ab6421e54af5c0886d2d9979fe4d2d35" args="(StorageT *storage)" -->
114 <div class="memitem">
115 <div class="memproto">
116 <div class="memtemplate">
117 template&lt;class RecordT, class StorageT&gt; </div>
118 <table class="memname">
119 <tr>
120 <td class="memname"><a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::<a class="el" href="classBarry_1_1RecordBuilder.html">RecordBuilder</a> </td>
121 <td>(</td>
122 <td class="paramtype">StorageT *&nbsp;</td>
123 <td class="paramname"> <em>storage</em> </td>
124 <td>&nbsp;)&nbsp;</td>
125 <td><code> [inline]</code></td>
126 </tr>
127 </table>
128 </div>
129 <div class="memdoc">
132 Constructor that references a locally managed storage object.
134 The pointer passed in will be stored, and freed when this class is destroyed. It is safe to call this constructor with a 'new'ly created storage object.
135 <p>Definition at line <a class="el" href="builder_8h-source.html#l00106">106</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
137 </div>
138 </div><p>
139 <hr><h2>Member Function Documentation</h2>
140 <a class="anchor" name="8ce2a42e0805c1b64c6bda3aadeb040e"></a><!-- doxytag: member="Barry::RecordBuilder::Retrieve" ref="8ce2a42e0805c1b64c6bda3aadeb040e" args="(unsigned int databaseId)" -->
141 <div class="memitem">
142 <div class="memproto">
143 <div class="memtemplate">
144 template&lt;class RecordT, class StorageT&gt; </div>
145 <table class="memname">
146 <tr>
147 <td class="memname">virtual bool <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::Retrieve </td>
148 <td>(</td>
149 <td class="paramtype">unsigned int&nbsp;</td>
150 <td class="paramname"> <em>databaseId</em> </td>
151 <td>&nbsp;)&nbsp;</td>
152 <td><code> [inline, virtual]</code></td>
153 </tr>
154 </table>
155 </div>
156 <div class="memdoc">
159 Called first in the sequence, to allow the application to load the needed data from memory, disk, etc.
161 If successful, return true. If at the end of the series, return false.
162 <p>Implements <a class="el" href="classBarry_1_1Builder.html#936d3e7b4e771fb2f7ee48476d802407">Barry::Builder</a>.</p>
164 <p>Definition at line <a class="el" href="builder_8h-source.html#l00115">115</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
166 </div>
167 </div><p>
168 <a class="anchor" name="13dba30bb979be690b85ade4ce79cd7a"></a><!-- doxytag: member="Barry::RecordBuilder::GetRecType" ref="13dba30bb979be690b85ade4ce79cd7a" args="() const " -->
169 <div class="memitem">
170 <div class="memproto">
171 <div class="memtemplate">
172 template&lt;class RecordT, class StorageT&gt; </div>
173 <table class="memname">
174 <tr>
175 <td class="memname">virtual uint8_t <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::GetRecType </td>
176 <td>(</td>
177 <td class="paramname"> </td>
178 <td>&nbsp;)&nbsp;</td>
179 <td> const<code> [inline, virtual]</code></td>
180 </tr>
181 </table>
182 </div>
183 <div class="memdoc">
186 Called to retrive the unique ID for this record.
189 <p>Implements <a class="el" href="classBarry_1_1Builder.html#b586fc135c6fbe0d1f9019bc4a2639d0">Barry::Builder</a>.</p>
191 <p>Definition at line <a class="el" href="builder_8h-source.html#l00120">120</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
193 </div>
194 </div><p>
195 <a class="anchor" name="b12fe31225a41f2ebcca45dd4d4ce373"></a><!-- doxytag: member="Barry::RecordBuilder::BuildHeader" ref="b12fe31225a41f2ebcca45dd4d4ce373" args="(Data &amp;data, size_t &amp;offset)" -->
196 <div class="memitem">
197 <div class="memproto">
198 <div class="memtemplate">
199 template&lt;class RecordT, class StorageT&gt; </div>
200 <table class="memname">
201 <tr>
202 <td class="memname">virtual void <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::BuildHeader </td>
203 <td>(</td>
204 <td class="paramtype">Data &amp;&nbsp;</td>
205 <td class="paramname"> <em>data</em>, </td>
206 </tr>
207 <tr>
208 <td class="paramkey"></td>
209 <td></td>
210 <td class="paramtype">size_t &amp;&nbsp;</td>
211 <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
212 </tr>
213 <tr>
214 <td></td>
215 <td>)</td>
216 <td></td><td></td><td><code> [inline, virtual]</code></td>
217 </tr>
218 </table>
219 </div>
220 <div class="memdoc">
223 Functor member called by Controller::SaveDatabase() during processing.
226 <p>Implements <a class="el" href="classBarry_1_1Builder.html#7fd24f3f6d34bd1a6e8875ce7c242e9b">Barry::Builder</a>.</p>
228 <p>Definition at line <a class="el" href="builder_8h-source.html#l00132">132</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
230 </div>
231 </div><p>
232 <a class="anchor" name="d95441f87e80998803d1bb8cfc443c5c"></a><!-- doxytag: member="Barry::RecordBuilder::BuildFields" ref="d95441f87e80998803d1bb8cfc443c5c" args="(Data &amp;data, size_t &amp;offset, const IConverter *ic)" -->
233 <div class="memitem">
234 <div class="memproto">
235 <div class="memtemplate">
236 template&lt;class RecordT, class StorageT&gt; </div>
237 <table class="memname">
238 <tr>
239 <td class="memname">virtual void <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::BuildFields </td>
240 <td>(</td>
241 <td class="paramtype">Data &amp;&nbsp;</td>
242 <td class="paramname"> <em>data</em>, </td>
243 </tr>
244 <tr>
245 <td class="paramkey"></td>
246 <td></td>
247 <td class="paramtype">size_t &amp;&nbsp;</td>
248 <td class="paramname"> <em>offset</em>, </td>
249 </tr>
250 <tr>
251 <td class="paramkey"></td>
252 <td></td>
253 <td class="paramtype">const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *&nbsp;</td>
254 <td class="paramname"> <em>ic</em></td><td>&nbsp;</td>
255 </tr>
256 <tr>
257 <td></td>
258 <td>)</td>
259 <td></td><td></td><td><code> [inline, virtual]</code></td>
260 </tr>
261 </table>
262 </div>
263 <div class="memdoc">
266 Called to build the record field data.
268 Store the raw data in data, using offset to know where to write. Be sure to update offset, and be sure to adjust the size of the data packet (possibly with Data::ReleaseBuffer()).
269 <p>Implements <a class="el" href="classBarry_1_1Builder.html#8414acbff050df62c01d8835115e6d18">Barry::Builder</a>.</p>
271 <p>Definition at line <a class="el" href="builder_8h-source.html#l00137">137</a> of file <a class="el" href="builder_8h-source.html">builder.h</a>.</p>
273 </div>
274 </div><p>
275 <hr>The documentation for this class was generated from the following file:<ul>
276 <li><a class="el" href="builder_8h-source.html">builder.h</a></ul>
277 </div>
278 <hr size="1"><address style="text-align: right;"><small>Generated on Sat Aug 29 00:02:12 2009 for Barry by&nbsp;
279 <a href="http://www.doxygen.org/index.html">
280 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
281 </body>
282 </html>