Sophie

Sophie

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

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::DeviceParser 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_1DeviceParser.html">DeviceParser</a>
  </div>
</div>
<div class="contents">
<h1>Barry::DeviceParser Class Reference</h1><!-- doxytag: class="Barry::DeviceParser" --><!-- doxytag: inherits="Barry::Parser" --><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::DeviceParser:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceParser__inherit__graph.png" border="0" usemap="#Barry_1_1DeviceParser__inherit__map" alt="Inheritance graph"></center>
<map name="Barry_1_1DeviceParser__inherit__map">
<area shape="rect" href="classBarry_1_1Parser.html" title="Base class for the parser 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::DeviceParser:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceParser__coll__graph.png" border="0" usemap="#Barry_1_1DeviceParser__coll__map" alt="Collaboration graph"></center>
<map name="Barry_1_1DeviceParser__coll__map">
<area shape="rect" href="classBarry_1_1Parser.html" title="Base class for the parser hierarchy." alt="" coords="1487,5,1585,32"><area shape="rect" title="STL class." alt="" coords="332,157,412,184"><area shape="rect" href="classBarry_1_1IConverter.html" title="Main charset conversion class, primarily focused on converting between the Blackberry..." alt="" coords="1153,416,1273,443"><area shape="rect" title="STL class." alt="" coords="7,157,172,184"><area shape="rect" href="classBarry_1_1Mode_1_1Desktop.html" title="The main interface class to the device databases." alt="" coords="1463,443,1609,469"><area shape="rect" href="classBarry_1_1Mode_1_1Mode.html" title="Base class for simple mode classes." alt="" coords="1148,365,1279,392"><area shape="rect" href="classBarry_1_1Controller.html" title="The main interface class." alt="" coords="875,395,989,421"><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,416,152,443"><area shape="rect" href="classBarry_1_1IConvHandle.html" title="Wrapper class for a two&#45;way iconv_t handle pair." alt="" coords="865,445,999,472"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="classBarry_1_1DeviceParser-members.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
A parser class that "parses" raw data into a device. 
<p>
Basically this is a pipe-oriented way to call SaveDatabase().<p>
Note that this is a multi-record parser. For each incoming <a class="el" href="classBarry_1_1DBData.html" title="Database record data class.">DBData</a> that has a new DBName, a new save will be started. There is no way to filter out records, except via the callback, so the easiest way to filter out records by database name is on the <a class="el" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy.">Builder</a> side. 
<p>Definition at line <a class="el" href="m__desktop_8h-source.html#l00249">249</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 Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac51">WriteMode</a> { <br>
&nbsp;&nbsp;<a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac5181058fe19301d5dea85c9487e8f924b6">ERASE_ALL_WRITE_ALL</a>, 
<a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac515ce9f83a11bba991dc4ed514a5e6a57f">INDIVIDUAL_OVERWRITE</a>, 
<a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac5102dee5c8cce77a177cba1320f31fd68c">ADD_BUT_NO_OVERWRITE</a>, 
<a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac518e02db6b076e3f449b92397b0d75a368">ADD_WITH_NEW_ID</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac510bf6fb7df3d5e44b1d45ba35b59cf8c8">DECIDE_BY_CALLBACK</a>, 
<a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac51273f97e2cc7e79856dae803afccd6618">DROP_RECORD</a>
<br>
 }</td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac51">WriteMode</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceParser.html#53dc89b54689532b586fc4940d98fc77">DecideWrite</a> (const <a class="el" href="classBarry_1_1DBData.html">DBData</a> &amp;record) const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback.  <a href="#53dc89b54689532b586fc4940d98fc77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DeviceParser.html#29558754a66d4f5c43c08af719a902c0">ParseRecord</a> (const <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"><a class="el" href="classBarry_1_1Parser.html" title="Base class for the parser hierarchy.">Parser</a> overrides.  <a href="#29558754a66d4f5c43c08af719a902c0"></a><br></td></tr>
</table>
<hr><h2>Member Enumeration Documentation</h2>
<a class="anchor" name="8df4da696cf6105b28b6eebc9122ac51"></a><!-- doxytag: member="Barry::DeviceParser::WriteMode" ref="8df4da696cf6105b28b6eebc9122ac51" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac51">Barry::DeviceParser::WriteMode</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="8df4da696cf6105b28b6eebc9122ac5181058fe19301d5dea85c9487e8f924b6"></a><!-- doxytag: member="ERASE_ALL_WRITE_ALL" ref="8df4da696cf6105b28b6eebc9122ac5181058fe19301d5dea85c9487e8f924b6" args="" -->ERASE_ALL_WRITE_ALL</em>&nbsp;</td><td>
Similar to SaveDatabase(). 
<p>
Erases all records from the existing database and then uploads all new records. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="8df4da696cf6105b28b6eebc9122ac515ce9f83a11bba991dc4ed514a5e6a57f"></a><!-- doxytag: member="INDIVIDUAL_OVERWRITE" ref="8df4da696cf6105b28b6eebc9122ac515ce9f83a11bba991dc4ed514a5e6a57f" args="" -->INDIVIDUAL_OVERWRITE</em>&nbsp;</td><td>
Adds any new records, and for records with Unique IDs that already exist, overwrite them. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="8df4da696cf6105b28b6eebc9122ac5102dee5c8cce77a177cba1320f31fd68c"></a><!-- doxytag: member="ADD_BUT_NO_OVERWRITE" ref="8df4da696cf6105b28b6eebc9122ac5102dee5c8cce77a177cba1320f31fd68c" args="" -->ADD_BUT_NO_OVERWRITE</em>&nbsp;</td><td>
Adds any new records, but if a record exists with the current Unique ID, skip that record and don't write it to the device. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="8df4da696cf6105b28b6eebc9122ac518e02db6b076e3f449b92397b0d75a368"></a><!-- doxytag: member="ADD_WITH_NEW_ID" ref="8df4da696cf6105b28b6eebc9122ac518e02db6b076e3f449b92397b0d75a368" args="" -->ADD_WITH_NEW_ID</em>&nbsp;</td><td>
Adds all incoming records as brand new records, generating a new Unique ID for each one, and leaving any existing records intact. 
<p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" name="8df4da696cf6105b28b6eebc9122ac510bf6fb7df3d5e44b1d45ba35b59cf8c8"></a><!-- doxytag: member="DECIDE_BY_CALLBACK" ref="8df4da696cf6105b28b6eebc9122ac510bf6fb7df3d5e44b1d45ba35b59cf8c8" args="" -->DECIDE_BY_CALLBACK</em>&nbsp;</td><td>
Calls the virtual function DecideWrite(. 
<p>
..) for each record, passing in the data. <a class="el" href="classBarry_1_1DeviceParser.html#53dc89b54689532b586fc4940d98fc77" title="Callback.">DecideWrite()</a> returns one of these WriteMode values. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="8df4da696cf6105b28b6eebc9122ac51273f97e2cc7e79856dae803afccd6618"></a><!-- doxytag: member="DROP_RECORD" ref="8df4da696cf6105b28b6eebc9122ac51273f97e2cc7e79856dae803afccd6618" args="" -->DROP_RECORD</em>&nbsp;</td><td>
Primarily used by <a class="el" href="classBarry_1_1DeviceParser.html#53dc89b54689532b586fc4940d98fc77" title="Callback.">DecideWrite()</a>, and causes the current record to not be written. 
<p>
</td></tr>
</table>
</dl>

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

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="53dc89b54689532b586fc4940d98fc77"></a><!-- doxytag: member="Barry::DeviceParser::DecideWrite" ref="53dc89b54689532b586fc4940d98fc77" args="(const DBData &amp;record) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classBarry_1_1DeviceParser.html#8df4da696cf6105b28b6eebc9122ac51">WriteMode</a> Barry::DeviceParser::DecideWrite           </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classBarry_1_1DBData.html">DBData</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>record</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td> const<code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Callback. 
<p>
.. you must derive and override this if you use the DECIDE_BY_CALLBACK mode. May be called multiple times per record. 
<p>Definition at line <a class="el" href="m__desktop_8h-source.html#l00300">300</a> of file <a class="el" href="m__desktop_8h-source.html">m_desktop.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="29558754a66d4f5c43c08af719a902c0"></a><!-- doxytag: member="Barry::DeviceParser::ParseRecord" ref="29558754a66d4f5c43c08af719a902c0" args="(const DBData &amp;data, const IConverter *ic)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Barry::DeviceParser::ParseRecord           </td>
          <td>(</td>
          <td class="paramtype">const <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>
<a class="el" href="classBarry_1_1Parser.html" title="Base class for the parser hierarchy.">Parser</a> overrides. 
<p>

<p>Implements <a class="el" href="classBarry_1_1Parser.html#1d8325c74140cda51c5735c6f82b7511">Barry::Parser</a>.</p>

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

<p>References <a class="el" href="data_8h-source.html#l00203">Barry::DBData::GetDBName()</a>.</p>

<p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dynsection">
<p><center><img src="classBarry_1_1DeviceParser_29558754a66d4f5c43c08af719a902c0_cgraph.png" border="0" usemap="#classBarry_1_1DeviceParser_29558754a66d4f5c43c08af719a902c0_cgraph_map" alt=""></center>
<map name="classBarry_1_1DeviceParser_29558754a66d4f5c43c08af719a902c0_cgraph_map">
<area shape="rect" href="classBarry_1_1DBData.html#37303ba0c4008a8afe0e5f09b823812e" title="Barry::DBData::GetDBName" alt="" coords="275,5,461,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>