blob: 9d96bfe7dbd0ad8cb9037bf8cd5c3878121bbb73 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qpid Proton C++ API: decoder</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Qpid Proton C++ API
&#160;<span id="projectnumber">0.32.0</span>
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classproton_1_1codec_1_1decoder.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classproton_1_1codec_1_1decoder-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">decoder</div> </div>
</div><!--header-->
<div class="contents">
<p><b>Unsettled API</b> - A stream-like decoder from AMQP bytes to C++ values.
<a href="classproton_1_1codec_1_1decoder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="decoder_8hpp_source.html">decoder.hpp</a>&gt;</code></p>
<p>Inherits data.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac9222fed91a5066887b42f471de0be8a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#ac9222fed91a5066887b42f471de0be8a">decoder</a> (const data &amp;d, bool exact=false)</td></tr>
<tr class="memdesc:ac9222fed91a5066887b42f471de0be8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap a Proton C data object. <a href="classproton_1_1codec_1_1decoder.html#ac9222fed91a5066887b42f471de0be8a">More...</a><br /></td></tr>
<tr class="separator:ac9222fed91a5066887b42f471de0be8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaca283b3eeb8861b7f7e8e94f784810"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#adaca283b3eeb8861b7f7e8e94f784810">decoder</a> (const internal::value_base &amp;, bool exact=false)</td></tr>
<tr class="memdesc:adaca283b3eeb8861b7f7e8e94f784810"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attach decoder to a <a class="el" href="classproton_1_1value.html" title="A holder for any AMQP value, simple or complex.">proton::value</a>. <a href="classproton_1_1codec_1_1decoder.html#adaca283b3eeb8861b7f7e8e94f784810">More...</a><br /></td></tr>
<tr class="separator:adaca283b3eeb8861b7f7e8e94f784810"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2db9ebfc344a8b1718099047639e32b2"><td class="memItemLeft" align="right" valign="top"><a id="a2db9ebfc344a8b1718099047639e32b2"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#a2db9ebfc344a8b1718099047639e32b2">decode</a> (const char *buffer, size_t size)</td></tr>
<tr class="memdesc:a2db9ebfc344a8b1718099047639e32b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode AMQP data from a buffer and add it to the end of the decoders stream. <br /></td></tr>
<tr class="separator:a2db9ebfc344a8b1718099047639e32b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a2c9746655f00930f1d609b2bb9ff17"><td class="memItemLeft" align="right" valign="top"><a id="a8a2c9746655f00930f1d609b2bb9ff17"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#a8a2c9746655f00930f1d609b2bb9ff17">decode</a> (const std::string &amp;)</td></tr>
<tr class="memdesc:a8a2c9746655f00930f1d609b2bb9ff17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode AMQP data from a std::string and add it to the end of the decoders stream. <br /></td></tr>
<tr class="separator:a8a2c9746655f00930f1d609b2bb9ff17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba1201662b7dccd64b782cb43e40d3e0"><td class="memItemLeft" align="right" valign="top"><a id="aba1201662b7dccd64b782cb43e40d3e0"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#aba1201662b7dccd64b782cb43e40d3e0">more</a> ()</td></tr>
<tr class="memdesc:aba1201662b7dccd64b782cb43e40d3e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if there are more value to extract at the current level. <br /></td></tr>
<tr class="separator:aba1201662b7dccd64b782cb43e40d3e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3a00236ce433d05e26c0eb2ed5dfcd0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceproton.html#a83c2656d467d69eb49725c18f5aa13a9">type_id</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#af3a00236ce433d05e26c0eb2ed5dfcd0">next_type</a> ()</td></tr>
<tr class="memdesc:af3a00236ce433d05e26c0eb2ed5dfcd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the type of the next value that will be read by operator&gt;&gt;. <a href="classproton_1_1codec_1_1decoder.html#af3a00236ce433d05e26c0eb2ed5dfcd0">More...</a><br /></td></tr>
<tr class="separator:af3a00236ce433d05e26c0eb2ed5dfcd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a010d92fa617e5921f73b80bac0bc5690"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#a010d92fa617e5921f73b80bac0bc5690">operator&gt;&gt;</a> (<a class="el" href="namespaceproton_1_1codec.html#structproton_1_1codec_1_1start">start</a> &amp;)</td></tr>
<tr class="memdesc:a010d92fa617e5921f73b80bac0bc5690"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start decoding a container type, such as an ARRAY, LIST or MAP. <a href="classproton_1_1codec_1_1decoder.html#a010d92fa617e5921f73b80bac0bc5690">More...</a><br /></td></tr>
<tr class="separator:a010d92fa617e5921f73b80bac0bc5690"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29037b1d70f61e041b2d5be7c67b577d"><td class="memItemLeft" align="right" valign="top"><a id="a29037b1d70f61e041b2d5be7c67b577d"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#a29037b1d70f61e041b2d5be7c67b577d">operator&gt;&gt;</a> (const <a class="el" href="namespaceproton_1_1codec.html#structproton_1_1codec_1_1finish">finish</a> &amp;)</td></tr>
<tr class="memdesc:a29037b1d70f61e041b2d5be7c67b577d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finish decoding a container type, and move on to the next value in the stream. <br /></td></tr>
<tr class="separator:a29037b1d70f61e041b2d5be7c67b577d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6c6ddca9af56625b28bc7989b02f24b"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:ac6c6ddca9af56625b28bc7989b02f24b"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#ac6c6ddca9af56625b28bc7989b02f24b">operator&gt;&gt;</a> (sequence_ref&lt; T &gt; r)</td></tr>
<tr class="memdesc:ac6c6ddca9af56625b28bc7989b02f24b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract any AMQP sequence (ARRAY, LIST or MAP) to a C++ sequence container of T if the elements types are convertible to T. <a href="classproton_1_1codec_1_1decoder.html#ac6c6ddca9af56625b28bc7989b02f24b">More...</a><br /></td></tr>
<tr class="separator:ac6c6ddca9af56625b28bc7989b02f24b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92c526a77d6aa412e17051a2cfeb7210"><td class="memTemplParams" colspan="2"><a id="a92c526a77d6aa412e17051a2cfeb7210"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:a92c526a77d6aa412e17051a2cfeb7210"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#a92c526a77d6aa412e17051a2cfeb7210">operator&gt;&gt;</a> (associative_ref&lt; T &gt; r)</td></tr>
<tr class="memdesc:a92c526a77d6aa412e17051a2cfeb7210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract an AMQP MAP to a C++ associative container. <br /></td></tr>
<tr class="separator:a92c526a77d6aa412e17051a2cfeb7210"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad96e5571bbd7384096ca07a8a9368ffc"><td class="memTemplParams" colspan="2"><a id="ad96e5571bbd7384096ca07a8a9368ffc"></a>
template&lt;class T &gt; </td></tr>
<tr class="memitem:ad96e5571bbd7384096ca07a8a9368ffc"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classproton_1_1codec_1_1decoder.html#ad96e5571bbd7384096ca07a8a9368ffc">operator&gt;&gt;</a> (pair_sequence_ref&lt; T &gt; r)</td></tr>
<tr class="memdesc:ad96e5571bbd7384096ca07a8a9368ffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract an AMQP MAP to a C++ push_back sequence of pairs preserving encoded order. <br /></td></tr>
<tr class="separator:ad96e5571bbd7384096ca07a8a9368ffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Extract built-in types</div></td></tr>
<tr><td colspan="2"><div class="groupText"><dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="structproton_1_1conversion__error.html" title="An error converting between AMQP and C++ data.">conversion_error</a></td><td>if the decoder is empty or has an incompatible type. </td></tr>
</table>
</dd>
</dl>
</div></td></tr>
<tr class="memitem:adc575dd1b25a7601cc71fe8e80457f43"><td class="memItemLeft" align="right" valign="top"><a id="adc575dd1b25a7601cc71fe8e80457f43"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (bool &amp;)</td></tr>
<tr class="separator:adc575dd1b25a7601cc71fe8e80457f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d8b3b8760a59e9490652a484de93e70"><td class="memItemLeft" align="right" valign="top"><a id="a4d8b3b8760a59e9490652a484de93e70"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (uint8_t &amp;)</td></tr>
<tr class="separator:a4d8b3b8760a59e9490652a484de93e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f054af2a511d424ca34335dad93737f"><td class="memItemLeft" align="right" valign="top"><a id="a5f054af2a511d424ca34335dad93737f"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (int8_t &amp;)</td></tr>
<tr class="separator:a5f054af2a511d424ca34335dad93737f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19f58389ddd0fa0d9f40f87e529df5bf"><td class="memItemLeft" align="right" valign="top"><a id="a19f58389ddd0fa0d9f40f87e529df5bf"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (uint16_t &amp;)</td></tr>
<tr class="separator:a19f58389ddd0fa0d9f40f87e529df5bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abfb95713e72f16b3f14cf2e1085d93eb"><td class="memItemLeft" align="right" valign="top"><a id="abfb95713e72f16b3f14cf2e1085d93eb"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (int16_t &amp;)</td></tr>
<tr class="separator:abfb95713e72f16b3f14cf2e1085d93eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35e5dfb305aeec065f565d1ce1a89f2e"><td class="memItemLeft" align="right" valign="top"><a id="a35e5dfb305aeec065f565d1ce1a89f2e"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (uint32_t &amp;)</td></tr>
<tr class="separator:a35e5dfb305aeec065f565d1ce1a89f2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5c5e5e03acd6735fb1781a5f5672b30"><td class="memItemLeft" align="right" valign="top"><a id="ae5c5e5e03acd6735fb1781a5f5672b30"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (int32_t &amp;)</td></tr>
<tr class="separator:ae5c5e5e03acd6735fb1781a5f5672b30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fee1841fa7cce09f07041a47efc00c9"><td class="memItemLeft" align="right" valign="top"><a id="a3fee1841fa7cce09f07041a47efc00c9"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (wchar_t &amp;)</td></tr>
<tr class="separator:a3fee1841fa7cce09f07041a47efc00c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26e92e158f8c6684be0236a21458ad09"><td class="memItemLeft" align="right" valign="top"><a id="a26e92e158f8c6684be0236a21458ad09"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (uint64_t &amp;)</td></tr>
<tr class="separator:a26e92e158f8c6684be0236a21458ad09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af25d1c3933fd5d4c18b77015e1f1b8b8"><td class="memItemLeft" align="right" valign="top"><a id="af25d1c3933fd5d4c18b77015e1f1b8b8"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (int64_t &amp;)</td></tr>
<tr class="separator:af25d1c3933fd5d4c18b77015e1f1b8b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0cdcdff89272b09ba7d0dc56b903d55"><td class="memItemLeft" align="right" valign="top"><a id="ab0cdcdff89272b09ba7d0dc56b903d55"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1timestamp.html">timestamp</a> &amp;)</td></tr>
<tr class="separator:ab0cdcdff89272b09ba7d0dc56b903d55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6fc102e31e40a8acb1ec9d7c4705021"><td class="memItemLeft" align="right" valign="top"><a id="aa6fc102e31e40a8acb1ec9d7c4705021"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (float &amp;)</td></tr>
<tr class="separator:aa6fc102e31e40a8acb1ec9d7c4705021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b4867d35efeee5a7d49877d077495f5"><td class="memItemLeft" align="right" valign="top"><a id="a6b4867d35efeee5a7d49877d077495f5"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (double &amp;)</td></tr>
<tr class="separator:a6b4867d35efeee5a7d49877d077495f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8250ee1a2cf98f1b7f07eb4358119ee4"><td class="memItemLeft" align="right" valign="top"><a id="a8250ee1a2cf98f1b7f07eb4358119ee4"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1decimal32.html">decimal32</a> &amp;)</td></tr>
<tr class="separator:a8250ee1a2cf98f1b7f07eb4358119ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e04d25e0720164b02b338847caaa57c"><td class="memItemLeft" align="right" valign="top"><a id="a3e04d25e0720164b02b338847caaa57c"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1decimal64.html">decimal64</a> &amp;)</td></tr>
<tr class="separator:a3e04d25e0720164b02b338847caaa57c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff31dbe5fd28ec7beb763be9413b89a4"><td class="memItemLeft" align="right" valign="top"><a id="aff31dbe5fd28ec7beb763be9413b89a4"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1decimal128.html">decimal128</a> &amp;)</td></tr>
<tr class="separator:aff31dbe5fd28ec7beb763be9413b89a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0af8a48905f3e5b13272b1ce6fd23e5"><td class="memItemLeft" align="right" valign="top"><a id="af0af8a48905f3e5b13272b1ce6fd23e5"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1uuid.html">uuid</a> &amp;)</td></tr>
<tr class="separator:af0af8a48905f3e5b13272b1ce6fd23e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a029b0f7c9b2e2b076d495489fe78d6b2"><td class="memItemLeft" align="right" valign="top"><a id="a029b0f7c9b2e2b076d495489fe78d6b2"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (std::string &amp;)</td></tr>
<tr class="separator:a029b0f7c9b2e2b076d495489fe78d6b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27050435fa90fb0c1181e5e8ab62b520"><td class="memItemLeft" align="right" valign="top"><a id="a27050435fa90fb0c1181e5e8ab62b520"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1symbol.html">symbol</a> &amp;)</td></tr>
<tr class="separator:a27050435fa90fb0c1181e5e8ab62b520"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd6514dec15be25db7b061fbed925a2a"><td class="memItemLeft" align="right" valign="top"><a id="acd6514dec15be25db7b061fbed925a2a"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1binary.html">binary</a> &amp;)</td></tr>
<tr class="separator:acd6514dec15be25db7b061fbed925a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2168ca4c037368477131b6f35c7cee6"><td class="memItemLeft" align="right" valign="top"><a id="ac2168ca4c037368477131b6f35c7cee6"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1message__id.html">message_id</a> &amp;)</td></tr>
<tr class="separator:ac2168ca4c037368477131b6f35c7cee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbca8b4d1f0521a386cd81c92d24c667"><td class="memItemLeft" align="right" valign="top"><a id="adbca8b4d1f0521a386cd81c92d24c667"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1annotation__key.html">annotation_key</a> &amp;)</td></tr>
<tr class="separator:adbca8b4d1f0521a386cd81c92d24c667"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4708f111d1c046cb1184f5877df3735"><td class="memItemLeft" align="right" valign="top"><a id="aa4708f111d1c046cb1184f5877df3735"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1scalar.html">scalar</a> &amp;)</td></tr>
<tr class="separator:aa4708f111d1c046cb1184f5877df3735"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93c5ccb222d57853fd0f97f2b6cbdf62"><td class="memItemLeft" align="right" valign="top"><a id="a93c5ccb222d57853fd0f97f2b6cbdf62"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (internal::value_base &amp;)</td></tr>
<tr class="separator:a93c5ccb222d57853fd0f97f2b6cbdf62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:affae6ad78f8a4884bcb1a37e2119f00a"><td class="memItemLeft" align="right" valign="top"><a id="affae6ad78f8a4884bcb1a37e2119f00a"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (<a class="el" href="classproton_1_1null.html">null</a> &amp;)</td></tr>
<tr class="separator:affae6ad78f8a4884bcb1a37e2119f00a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8178fbcb022e9403e7b0978d7eb4fddb"><td class="memItemLeft" align="right" valign="top"><a id="a8178fbcb022e9403e7b0978d7eb4fddb"></a>
<a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&gt;&gt;</b> (decltype(nullptr)&amp;)</td></tr>
<tr class="separator:a8178fbcb022e9403e7b0978d7eb4fddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a085a31aed84d3c8d710102131bae556e"><td class="memItemLeft" align="right" valign="top"><a id="a085a31aed84d3c8d710102131bae556e"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>message</b></td></tr>
<tr class="separator:a085a31aed84d3c8d710102131bae556e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><b>Unsettled API</b> - A stream-like decoder from AMQP bytes to C++ values. </p>
<p>For internal use only.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="types_page.html">AMQP and C++ types</a> for the recommended ways to manage AMQP data </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ac9222fed91a5066887b42f471de0be8a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9222fed91a5066887b42f471de0be8a">&#9670;&nbsp;</a></span>decoder() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> </td>
<td>(</td>
<td class="paramtype">const data &amp;&#160;</td>
<td class="paramname"><em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>exact</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Wrap a Proton C data object. </p>
<p>The exact flag if set means decode only when there is an exact match between the AMQP and C++ type. If not set then perform automatic conversions. </p>
</div>
</div>
<a id="adaca283b3eeb8861b7f7e8e94f784810"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaca283b3eeb8861b7f7e8e94f784810">&#9670;&nbsp;</a></span>decoder() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a> </td>
<td>(</td>
<td class="paramtype">const internal::value_base &amp;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>exact</em> = <code>false</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Attach decoder to a <a class="el" href="classproton_1_1value.html" title="A holder for any AMQP value, simple or complex.">proton::value</a>. </p>
<p>The decoder is rewound to the start of the data. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="af3a00236ce433d05e26c0eb2ed5dfcd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3a00236ce433d05e26c0eb2ed5dfcd0">&#9670;&nbsp;</a></span>next_type()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="namespaceproton.html#a83c2656d467d69eb49725c18f5aa13a9">type_id</a> next_type </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get the type of the next value that will be read by operator&gt;&gt;. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="structproton_1_1conversion__error.html" title="An error converting between AMQP and C++ data.">conversion_error</a></td><td>if no more values. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classproton_1_1codec_1_1decoder.html#aba1201662b7dccd64b782cb43e40d3e0" title="Return true if there are more value to extract at the current level.">decoder::more()</a>. </dd></dl>
</div>
</div>
<a id="a010d92fa617e5921f73b80bac0bc5690"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a010d92fa617e5921f73b80bac0bc5690">&#9670;&nbsp;</a></span>operator&gt;&gt;() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a>&amp; operator&gt;&gt; </td>
<td>(</td>
<td class="paramtype"><a class="el" href="namespaceproton_1_1codec.html#structproton_1_1codec_1_1start">start</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start decoding a container type, such as an ARRAY, LIST or MAP. </p>
<p>This "enters" the container, <a class="el" href="classproton_1_1codec_1_1decoder.html#aba1201662b7dccd64b782cb43e40d3e0" title="Return true if there are more value to extract at the current level.">more()</a> will return false at the end of the container. Call finish() to "exit" the container and move on to the next value. </p>
</div>
</div>
<a id="ac6c6ddca9af56625b28bc7989b02f24b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6c6ddca9af56625b28bc7989b02f24b">&#9670;&nbsp;</a></span>operator&gt;&gt;() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a>&amp; operator&gt;&gt; </td>
<td>(</td>
<td class="paramtype">sequence_ref&lt; T &gt;&#160;</td>
<td class="paramname"><em>r</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Extract any AMQP sequence (ARRAY, LIST or MAP) to a C++ sequence container of T if the elements types are convertible to T. </p>
<p>A MAP is extracted as <code>[key1, value1, key2, value2...]</code>. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>proton/codec/<a class="el" href="decoder_8hpp_source.html">decoder.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="namespaceproton.html">proton</a></li><li class="navelem"><a class="el" href="namespaceproton_1_1codec.html">codec</a></li><li class="navelem"><a class="el" href="classproton_1_1codec_1_1decoder.html">decoder</a></li>
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>