ostinato/doxydocs/class_pdml_protocol.html
2015-07-22 19:05:24 +05:30

485 lines
25 KiB
HTML

<!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>PdmlProtocol Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<!-- Generated by Doxygen 1.7.5.1 -->
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> </div>
<div class="headertitle">
<div class="title">PdmlProtocol Class Reference</div> </div>
</div>
<div class="contents">
<!-- doxytag: class="PdmlProtocol" -->
<p><a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a> is the base class which provides the interface for all PDML decode helper protocols.
<a href="class_pdml_protocol.html#details">More...</a></p>
<p><a href="class_pdml_protocol-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#ae4b3443fea68ea738f27f124803bbb5d">~PdmlProtocol</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the <a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a>. <a href="#ae4b3443fea68ea738f27f124803bbb5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#aef66d163a7f2a541c1d4dc273354ca29">ostProtoId</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the protocol's field number as defined in message 'Protocol', enum 'k' (<a href="file:">file:</a> protocol.proto) <a href="#aef66d163a7f2a541c1d4dc273354ca29"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a0c82b3d98442e19852d3b3738c023aec">hasField</a> (QString name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if name is a 'known' field that can be directly mapped to the protobuf field. <a href="#a0c82b3d98442e19852d3b3738c023aec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a29fd0e4f5e2e12a7a84948d6f86dbf7a">fieldId</a> (QString name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the protocol's protobuf field number corresponding to name. <a href="#a29fd0e4f5e2e12a7a84948d6f86dbf7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#ae6996ae7dc9e81b096ad53046b757d02">preProtocolHandler</a> (QString name, const QXmlStreamAttributes &amp;attributes, int expectedPos, OstProto::Protocol *pbProto, OstProto::Stream *stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called by PdmlReader before any fields within the protocol are processed. <a href="#ae6996ae7dc9e81b096ad53046b757d02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a996a0f5f40076b87435cdb3b306e9148">prematureEndHandler</a> (int pos, OstProto::Protocol *pbProto, OstProto::Stream *stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called by PdmlReader when it encounters a nested protocol in the PDML i.e. <a href="#a996a0f5f40076b87435cdb3b306e9148"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a0f6f93c259def7ad5f59958d3b077d5c">postProtocolHandler</a> (OstProto::Protocol *pbProto, OstProto::Stream *stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called by PdmlReader after all fields within the protocol are processed. <a href="#a0f6f93c259def7ad5f59958d3b077d5c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a921264e3c5f916db2533d4c2bc5141c6">fieldHandler</a> (QString name, const QXmlStreamAttributes &amp;attributes, OstProto::Protocol *pbProto, OstProto::Stream *stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called by PdmlReader for each field in the protocol. <a href="#a921264e3c5f916db2533d4c2bc5141c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a2d7462a9b7c8ff58c1277902d0bee9e3">knownFieldHandler</a> (QString name, QString valueHexStr, OstProto::Protocol *pbProto)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles a 'known' field. <a href="#a2d7462a9b7c8ff58c1277902d0bee9e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#aa4e42812f7259649cce1663f6ffed034">unknownFieldHandler</a> (QString name, int pos, int size, const QXmlStreamAttributes &amp;attributes, OstProto::Protocol *pbProto, OstProto::Stream *stream)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles a 'unknown' field. <a href="#aa4e42812f7259649cce1663f6ffed034"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="class_pdml_protocol.html">PdmlProtocol</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#adf3f80063f50998797c2cfa6a9d3edc9">createInstance</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and returns a new instance of the class. <a href="#adf3f80063f50998797c2cfa6a9d3edc9"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a60b82661c6b59a052c320a13cae6462a">PdmlProtocol</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Protocol's field number as defined in message 'Protocol', enum 'k'. <a href="#a60b82661c6b59a052c320a13cae6462a"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pdml_protocol.html#a4b58c8f079f60986126d084fb9167dd8">ostProtoId_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Map of PDML field names to protobuf field numbers for 'known' fields. <a href="#a4b58c8f079f60986126d084fb9167dd8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a60335e08d777de3ece01a992140503be"></a><!-- doxytag: member="PdmlProtocol::fieldMap_" ref="a60335e08d777de3ece01a992140503be" args="" -->
QMap&lt; QString, int &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>fieldMap_</b></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a> is the base class which provides the interface for all PDML decode helper protocols. </p>
<p>All Pdml helper classes derived from <a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a> MUST register themselves with PdmlReader. When PdmlReader encounters a 'proto' tag in the PDML during parsing, it instantiates the corresponding helper <a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a> class and calls its methods to decode the protocol.</p>
<p>A subclass MUST initialize the following inherited protected variables in its constructor -</p>
<ul>
<li>ostProtoId_</li>
<li>fieldMap_</li>
</ul>
<p>A subclass typically needs to reimplement the following methods -</p>
<ul>
<li><a class="el" href="class_pdml_protocol.html#adf3f80063f50998797c2cfa6a9d3edc9" title="Allocates and returns a new instance of the class.">createInstance()</a></li>
</ul>
<p>Depending on certain conditions, subclasses may need to reimplement the following additional methods -</p>
<ul>
<li><a class="el" href="class_pdml_protocol.html#aa4e42812f7259649cce1663f6ffed034" title="Handles a &#39;unknown&#39; field.">unknownFieldHandler()</a></li>
<li><a class="el" href="class_pdml_protocol.html#ae6996ae7dc9e81b096ad53046b757d02" title="This method is called by PdmlReader before any fields within the protocol are processed.">preProtocolHandler()</a></li>
<li><a class="el" href="class_pdml_protocol.html#a0f6f93c259def7ad5f59958d3b077d5c" title="This method is called by PdmlReader after all fields within the protocol are processed.">postProtocolHandler()</a></li>
</ul>
<p>See the description of the methods for more information.</p>
<p>Use the SamplePdmlProtocol implementation as boilerplate code and for guidelines and tips </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ae4b3443fea68ea738f27f124803bbb5d"></a><!-- doxytag: member="PdmlProtocol::~PdmlProtocol" ref="ae4b3443fea68ea738f27f124803bbb5d" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PdmlProtocol::~PdmlProtocol </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Destroys the <a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a>. </p>
</div>
</div>
<a class="anchor" id="a60b82661c6b59a052c320a13cae6462a"></a><!-- doxytag: member="PdmlProtocol::PdmlProtocol" ref="a60b82661c6b59a052c320a13cae6462a" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PdmlProtocol::PdmlProtocol </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Protocol's field number as defined in message 'Protocol', enum 'k'. </p>
<p>Constructs the <a class="el" href="class_pdml_protocol.html" title="PdmlProtocol is the base class which provides the interface for all PDML decode helper protocols...">PdmlProtocol</a>. </p>
</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="adf3f80063f50998797c2cfa6a9d3edc9"></a><!-- doxytag: member="PdmlProtocol::createInstance" ref="adf3f80063f50998797c2cfa6a9d3edc9" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="class_pdml_protocol.html">PdmlProtocol</a> * PdmlProtocol::createInstance </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Allocates and returns a new instance of the class. </p>
<p>Caller is responsible for freeing up after use. Subclasses MUST implement this function and register it with PdmlReader </p>
</div>
</div>
<a class="anchor" id="a921264e3c5f916db2533d4c2bc5141c6"></a><!-- doxytag: member="PdmlProtocol::fieldHandler" ref="a921264e3c5f916db2533d4c2bc5141c6" args="(QString name, const QXmlStreamAttributes &amp;attributes, OstProto::Protocol *pbProto, OstProto::Stream *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PdmlProtocol::fieldHandler </td>
<td>(</td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const QXmlStreamAttributes &amp;&#160;</td>
<td class="paramname"><em>attributes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Protocol *&#160;</td>
<td class="paramname"><em>pbProto</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Stream *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This method is called by PdmlReader for each field in the protocol. </p>
<p>Depending on whether it is a known or unknown field, the virtual methods <a class="el" href="class_pdml_protocol.html#a2d7462a9b7c8ff58c1277902d0bee9e3" title="Handles a &#39;known&#39; field.">knownFieldHandler()</a> and <a class="el" href="class_pdml_protocol.html#aa4e42812f7259649cce1663f6ffed034" title="Handles a &#39;unknown&#39; field.">unknownFieldHandler()</a> are invoked </p>
</div>
</div>
<a class="anchor" id="a29fd0e4f5e2e12a7a84948d6f86dbf7a"></a><!-- doxytag: member="PdmlProtocol::fieldId" ref="a29fd0e4f5e2e12a7a84948d6f86dbf7a" args="(QString name) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PdmlProtocol::fieldId </td>
<td>(</td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the protocol's protobuf field number corresponding to name. </p>
</div>
</div>
<a class="anchor" id="a0c82b3d98442e19852d3b3738c023aec"></a><!-- doxytag: member="PdmlProtocol::hasField" ref="a0c82b3d98442e19852d3b3738c023aec" args="(QString name) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool PdmlProtocol::hasField </td>
<td>(</td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>name</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns true if name is a 'known' field that can be directly mapped to the protobuf field. </p>
</div>
</div>
<a class="anchor" id="a2d7462a9b7c8ff58c1277902d0bee9e3"></a><!-- doxytag: member="PdmlProtocol::knownFieldHandler" ref="a2d7462a9b7c8ff58c1277902d0bee9e3" args="(QString name, QString valueHexStr, OstProto::Protocol *pbProto)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PdmlProtocol::knownFieldHandler </td>
<td>(</td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>valueHexStr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Protocol *&#160;</td>
<td class="paramname"><em>pbProto</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Handles a 'known' field. </p>
<p>Uses protobuf reflection interface to set the protobuf field name to valueHexStr as per the field's datatype </p>
</div>
</div>
<a class="anchor" id="aef66d163a7f2a541c1d4dc273354ca29"></a><!-- doxytag: member="PdmlProtocol::ostProtoId" ref="aef66d163a7f2a541c1d4dc273354ca29" args="() const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int PdmlProtocol::ostProtoId </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Returns the protocol's field number as defined in message 'Protocol', enum 'k' (<a href="file:">file:</a> protocol.proto) </p>
</div>
</div>
<a class="anchor" id="a0f6f93c259def7ad5f59958d3b077d5c"></a><!-- doxytag: member="PdmlProtocol::postProtocolHandler" ref="a0f6f93c259def7ad5f59958d3b077d5c" args="(OstProto::Protocol *pbProto, OstProto::Stream *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PdmlProtocol::postProtocolHandler </td>
<td>(</td>
<td class="paramtype">OstProto::Protocol *&#160;</td>
<td class="paramname"><em>pbProto</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Stream *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This method is called by PdmlReader after all fields within the protocol are processed. </p>
<p>Use this method to do any special handling that may be required for postprocessing </p>
</div>
</div>
<a class="anchor" id="a996a0f5f40076b87435cdb3b306e9148"></a><!-- doxytag: member="PdmlProtocol::prematureEndHandler" ref="a996a0f5f40076b87435cdb3b306e9148" args="(int pos, OstProto::Protocol *pbProto, OstProto::Stream *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PdmlProtocol::prematureEndHandler </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Protocol *&#160;</td>
<td class="paramname"><em>pbProto</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Stream *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This method is called by PdmlReader when it encounters a nested protocol in the PDML i.e. </p>
<p>a protocol within a protocol or a protocol within a field</p>
<p>This is a notification to the protocol that protocol processing will be ending prematurely. <a class="el" href="class_pdml_protocol.html#a0f6f93c259def7ad5f59958d3b077d5c" title="This method is called by PdmlReader after all fields within the protocol are processed.">postProtocolHandler()</a> will still be called in such cases. </p>
</div>
</div>
<a class="anchor" id="ae6996ae7dc9e81b096ad53046b757d02"></a><!-- doxytag: member="PdmlProtocol::preProtocolHandler" ref="ae6996ae7dc9e81b096ad53046b757d02" args="(QString name, const QXmlStreamAttributes &amp;attributes, int expectedPos, OstProto::Protocol *pbProto, OstProto::Stream *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PdmlProtocol::preProtocolHandler </td>
<td>(</td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const QXmlStreamAttributes &amp;&#160;</td>
<td class="paramname"><em>attributes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>expectedPos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Protocol *&#160;</td>
<td class="paramname"><em>pbProto</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Stream *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>This method is called by PdmlReader before any fields within the protocol are processed. </p>
<p>All attributes associated with the 'proto' tag in the PDML are passed to this method</p>
<p>Use this method to do any special handling that may be required for preprocessing </p>
</div>
</div>
<a class="anchor" id="aa4e42812f7259649cce1663f6ffed034"></a><!-- doxytag: member="PdmlProtocol::unknownFieldHandler" ref="aa4e42812f7259649cce1663f6ffed034" args="(QString name, int pos, int size, const QXmlStreamAttributes &amp;attributes, OstProto::Protocol *pbProto, OstProto::Stream *stream)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void PdmlProtocol::unknownFieldHandler </td>
<td>(</td>
<td class="paramtype">QString&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>pos</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const QXmlStreamAttributes &amp;&#160;</td>
<td class="paramname"><em>attributes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Protocol *&#160;</td>
<td class="paramname"><em>pbProto</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">OstProto::Stream *&#160;</td>
<td class="paramname"><em>stream</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td><code> [virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Handles a 'unknown' field. </p>
<p>The default implementation does nothing. Subclasses may need to implement this if the protocol contains 'unknown' fields. </p>
</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a4b58c8f079f60986126d084fb9167dd8"></a><!-- doxytag: member="PdmlProtocol::ostProtoId_" ref="a4b58c8f079f60986126d084fb9167dd8" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int <a class="el" href="class_pdml_protocol.html#a4b58c8f079f60986126d084fb9167dd8">PdmlProtocol::ostProtoId_</a><code> [protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Map of PDML field names to protobuf field numbers for 'known' fields. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>common/pdmlprotocol.h</li>
<li>common/pdmlprotocol.cpp</li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>
Generated on Tue Jun 2 2015 18:40:09 by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>
</body>
</html>