Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 2aa62c5bbb658df1fece777472a7bcf2 > files > 782

barry-devel-docs-0.17-0.3.20100730git.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Barry: Barry::RecordBuilder&lt; RecordT, StorageT &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.2-20100208 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="namespaceBarry.html">Barry</a>::<a class="el" href="classBarry_1_1RecordBuilder.html">RecordBuilder</a>
  </div>
</div>
<div class="contents">
<h1>Barry::RecordBuilder&lt; RecordT, StorageT &gt; Class Template Reference</h1><!-- doxytag: class="Barry::RecordBuilder" --><!-- doxytag: inherits="Barry::Builder" -->
<p>Template class for easy creation of specific protocol packet builder objects.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="builder_8h_source.html">builder.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Barry::RecordBuilder&lt; RecordT, StorageT &gt;:</div>
<div class="dynsection">
<div class="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"/></div>
<map name="Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4_inherit__map" id="Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4_inherit__map">
<area shape="rect" id="node2" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy." alt="" coords="99,6,203,37"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for Barry::RecordBuilder&lt; RecordT, StorageT &gt;:</div>
<div class="dynsection">
<div class="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"/></div>
<map name="Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4_coll__map" id="Barry_1_1RecordBuilder_3_01RecordT_00_01StorageT_01_4_coll__map">
<area shape="rect" id="node2" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy." alt="" coords="99,6,203,37"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classBarry_1_1RecordBuilder-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#ac8cda12de94498b715d6171fb51930af">RecordBuilder</a> (StorageT &amp;storage)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor that references an externally managed storage object.  <a href="#ac8cda12de94498b715d6171fb51930af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#aab6421e54af5c0886d2d9979fe4d2d35">RecordBuilder</a> (StorageT *storage)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor that references a locally managed storage object.  <a href="#aab6421e54af5c0886d2d9979fe4d2d35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#a8ce2a42e0805c1b64c6bda3aadeb040e">Retrieve</a> (unsigned int databaseId)</td></tr>
<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="#a8ce2a42e0805c1b64c6bda3aadeb040e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual uint8_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#a13dba30bb979be690b85ade4ce79cd7a">GetRecType</a> () const </td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called to retrive the unique ID for this record.  <a href="#a13dba30bb979be690b85ade4ce79cd7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#ab12fe31225a41f2ebcca45dd4d4ce373">BuildHeader</a> (<a class="el" href="classBarry_1_1Data.html">Data</a> &amp;data, size_t &amp;offset)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Functor member called by Controller::SaveDatabase() during processing.  <a href="#ab12fe31225a41f2ebcca45dd4d4ce373"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1RecordBuilder.html#ad95441f87e80998803d1bb8cfc443c5c">BuildFields</a> (<a class="el" href="classBarry_1_1Data.html">Data</a> &amp;data, size_t &amp;offset, const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *ic)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Called to build the record field data.  <a href="#ad95441f87e80998803d1bb8cfc443c5c"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<h3>template&lt;class RecordT, class StorageT&gt;<br/>
 class Barry::RecordBuilder&lt; RecordT, StorageT &gt;</h3>

<p>Template class for easy creation of specific protocol packet builder objects. </p>
<p>This template takes the following template arguments:</p>
<ul>
<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>
<p>Example SaveDatabase() call:</p>
<pre>
    FIXME
    </pre> 
<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>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac8cda12de94498b715d6171fb51930af"></a><!-- doxytag: member="Barry::RecordBuilder::RecordBuilder" ref="ac8cda12de94498b715d6171fb51930af" args="(StorageT &amp;storage)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RecordT, class StorageT&gt; </div>
      <table class="memname">
        <tr>
          <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>
          <td>(</td>
          <td class="paramtype">StorageT &amp;&nbsp;</td>
          <td class="paramname"> <em>storage</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor that references an externally managed storage object. </p>

<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>

</div>
</div>
<a class="anchor" id="aab6421e54af5c0886d2d9979fe4d2d35"></a><!-- doxytag: member="Barry::RecordBuilder::RecordBuilder" ref="aab6421e54af5c0886d2d9979fe4d2d35" args="(StorageT *storage)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RecordT, class StorageT&gt; </div>
      <table class="memname">
        <tr>
          <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>
          <td>(</td>
          <td class="paramtype">StorageT *&nbsp;</td>
          <td class="paramname"> <em>storage</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor that references a locally managed storage object. </p>
<p>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. </p>

<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>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ad95441f87e80998803d1bb8cfc443c5c"></a><!-- doxytag: member="Barry::RecordBuilder::BuildFields" ref="ad95441f87e80998803d1bb8cfc443c5c" args="(Data &amp;data, size_t &amp;offset, const IConverter *ic)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RecordT, class StorageT&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::BuildFields </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classBarry_1_1Data.html">Data</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *&nbsp;</td>
          <td class="paramname"> <em>ic</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called to build the record field data. </p>
<p><a class="el" href="structStore.html">Store</a> 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()). </p>

<p>Implements <a class="el" href="classBarry_1_1Builder.html#a8414acbff050df62c01d8835115e6d18">Barry::Builder</a>.</p>

<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>

</div>
</div>
<a class="anchor" id="ab12fe31225a41f2ebcca45dd4d4ce373"></a><!-- doxytag: member="Barry::RecordBuilder::BuildHeader" ref="ab12fe31225a41f2ebcca45dd4d4ce373" args="(Data &amp;data, size_t &amp;offset)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RecordT, class StorageT&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::BuildHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classBarry_1_1Data.html">Data</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&nbsp;</td>
          <td class="paramname"> <em>offset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Functor member called by Controller::SaveDatabase() during processing. </p>

<p>Implements <a class="el" href="classBarry_1_1Builder.html#a7fd24f3f6d34bd1a6e8875ce7c242e9b">Barry::Builder</a>.</p>

<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>

</div>
</div>
<a class="anchor" id="a13dba30bb979be690b85ade4ce79cd7a"></a><!-- doxytag: member="Barry::RecordBuilder::GetRecType" ref="a13dba30bb979be690b85ade4ce79cd7a" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RecordT, class StorageT&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual uint8_t <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::GetRecType </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called to retrive the unique ID for this record. </p>

<p>Implements <a class="el" href="classBarry_1_1Builder.html#ab586fc135c6fbe0d1f9019bc4a2639d0">Barry::Builder</a>.</p>

<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>

</div>
</div>
<a class="anchor" id="a8ce2a42e0805c1b64c6bda3aadeb040e"></a><!-- doxytag: member="Barry::RecordBuilder::Retrieve" ref="a8ce2a42e0805c1b64c6bda3aadeb040e" args="(unsigned int databaseId)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class RecordT, class StorageT&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classBarry_1_1RecordBuilder.html">Barry::RecordBuilder</a>&lt; RecordT, StorageT &gt;::Retrieve </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>databaseId</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Called first in the sequence, to allow the application to load the needed data from memory, disk, etc. </p>
<p>If successful, return true. If at the end of the series, return false. </p>

<p>Implements <a class="el" href="classBarry_1_1Builder.html#a936d3e7b4e771fb2f7ee48476d802407">Barry::Builder</a>.</p>

<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>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="builder_8h_source.html">builder.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address>
</body>
</html>