<!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::DBPacket Class 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 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 List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="namespaceBarry.html">Barry</a>::<a class="el" href="classBarry_1_1DBPacket.html">DBPacket</a> </div> </div> <div class="contents"> <h1>Barry::DBPacket Class Reference</h1><!-- doxytag: class="Barry::DBPacket" --><!-- doxytag: inherits="Barry::Packet" --> <p>Provides an API for building and analyzing raw DB protocol packets. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="packet_8h_source.html">packet.h</a>></code></p> <div class="dynheader"> Inheritance diagram for Barry::DBPacket:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket__inherit__graph.png" border="0" usemap="#Barry_1_1DBPacket_inherit__map" alt="Inheritance graph"/></div> <map name="Barry_1_1DBPacket_inherit__map" id="Barry_1_1DBPacket_inherit__map"> <area shape="rect" id="node2" href="classBarry_1_1Packet.html" title="Barry::Packet" alt="" coords="16,6,117,37"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <div class="dynheader"> Collaboration diagram for Barry::DBPacket:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket__coll__graph.png" border="0" usemap="#Barry_1_1DBPacket_coll__map" alt="Collaboration graph"/></div> <map name="Barry_1_1DBPacket_coll__map" id="Barry_1_1DBPacket_coll__map"> <area shape="rect" id="node2" href="classBarry_1_1Packet.html" title="Barry::Packet" alt="" coords="383,5,484,35"/><area shape="rect" id="node4" href="classBarry_1_1Data.html" title="Barry::Data" alt="" coords="5,59,96,90"/><area shape="rect" id="node61" href="classBarry_1_1IConverter.html" title="Main charset conversion class, primarily focused on converting between the Blackberry..." alt="" coords="1312,122,1435,153"/><area shape="rect" id="node6" href="classBarry_1_1Mode_1_1Desktop.html" title="The main interface class to the device databases." alt="" coords="2653,198,2808,229"/><area shape="rect" id="node8" href="classBarry_1_1Mode_1_1Mode.html" title="Base class for simple mode classes." alt="" coords="2463,583,2601,614"/><area shape="rect" id="node10" href="classBarry_1_1Controller.html" title="The main interface class." alt="" coords="1707,583,1827,614"/><area shape="rect" id="node12" href="classBarry_1_1Pin.html" title="Barry::Pin" alt="" coords="961,474,1041,505"/><area shape="rect" id="node16" href="structBarry_1_1ProbeResult.html" title="Barry::ProbeResult" alt="" coords="1307,418,1440,449"/><area shape="rect" id="node14" href="classUsb_1_1Device.html" title="Usb::Device" alt="" coords="583,631,679,662"/><area shape="rect" id="node25" href="classBarry_1_1SocketZero.html" title="Barry::SocketZero" alt="" coords="1308,681,1439,711"/><area shape="rect" id="node28" href="classBarry_1_1SocketRoutingQueue.html" title="Barry::SocketRoutingQueue" alt="" coords="907,745,1096,775"/><area shape="rect" id="node38" href="classUsb_1_1Interface.html" title="Usb::Interface" alt="" coords="1127,609,1231,639"/><area shape="rect" id="node18" href="structUsb_1_1EndpointPair.html" title="Usb::EndpointPair" alt="" coords="939,401,1064,431"/><area shape="rect" id="node21" title="STL class." alt="" coords="961,239,1041,270"/><area shape="rect" id="node51" href="structBarry_1_1DatabaseItem.html" title="Barry::DatabaseItem" alt="" coords="1509,265,1656,295"/><area shape="rect" id="node58" href="structBarry_1_1CommandTableCommand.html" title="Barry::CommandTableCommand" alt="" coords="1263,211,1484,242"/><area shape="rect" id="node23" title="STL class." alt="" coords="547,239,715,270"/><area shape="rect" id="node44" href="classBarry_1_1Socket.html" title="Encapsulates a "logical socket" in the Blackberry USB protocol." alt="" coords="1715,697,1819,727"/><area shape="rect" id="node33" href="classBarry_1_1DataQueue.html" title="This class provides a thread aware fifo queue for Data objects, providing memory..." alt="" coords="565,807,696,838"/><area shape="rect" id="node47" href="classBarry_1_1DatabaseDatabase.html" title="Barry::DatabaseDatabase" alt="" coords="2257,265,2436,295"/><area shape="rect" id="node54" href="classBarry_1_1CommandTable.html" title="Barry::CommandTable" alt="" coords="2267,198,2427,229"/><area shape="rect" id="node65" href="classBarry_1_1IConvHandle.html" title="Wrapper class for a two-way iconv_t handle pair." alt="" coords="932,117,1071,147"/></map> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classBarry_1_1DBPacket-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">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#aace85c6dd63c5f85e21e9f61e10e5af5">ClearDatabase</a> (unsigned int dbId)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet for the CLEAR_DATABASE command code, placing the data in the send buffer. <a href="#aace85c6dd63c5f85e21e9f61e10e5af5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a206e98e5159e7fe7790d4976d0f039a0">GetDBDB</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet for the GET_DBDB command code, placing the data in m_send. <a href="#a206e98e5159e7fe7790d4976d0f039a0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a07e2e8ca566a1f4d7cc493983b56c32b">GetRecordStateTable</a> (unsigned int dbId)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the send buffer for the GET_RECORD_STATE_TABLE command. <a href="#a07e2e8ca566a1f4d7cc493983b56c32b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a9f0237393389b714f30bf56e616183dd">SetRecordFlags</a> (unsigned int dbId, unsigned int stateTableIndex, uint8_t flag1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the send buffer for the SET_RECORD_FLAGS command code. <a href="#a9f0237393389b714f30bf56e616183dd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#afb9625f072f936a03ebee1ac64b78bf4">DeleteRecordByIndex</a> (unsigned int dbId, unsigned int stateTableIndex)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the send buffer for the DELETE_RECORD_BY_INDEX command code. <a href="#afb9625f072f936a03ebee1ac64b78bf4"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a95355f6de0ab12e9eacd0727e8a66965">GetRecordByIndex</a> (unsigned int dbId, unsigned int stateTableIndex)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the send buffer for the GET_RECORD_BY_INDEX command code. <a href="#a95355f6de0ab12e9eacd0727e8a66965"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a7a41833dcc12c2823cd54991161e8d26">SetRecordByIndex</a> (unsigned int dbId, unsigned int stateTableIndex, <a class="el" href="classBarry_1_1Builder.html">Builder</a> &build, const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *ic)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the m_send buffer for the SET_RECORD_BY_INDEX command code. <a href="#a7a41833dcc12c2823cd54991161e8d26"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a173b8eb90186edc54e8a679d7498bcb5">GetRecords</a> (unsigned int dbId)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the send buffer for the GET_RECORDS command code. <a href="#a173b8eb90186edc54e8a679d7498bcb5"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a26c4025403d129f658c1919190c0a0f0">SetRecord</a> (unsigned int dbId, <a class="el" href="classBarry_1_1Builder.html">Builder</a> &build, const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *ic)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Builds a command packet in the m_send buffer for the SET_RECORD command code. <a href="#a26c4025403d129f658c1919190c0a0f0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a0efa0a4b999ca8fab4a628796181205a">DBOperation</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the database operation code from the receive packet, assuming that receive contains a response packet. <a href="#a0efa0a4b999ca8fab4a628796181205a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classBarry_1_1DBPacket.html#a43b96166db565fb8b37085d06d3a446c">Parse</a> (<a class="el" href="classBarry_1_1Parser.html">Parser</a> &parser, const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> *ic)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parses the data in the receive buffer, and attempts to be smart about it, using the last send command as guidance for what to expect in the response. <a href="#a43b96166db565fb8b37085d06d3a446c"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Provides an API for building and analyzing raw DB protocol packets. </p> <p>This class relies on 3 external objects: a <a class="el" href="classBarry_1_1Mode_1_1Desktop.html" title="The main interface class to the device databases.">Mode::Desktop</a> object, a send <a class="el" href="classBarry_1_1Data.html">Data</a> buffer, and a receive data buffer. <a class="el" href="classBarry_1_1Socket.html" title="Encapsulates a "logical socket" in the Blackberry USB protocol.">Socket</a> and connection details are retrieved on a readonly basis from the <a class="el" href="classBarry_1_1Mode_1_1Desktop.html" title="The main interface class to the device databases.">Mode::Desktop</a> object, but both send and receive buffers can be modified.</p> <p>Note that the receive buffer may be modified during a packet send, and this <a class="el" href="classBarry_1_1DBPacket.html" title="Provides an API for building and analyzing raw DB protocol packets.">DBPacket</a> class provides API helpers to analyze the results. </p> <p>Definition at line <a class="el" href="packet_8h_source.html#l00125">125</a> of file <a class="el" href="packet_8h_source.html">packet.h</a>.</p> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="aace85c6dd63c5f85e21e9f61e10e5af5"></a><!-- doxytag: member="Barry::DBPacket::ClearDatabase" ref="aace85c6dd63c5f85e21e9f61e10e5af5" args="(unsigned int dbId)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::ClearDatabase </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet for the CLEAR_DATABASE command code, placing the data in the send buffer. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00205">205</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_aace85c6dd63c5f85e21e9f61e10e5af5_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_aace85c6dd63c5f85e21e9f61e10e5af5_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_aace85c6dd63c5f85e21e9f61e10e5af5_cgraph_map" id="classBarry_1_1DBPacket_aace85c6dd63c5f85e21e9f61e10e5af5_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="277,5,544,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a0efa0a4b999ca8fab4a628796181205a"></a><!-- doxytag: member="Barry::DBPacket::DBOperation" ref="a0efa0a4b999ca8fab4a628796181205a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int Barry::DBPacket::DBOperation </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the database operation code from the receive packet, assuming that receive contains a response packet. </p> <p>If receive isn't large enough, throws <a class="el" href="classBarry_1_1Error.html" title="The base class for any future derived exceptions.">Error</a>. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00476">476</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> </div> </div> <a class="anchor" id="afb9625f072f936a03ebee1ac64b78bf4"></a><!-- doxytag: member="Barry::DBPacket::DeleteRecordByIndex" ref="afb9625f072f936a03ebee1ac64b78bf4" args="(unsigned int dbId, unsigned int stateTableIndex)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::DeleteRecordByIndex </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>stateTableIndex</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the send buffer for the DELETE_RECORD_BY_INDEX command code. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00306">306</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_afb9625f072f936a03ebee1ac64b78bf4_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_afb9625f072f936a03ebee1ac64b78bf4_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_afb9625f072f936a03ebee1ac64b78bf4_cgraph_map" id="classBarry_1_1DBPacket_afb9625f072f936a03ebee1ac64b78bf4_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="317,5,584,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a206e98e5159e7fe7790d4976d0f039a0"></a><!-- doxytag: member="Barry::DBPacket::GetDBDB" ref="a206e98e5159e7fe7790d4976d0f039a0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::GetDBDB </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet for the GET_DBDB command code, placing the data in m_send. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00228">228</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a206e98e5159e7fe7790d4976d0f039a0_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a206e98e5159e7fe7790d4976d0f039a0_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a206e98e5159e7fe7790d4976d0f039a0_cgraph_map" id="classBarry_1_1DBPacket_a206e98e5159e7fe7790d4976d0f039a0_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="245,5,512,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a95355f6de0ab12e9eacd0727e8a66965"></a><!-- doxytag: member="Barry::DBPacket::GetRecordByIndex" ref="a95355f6de0ab12e9eacd0727e8a66965" args="(unsigned int dbId, unsigned int stateTableIndex)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::GetRecordByIndex </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>stateTableIndex</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the send buffer for the GET_RECORD_BY_INDEX command code. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00331">331</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a95355f6de0ab12e9eacd0727e8a66965_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a95355f6de0ab12e9eacd0727e8a66965_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a95355f6de0ab12e9eacd0727e8a66965_cgraph_map" id="classBarry_1_1DBPacket_a95355f6de0ab12e9eacd0727e8a66965_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="299,5,565,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a173b8eb90186edc54e8a679d7498bcb5"></a><!-- doxytag: member="Barry::DBPacket::GetRecords" ref="a173b8eb90186edc54e8a679d7498bcb5" args="(unsigned int dbId)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::GetRecords </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the send buffer for the GET_RECORDS command code. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00396">396</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p>Referenced by <a class="el" href="m__desktop_8cc_source.html#l00384">Barry::Mode::Desktop::LoadDatabase()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_cgraph_map" id="classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="256,5,523,35"/></map> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_icgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_icgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_icgraph_map" id="classBarry_1_1DBPacket_a173b8eb90186edc54e8a679d7498bcb5_icgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#a6bb1c96d6082575b5fa684dee2af51a6" title="Retrieve a database from the handheld device, using the given parser to parse the..." alt="" coords="256,5,509,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a07e2e8ca566a1f4d7cc493983b56c32b"></a><!-- doxytag: member="Barry::DBPacket::GetRecordStateTable" ref="a07e2e8ca566a1f4d7cc493983b56c32b" args="(unsigned int dbId)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::GetRecordStateTable </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the send buffer for the GET_RECORD_STATE_TABLE command. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00251">251</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a07e2e8ca566a1f4d7cc493983b56c32b_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a07e2e8ca566a1f4d7cc493983b56c32b_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a07e2e8ca566a1f4d7cc493983b56c32b_cgraph_map" id="classBarry_1_1DBPacket_a07e2e8ca566a1f4d7cc493983b56c32b_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="317,5,584,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a43b96166db565fb8b37085d06d3a446c"></a><!-- doxytag: member="Barry::DBPacket::Parse" ref="a43b96166db565fb8b37085d06d3a446c" args="(Parser &parser, const IConverter *ic)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Barry::DBPacket::Parse </td> <td>(</td> <td class="paramtype"><a class="el" href="classBarry_1_1Parser.html">Parser</a> & </td> <td class="paramname"> <em>parser</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> * </td> <td class="paramname"> <em>ic</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Parses the data in the receive buffer, and attempts to be smart about it, using the last send command as guidance for what to expect in the response. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>bool true - packet was recognized and parse was attempted false - packet was not recognized </dd></dl> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00493">493</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="classBarry_1_1Parser.html#a15acb3544613d43d8f928cd63a19022b">Barry::Parser::Clear()</a>, <a class="el" href="classBarry_1_1Parser.html#a645718d87aaad3ee2c36664de05046d2">Barry::Parser::ParseFields()</a>, <a class="el" href="classBarry_1_1Parser.html#a2087d07fb5d8d57c934c4e60278f41d8">Barry::Parser::ParseHeader()</a>, <a class="el" href="classBarry_1_1Parser.html#a95bfc4014e3e8ded94625f43d1d29800">Barry::Parser::SetIds()</a>, and <a class="el" href="classBarry_1_1Parser.html#abf8ab1598be74268ee486af938c527d4">Barry::Parser::Store()</a>.</p> <p>Referenced by <a class="el" href="m__desktop_8cc_source.html#l00384">Barry::Mode::Desktop::LoadDatabase()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_cgraph_map" id="classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Parser.html#a15acb3544613d43d8f928cd63a19022b" title="Reset and prepare for a new raw data packet." alt="" coords="243,5,384,35"/><area shape="rect" id="node5" href="classBarry_1_1Parser.html#a645718d87aaad3ee2c36664de05046d2" title="Called to parse sub fields in the raw data packet." alt="" coords="223,58,404,89"/><area shape="rect" id="node7" href="classBarry_1_1Parser.html#a2087d07fb5d8d57c934c4e60278f41d8" title="Called to parse the header portion of the raw data packet." alt="" coords="219,111,408,142"/><area shape="rect" id="node9" href="classBarry_1_1Parser.html#a95bfc4014e3e8ded94625f43d1d29800" title="Stores the IDs." alt="" coords="240,165,387,195"/><area shape="rect" id="node11" href="classBarry_1_1Parser.html#abf8ab1598be74268ee486af938c527d4" title="Called at the very end of record parsing, and used to store the final packet somewhere..." alt="" coords="243,218,384,249"/></map> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_icgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_icgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_icgraph_map" id="classBarry_1_1DBPacket_a43b96166db565fb8b37085d06d3a446c_icgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#a6bb1c96d6082575b5fa684dee2af51a6" title="Retrieve a database from the handheld device, using the given parser to parse the..." alt="" coords="219,5,472,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a26c4025403d129f658c1919190c0a0f0"></a><!-- doxytag: member="Barry::DBPacket::SetRecord" ref="a26c4025403d129f658c1919190c0a0f0" args="(unsigned int dbId, Builder &build, const IConverter *ic)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Barry::DBPacket::SetRecord </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classBarry_1_1Builder.html">Builder</a> & </td> <td class="paramname"> <em>build</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> * </td> <td class="paramname"> <em>ic</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the m_send buffer for the SET_RECORD command code. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>bool<ul> <li>true means success</li> <li>false means no data available from <a class="el" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy.">Builder</a> object </li> </ul> </dd></dl> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00423">423</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="classBarry_1_1Builder.html#a8414acbff050df62c01d8835115e6d18">Barry::Builder::BuildFields()</a>, <a class="el" href="classBarry_1_1Builder.html#a7fd24f3f6d34bd1a6e8875ce7c242e9b">Barry::Builder::BuildHeader()</a>, <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>, <a class="el" href="classBarry_1_1Builder.html#ab586fc135c6fbe0d1f9019bc4a2639d0">Barry::Builder::GetRecType()</a>, and <a class="el" href="classBarry_1_1Builder.html#a936d3e7b4e771fb2f7ee48476d802407">Barry::Builder::Retrieve()</a>.</p> <p>Referenced by <a class="el" href="m__desktop_8cc_source.html#l00205">Barry::Mode::Desktop::AddRecord()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_cgraph_map" id="classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Builder.html#a8414acbff050df62c01d8835115e6d18" title="Called to build the record field data." alt="" coords="292,5,471,35"/><area shape="rect" id="node5" href="classBarry_1_1Builder.html#a7fd24f3f6d34bd1a6e8875ce7c242e9b" title="Called before BuildFields() in order to build the header for this record." alt="" coords="288,58,475,89"/><area shape="rect" id="node7" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="248,111,515,142"/><area shape="rect" id="node9" href="classBarry_1_1Builder.html#ab586fc135c6fbe0d1f9019bc4a2639d0" title="Called to retrive the unique ID for this record." alt="" coords="287,165,476,195"/><area shape="rect" id="node11" href="classBarry_1_1Builder.html#a936d3e7b4e771fb2f7ee48476d802407" title="Called first in the sequence, to allow the application to load the needed data from..." alt="" coords="300,218,463,249"/></map> </div> </p> <p><div class="dynheader"> Here is the caller graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_icgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_icgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_icgraph_map" id="classBarry_1_1DBPacket_a26c4025403d129f658c1919190c0a0f0_icgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#a0fec0d31ff496974acfc15fdc75f074a" title="Adds a record to the specified database." alt="" coords="248,5,480,35"/></map> </div> </p> </div> </div> <a class="anchor" id="a7a41833dcc12c2823cd54991161e8d26"></a><!-- doxytag: member="Barry::DBPacket::SetRecordByIndex" ref="a7a41833dcc12c2823cd54991161e8d26" args="(unsigned int dbId, unsigned int stateTableIndex, Builder &build, const IConverter *ic)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool Barry::DBPacket::SetRecordByIndex </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>stateTableIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classBarry_1_1Builder.html">Builder</a> & </td> <td class="paramname"> <em>build</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="classBarry_1_1IConverter.html">IConverter</a> * </td> <td class="paramname"> <em>ic</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the m_send buffer for the SET_RECORD_BY_INDEX command code. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>bool<ul> <li>true means success</li> <li>false means no data available from <a class="el" href="classBarry_1_1Builder.html" title="Base class for the builder functor hierarchy.">Builder</a> object </li> </ul> </dd></dl> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00359">359</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="classBarry_1_1Builder.html#a8414acbff050df62c01d8835115e6d18">Barry::Builder::BuildFields()</a>, <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>, and <a class="el" href="classBarry_1_1Builder.html#a936d3e7b4e771fb2f7ee48476d802407">Barry::Builder::Retrieve()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a7a41833dcc12c2823cd54991161e8d26_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a7a41833dcc12c2823cd54991161e8d26_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a7a41833dcc12c2823cd54991161e8d26_cgraph_map" id="classBarry_1_1DBPacket_a7a41833dcc12c2823cd54991161e8d26_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Builder.html#a8414acbff050df62c01d8835115e6d18" title="Called to build the record field data." alt="" coords="340,5,519,35"/><area shape="rect" id="node5" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="296,58,563,89"/><area shape="rect" id="node7" href="classBarry_1_1Builder.html#a936d3e7b4e771fb2f7ee48476d802407" title="Called first in the sequence, to allow the application to load the needed data from..." alt="" coords="348,111,511,142"/></map> </div> </p> </div> </div> <a class="anchor" id="a9f0237393389b714f30bf56e616183dd"></a><!-- doxytag: member="Barry::DBPacket::SetRecordFlags" ref="a9f0237393389b714f30bf56e616183dd" args="(unsigned int dbId, unsigned int stateTableIndex, uint8_t flag1)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Barry::DBPacket::SetRecordFlags </td> <td>(</td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>dbId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned int </td> <td class="paramname"> <em>stateTableIndex</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint8_t </td> <td class="paramname"> <em>flag1</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Builds a command packet in the send buffer for the SET_RECORD_FLAGS command code. </p> <p>FIXME - this API call is incomplete, since there are unknown flags in the SetRecordFlags protocol packet. Currently it is only used to set all flags to zero. </p> <p>Definition at line <a class="el" href="packet_8cc_source.html#l00278">278</a> of file <a class="el" href="packet_8cc_source.html">packet.cc</a>.</p> <p>References <a class="el" href="m__desktop_8cc_source.html#l00142">Barry::Mode::Desktop::GetDBCommand()</a>.</p> <p><div class="dynheader"> Here is the call graph for this function:</div> <div class="dynsection"> <div class="center"><img src="classBarry_1_1DBPacket_a9f0237393389b714f30bf56e616183dd_cgraph.png" border="0" usemap="#classBarry_1_1DBPacket_a9f0237393389b714f30bf56e616183dd_cgraph_map" alt=""></div> <map name="classBarry_1_1DBPacket_a9f0237393389b714f30bf56e616183dd_cgraph_map" id="classBarry_1_1DBPacket_a9f0237393389b714f30bf56e616183dd_cgraph"> <area shape="rect" id="node3" href="classBarry_1_1Mode_1_1Desktop.html#ab1d7a169122aae509924729aedfeb24f" title="Get database command from command table." alt="" coords="283,5,549,35"/></map> </div> </p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="packet_8h_source.html">packet.h</a></li> <li><a class="el" href="packet_8cc_source.html">packet.cc</a></li> </ul> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <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>