Sophie

Sophie

distrib > Fedora > 14 > i386 > by-pkgid > abb2634846290d27f545cecded067e1f > files > 538

barry-devel-docs-0.17.1-4.fc14.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Barry: Barry::DeviceBuilder Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<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="classes.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="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
      <li><a href="annotated.html"><span>Class&nbsp;List</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_1DeviceBuilder.html">DeviceBuilder</a>
  </div>
</div>
<div class="contents">
<h1>Barry::DeviceBuilder Class Reference</h1><!-- doxytag: class="Barry::DeviceBuilder" --><!-- doxytag: inherits="Barry::Builder" --><code>#include &lt;<a class="el" href="m__desktop_8h-source.html">m_desktop.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for Barry::DeviceBuilder:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceBuilder__inherit__graph.png" border="0" usemap="#Barry_1_1DeviceBuilder__inherit__map" alt="Inheritance graph"></center>
<map name="Barry_1_1DeviceBuilder__inherit__map">
<area shape="rect" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy." alt="" coords="25,5,124,32"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for Barry::DeviceBuilder:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceBuilder__coll__graph.png" border="0" usemap="#Barry_1_1DeviceBuilder__coll__map" alt="Collaboration graph"></center>
<map name="Barry_1_1DeviceBuilder__coll__map">
<area shape="rect" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy." alt="" coords="2231,23,2329,49"><area shape="rect" title="STL iterator class." alt="" coords="2199,73,2361,100"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html" title="Database Loader operation class." alt="" coords="2201,124,2359,151"><area shape="rect" href="classBarry_1_1DBPacket.html" title="Provides an API for building and analyzing raw DB protocol packets." alt="" coords="1680,124,1800,151"><area shape="rect" href="classBarry_1_1Mode_1_1Desktop.html" title="The main interface class to the device databases." alt="" coords="1436,243,1583,269"><area shape="rect" href="classBarry_1_1IConverter.html" title="Main charset conversion class, primarily focused on converting between the Blackberry..." alt="" coords="1135,241,1255,268"><area shape="rect" href="classBarry_1_1Mode_1_1Mode.html" title="Base class for simple mode classes." alt="" coords="1129,292,1260,319"><area shape="rect" href="classBarry_1_1Controller.html" title="The main interface class." alt="" coords="875,536,989,563"><area shape="rect" title="STL class." alt="" coords="332,297,412,324"><area shape="rect" title="STL class." alt="" coords="7,297,172,324"><area shape="rect" href="classBarry_1_1DataQueue.html" title="This class provides a thread aware fifo queue for Data objects, providing memory..." alt="" coords="27,525,152,552"><area shape="rect" href="classBarry_1_1IConvHandle.html" title="Wrapper class for a two&#45;way iconv_t handle pair." alt="" coords="865,247,999,273"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classBarry_1_1DeviceBuilder-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
Takes a list of database dbId's and behaves like a <a class="el" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy.">Builder</a>, trying to avoid copies where possible on the device loading end. 
<p>Definition at line <a class="el" href="m__desktop_8h-source.html#l00181">181</a> of file <a class="el" href="m__desktop_8h-source.html">m_desktop.h</a>.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceBuilder.html#5f0d85ef656fdcdbbc285ef0d783b978">Restart</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">sets the internal iterator to the start of the list in order to perform a fresh run  <a href="#5f0d85ef656fdcdbbc285ef0d783b978"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceBuilder.html#292a7d4ee73590ce55c5d866739417ec">BuildRecord</a> (<a class="el" href="classBarry_1_1DBData.html">DBData</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="#292a7d4ee73590ce55c5d866739417ec"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceBuilder.html#3eb2238b584aadac8af2f511cd2ba245">FetchRecord</a> (<a class="el" href="classBarry_1_1DBData.html">DBData</a> &amp;data, const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *ic)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Same as BuildRecord, but does not care about any offsets.  <a href="#3eb2238b584aadac8af2f511cd2ba245"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceBuilder.html#7310e46f1fa8ee6e65f0717a656a4d5d">EndOfFile</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sometimes a builder can have multiple databases stored in it, so when Build/Fetch returns false, check if there is more data with this function.  <a href="#7310e46f1fa8ee6e65f0717a656a4d5d"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>DBLabel</b></td></tr>

</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="5f0d85ef656fdcdbbc285ef0d783b978"></a><!-- doxytag: member="Barry::DeviceBuilder::Restart" ref="5f0d85ef656fdcdbbc285ef0d783b978" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Barry::DeviceBuilder::Restart           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
sets the internal iterator to the start of the list in order to perform a fresh run 
<p>

<p>Definition at line <a class="el" href="m__desktop_8h-source.html#l00223">223</a> of file <a class="el" href="m__desktop_8h-source.html">m_desktop.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="292a7d4ee73590ce55c5d866739417ec"></a><!-- doxytag: member="Barry::DeviceBuilder::BuildRecord" ref="292a7d4ee73590ce55c5d866739417ec" args="(DBData &amp;data, size_t &amp;offset, const IConverter *ic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Barry::DeviceBuilder::BuildRecord           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classBarry_1_1DBData.html">DBData</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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Called to build the record field data. 
<p>
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()).<p>
Returns true if successful, and false if at the end of the series. Note that if <a class="el" href="classBarry_1_1DeviceBuilder.html#7310e46f1fa8ee6e65f0717a656a4d5d" title="Sometimes a builder can have multiple databases stored in it, so when Build/Fetch...">EndOfFile()</a> is false after this function returns false, then there may be another series available, which the next call to <a class="el" href="classBarry_1_1DeviceBuilder.html#292a7d4ee73590ce55c5d866739417ec" title="Called to build the record field data.">BuildRecord()</a> will determine. 
<p>Implements <a class="el" href="classBarry_1_1Builder.html#4a3d38061d957eb6dd0539b18d40e6ad">Barry::Builder</a>.</p>

<p>Definition at line <a class="el" href="m__desktop_8cc-source.html#l00590">590</a> of file <a class="el" href="m__desktop_8cc-source.html">m_desktop.cc</a>.</p>

<p>References <a class="el" href="m__desktop_8cc-source.html#l00612">FetchRecord()</a>, <a class="el" href="data_8h-source.html#l00208">Barry::DBData::GetData()</a>, <a class="el" href="data_8h-source.html#l00203">Barry::DBData::GetDBName()</a>, <a class="el" href="data_8h-source.html#l00206">Barry::DBData::GetOffset()</a>, <a class="el" href="data_8h-source.html#l00204">Barry::DBData::GetRecType()</a>, <a class="el" href="data_8h-source.html#l00205">Barry::DBData::GetUniqueId()</a>, <a class="el" href="data_8h-source.html#l00202">Barry::DBData::GetVersion()</a>, <a class="el" href="data_8h-source.html#l00217">Barry::DBData::SetDBName()</a>, <a class="el" href="data_8h-source.html#l00222">Barry::DBData::SetIds()</a>, <a class="el" href="data_8h-source.html#l00228">Barry::DBData::SetOffset()</a>, <a class="el" href="data_8h-source.html#l00212">Barry::DBData::SetVersion()</a>, and <a class="el" href="data_8cc-source.html#l00467">Barry::DBData::UseData()</a>.</p>

<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceBuilder_292a7d4ee73590ce55c5d866739417ec_cgraph.png" border="0" usemap="#classBarry_1_1DeviceBuilder_292a7d4ee73590ce55c5d866739417ec_cgraph_map" alt=""></center>
<map name="classBarry_1_1DeviceBuilder_292a7d4ee73590ce55c5d866739417ec_cgraph_map">
<area shape="rect" href="classBarry_1_1DeviceBuilder.html#3eb2238b584aadac8af2f511cd2ba245" title="Same as BuildRecord, but does not care about any offsets." alt="" coords="273,119,495,145"><area shape="rect" href="classBarry_1_1DBData.html#55d6bde680fe0b48d07882ade96ef9c3" title="Barry::DBData::SetDBName" alt="" coords="580,208,764,235"><area shape="rect" href="classBarry_1_1DBData.html#a7cacc9655376447ffbf3aa4d664a03b" title="Barry::DBData::GetData" alt="" coords="304,245,464,272"><area shape="rect" href="classBarry_1_1DBData.html#37303ba0c4008a8afe0e5f09b823812e" title="Barry::DBData::GetDBName" alt="" coords="291,296,477,323"><area shape="rect" href="classBarry_1_1DBData.html#5b301bfdcda5a74ccfd3f7e54fd69d99" title="Barry::DBData::GetOffset" alt="" coords="300,347,468,373"><area shape="rect" href="classBarry_1_1DBData.html#07523eb3b1dcfd99a917a184b61cb10a" title="Barry::DBData::GetRecType" alt="" coords="292,397,476,424"><area shape="rect" href="classBarry_1_1DBData.html#2a0106c7330842c455fc5393a3abfbc7" title="Barry::DBData::GetUniqueId" alt="" coords="292,448,476,475"><area shape="rect" href="classBarry_1_1DBData.html#b49877d999de648fd9fefca049686437" title="Barry::DBData::GetVersion" alt="" coords="296,499,472,525"><area shape="rect" href="classBarry_1_1DBData.html#a46147fced1b122cb6a0e6d1cee3cb07" title="Barry::DBData::SetIds" alt="" coords="308,549,460,576"><area shape="rect" href="classBarry_1_1DBData.html#cb569139ee2d44442d4709ccf2a4ab3c" title="Barry::DBData::SetOffset" alt="" coords="300,600,468,627"><area shape="rect" href="classBarry_1_1DBData.html#d1a3e69cabea68e0a309459cd7c58e78" title="Barry::DBData::SetVersion" alt="" coords="296,651,472,677"><area shape="rect" href="classBarry_1_1DBData.html#3c1c4ad5ce85cef0ea85002a0fe07881" title="Barry::DBData::UseData" alt="" coords="303,701,465,728"><area shape="rect" href="classBarry_1_1DeviceBuilder.html#7310e46f1fa8ee6e65f0717a656a4d5d" title="Sometimes a builder can have multiple databases stored in it, so when Build/Fetch..." alt="" coords="569,5,775,32"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html#2f1152364ff8ea48e8735fe57fcaa15c" title="Barry::Mode::DBLoader::GetNextRecord" alt="" coords="545,56,799,83"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html#951ebb66ec127c4ee47ead54ac21dbca" title="Do not call Desktop members if this is true." alt="" coords="569,107,775,133"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html#91865cdae00722a8c6fc53bcdf806a15" title="Barry::Mode::DBLoader::StartDBLoad" alt="" coords="552,157,792,184"></map>
</div>

</div>
</div><p>
<a class="anchor" name="3eb2238b584aadac8af2f511cd2ba245"></a><!-- doxytag: member="Barry::DeviceBuilder::FetchRecord" ref="3eb2238b584aadac8af2f511cd2ba245" args="(DBData &amp;data, const IConverter *ic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Barry::DeviceBuilder::FetchRecord           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classBarry_1_1DBData.html">DBData</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>data</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> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Same as BuildRecord, but does not care about any offsets. 
<p>
The caller should call DBData::GetOffset() afterward to discover if there is an offset to the result.<p>
This is usually the fastest of the two functions, since extra copying may be required if a specific offset is given. When building records from Record classes, both functions are the same speed. But when building records from the device, the device decides the offset, so <a class="el" href="classBarry_1_1DeviceBuilder.html#3eb2238b584aadac8af2f511cd2ba245" title="Same as BuildRecord, but does not care about any offsets.">FetchRecord()</a> is faster, since BuildRecord requires a copy to adjust to the right offset.<p>
The caller should use the function that results in the least amount of copying for the caller. If the caller doesn't care about where the resulting record is in data, use <a class="el" href="classBarry_1_1DeviceBuilder.html#3eb2238b584aadac8af2f511cd2ba245" title="Same as BuildRecord, but does not care about any offsets.">FetchRecord()</a>. 
<p>Implements <a class="el" href="classBarry_1_1Builder.html#005a0269c1f96947d7a75c1cc09a4609">Barry::Builder</a>.</p>

<p>Definition at line <a class="el" href="m__desktop_8cc-source.html#l00612">612</a> of file <a class="el" href="m__desktop_8cc-source.html">m_desktop.cc</a>.</p>

<p>References <a class="el" href="m__desktop_8cc-source.html#l00648">EndOfFile()</a>, <a class="el" href="m__desktop_8cc-source.html#l00520">Barry::Mode::DBLoader::GetNextRecord()</a>, <a class="el" href="m__desktop_8h-source.html#l00155">Barry::Mode::DBLoader::IsBusy()</a>, <a class="el" href="data_8h-source.html#l00217">Barry::DBData::SetDBName()</a>, and <a class="el" href="m__desktop_8cc-source.html#l00493">Barry::Mode::DBLoader::StartDBLoad()</a>.</p>

<p>Referenced by <a class="el" href="m__desktop_8cc-source.html#l00590">BuildRecord()</a>.</p>

<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceBuilder_3eb2238b584aadac8af2f511cd2ba245_cgraph.png" border="0" usemap="#classBarry_1_1DeviceBuilder_3eb2238b584aadac8af2f511cd2ba245_cgraph_map" alt=""></center>
<map name="classBarry_1_1DeviceBuilder_3eb2238b584aadac8af2f511cd2ba245_cgraph_map">
<area shape="rect" href="classBarry_1_1DeviceBuilder.html#7310e46f1fa8ee6e65f0717a656a4d5d" title="Sometimes a builder can have multiple databases stored in it, so when Build/Fetch..." alt="" coords="303,5,508,32"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html#2f1152364ff8ea48e8735fe57fcaa15c" title="Barry::Mode::DBLoader::GetNextRecord" alt="" coords="279,56,532,83"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html#951ebb66ec127c4ee47ead54ac21dbca" title="Do not call Desktop members if this is true." alt="" coords="303,107,508,133"><area shape="rect" href="classBarry_1_1DBData.html#55d6bde680fe0b48d07882ade96ef9c3" title="Barry::DBData::SetDBName" alt="" coords="313,157,497,184"><area shape="rect" href="classBarry_1_1Mode_1_1DBLoader.html#91865cdae00722a8c6fc53bcdf806a15" title="Barry::Mode::DBLoader::StartDBLoad" alt="" coords="285,208,525,235"></map>
</div>

<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceBuilder_3eb2238b584aadac8af2f511cd2ba245_icgraph.png" border="0" usemap="#classBarry_1_1DeviceBuilder_3eb2238b584aadac8af2f511cd2ba245_icgraph_map" alt=""></center>
<map name="classBarry_1_1DeviceBuilder_3eb2238b584aadac8af2f511cd2ba245_icgraph_map">
<area shape="rect" href="classBarry_1_1DeviceBuilder.html#292a7d4ee73590ce55c5d866739417ec" title="Called to build the record field data." alt="" coords="277,5,496,32"></map>
</div>

</div>
</div><p>
<a class="anchor" name="7310e46f1fa8ee6e65f0717a656a4d5d"></a><!-- doxytag: member="Barry::DeviceBuilder::EndOfFile" ref="7310e46f1fa8ee6e65f0717a656a4d5d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Barry::DeviceBuilder::EndOfFile           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Sometimes a builder can have multiple databases stored in it, so when Build/Fetch returns false, check if there is more data with this function. 
<p>
This function is not used by database-oriented functions, but by pipe- oriented functions. 
<p>Implements <a class="el" href="classBarry_1_1Builder.html#0ecfa5788ddee814a2071c82c5734691">Barry::Builder</a>.</p>

<p>Definition at line <a class="el" href="m__desktop_8cc-source.html#l00648">648</a> of file <a class="el" href="m__desktop_8cc-source.html">m_desktop.cc</a>.</p>

<p>Referenced by <a class="el" href="m__desktop_8cc-source.html#l00612">FetchRecord()</a>.</p>

<p>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceBuilder_7310e46f1fa8ee6e65f0717a656a4d5d_icgraph.png" border="0" usemap="#classBarry_1_1DeviceBuilder_7310e46f1fa8ee6e65f0717a656a4d5d_icgraph_map" alt=""></center>
<map name="classBarry_1_1DeviceBuilder_7310e46f1fa8ee6e65f0717a656a4d5d_icgraph_map">
<area shape="rect" href="classBarry_1_1DeviceBuilder.html#3eb2238b584aadac8af2f511cd2ba245" title="Same as BuildRecord, but does not care about any offsets." alt="" coords="263,5,484,32"><area shape="rect" href="classBarry_1_1DeviceBuilder.html#292a7d4ee73590ce55c5d866739417ec" title="Called to build the record field data." alt="" coords="533,5,752,32"></map>
</div>

</div>
</div><p>
<hr>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="m__desktop_8h-source.html">m_desktop.h</a><li><a class="el" href="m__desktop_8cc-source.html">m_desktop.cc</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Mar 1 17:50:59 2011 for Barry by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>