<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>Decoder (Qpid ProtonJ2 Parent 1.0.0-M9 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Decoder (Qpid ProtonJ2 Parent 1.0.0-M9 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":6,"i37":6,"i38":6,"i39":6,"i40":6,"i41":6,"i42":6,"i43":6,"i44":6,"i45":6,"i46":6,"i47":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Decoder.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.apache.qpid.protonj2.codec</a></div>
<h2 title="Interface Decoder" class="title">Interface Decoder</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="decoders/ProtonDecoder.html" title="class in org.apache.qpid.protonj2.codec.decoders">ProtonDecoder</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">Decoder</span></pre>
<div class="block">Decode AMQP types from a byte stream read from a <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> instance.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCachedDecoderState()">getCachedDecoderState</a></span>()</code></th>
<td class="colLast">
<div class="block">Return a singleton <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> instance that is meant to be shared within single threaded
 decoder interactions.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newDecoderState()">newDecoderState</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a new <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> instance that can be used when interacting with the
 Decoder.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">TypeDecoder</a>&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peekNextTypeDecoder(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">peekNextTypeDecoder</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Peeks ahead in the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> instance and returns a <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> that can
 read the next encoded AMQP type from the buffer's bytes.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types">Binary</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readBinary(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readBinary</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types"><code>Binary</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readBinaryAsBuffer(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readBinaryAsBuffer</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types"><code>Binary</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readBoolean(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readBoolean</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
           <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Boolean</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readBoolean(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,boolean)">readBoolean</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
           <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
           boolean&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readByte</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>byte</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,byte)">readByte</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
        byte&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readCharacter(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readCharacter</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
             <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Character</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>char</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readCharacter(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,char)">readCharacter</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
             <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
             char&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Character</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../types/Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readDecimal128(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDecimal128</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/Decimal128.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal128</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../types/Decimal32.html" title="class in org.apache.qpid.protonj2.types">Decimal32</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readDecimal32(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDecimal32</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
             <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/Decimal32.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal32</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../types/Decimal64.html" title="class in org.apache.qpid.protonj2.types">Decimal64</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readDecimal64(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDecimal64</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
             <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/Decimal64.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal64</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types">DeliveryTag</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readDeliveryTag(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDeliveryTag</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
               <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">This method expects to read a <a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types"><code>Binary</code></a> encoded type from the provided buffer and
 constructs a <a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types"><code>DeliveryTag</code></a> type that wraps the bytes encoded.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readDouble(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readDouble</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Double</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readDouble(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,double)">readDouble</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
          double&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Double</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readFloat(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readFloat</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
         <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Float</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readFloat(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,float)">readFloat</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
         <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
         float&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Float</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readInteger</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
           <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Integer</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,int)">readInteger</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
           <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
           int&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Integer</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readList(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readList</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readLong</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">readLong</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
        long&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>&lt;K,&#8203;V&gt;<br><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readMap(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readMap</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
       <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readMultiple(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,java.lang.Class)">readMultiple</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
            <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
            <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Reads one or more encoded values from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> an return it as an array of
 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a> instances which the caller must then interpret.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">TypeDecoder</a>&lt;?&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readNextTypeDecoder(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readNextTypeDecoder</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> instance and returns a <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> that can
 read the next encoded AMQP type from the buffer's bytes.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readObject(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readObject</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> an return it as an <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a>
 which the caller must then interpret.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readObject(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,java.lang.Class)">readObject</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
          <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Reads an encoded value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> an return it as an <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a>
 which the caller must then interpret.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readShort</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
         <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Short</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,short)">readShort</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
         <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
         short&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Short</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readString(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readString</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readSymbol(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readSymbol</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readSymbol(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,java.lang.String)">readSymbol</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
          <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readTimestamp(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readTimestamp</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
             <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded AMQP time stamp value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readTimestamp(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">readTimestamp</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
             <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
             long&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded AMQP time stamp value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../types/UnsignedByte.html" title="class in org.apache.qpid.protonj2.types">UnsignedByte</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readUnsignedByte</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedByte.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedByte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>byte</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,byte)">readUnsignedByte</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                byte&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedByte.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedByte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types">UnsignedInteger</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readUnsignedInteger</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedInteger</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,int)">readUnsignedInteger</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                   int&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedInteger</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">readUnsignedInteger</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                   long&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedInteger</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="../types/UnsignedLong.html" title="class in org.apache.qpid.protonj2.types">UnsignedLong</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readUnsignedLong</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedLong.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedLong</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">readUnsignedLong</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                long&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedLong.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedLong</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types">UnsignedShort</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readUnsignedShort</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                 <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedShort</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,int)">readUnsignedShort</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                 <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                 int&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedShort</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUnsignedShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,short)">readUnsignedShort</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                 <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                 short&nbsp;defaultValue)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedShort</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink">UUID</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#readUUID(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">readUUID</a></span>&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)</code></th>
<td class="colLast">
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>UUID</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec">Decoder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#registerDescribedTypeDecoder(org.apache.qpid.protonj2.codec.DescribedTypeDecoder)">registerDescribedTypeDecoder</a></span>&#8203;(<a href="DescribedTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">DescribedTypeDecoder</a>&lt;V&gt;&nbsp;decoder)</code></th>
<td class="colLast">
<div class="block">Allows custom <a href="DescribedTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>DescribedTypeDecoder</code></a> instances to be registered with this <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a>
 which will be used if the described type encoding is encountered during decode operations.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a id="newDecoderState()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newDecoderState</h4>
<pre class="methodSignature"><a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;newDecoderState()</pre>
<div class="block">Creates a new <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> instance that can be used when interacting with the
 Decoder.  For decoding that occurs on more than one thread while sharing a single
 <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a> instance a different state object per thread is required as the
 <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> object can retain some state information during the decode process
 that could be corrupted if more than one thread were to share a single instance.

 For single threaded decoding work the <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a> offers a utility
 cached <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> API that will return the same instance on each call which can
 reduce allocation overhead and make using the <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a> simpler.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a newly constructed <a href="EncoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>EncoderState</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="getCachedDecoderState()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCachedDecoderState</h4>
<pre class="methodSignature"><a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;getCachedDecoderState()</pre>
<div class="block">Return a singleton <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> instance that is meant to be shared within single threaded
 decoder interactions.  If more than one thread makes use of this cached <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> the
 results of any decoding done using this state object is not guaranteed to be correct.  The returned
 instance will have its reset method called to ensure that any previously stored state data is cleared
 before the next use.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a cached <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> linked to this Decoder instance that has been reset.</dd>
</dl>
</li>
</ul>
<a id="readBoolean(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readBoolean</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink">Boolean</a>&nbsp;readBoolean&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                    <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
             throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Boolean</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readBoolean(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,boolean)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readBoolean</h4>
<pre class="methodSignature">boolean&nbsp;readBoolean&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                    <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                    boolean&nbsp;defaultValue)
             throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readByte</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink">Byte</a>&nbsp;readByte&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,byte)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readByte</h4>
<pre class="methodSignature">byte&nbsp;readByte&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
              byte&nbsp;defaultValue)
       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Byte.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Byte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedByte</h4>
<pre class="methodSignature"><a href="../types/UnsignedByte.html" title="class in org.apache.qpid.protonj2.types">UnsignedByte</a>&nbsp;readUnsignedByte&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedByte.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedByte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedByte(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,byte)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedByte</h4>
<pre class="methodSignature">byte&nbsp;readUnsignedByte&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                      <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                      byte&nbsp;defaultValue)
               throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedByte.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedByte</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readCharacter(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readCharacter</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink">Character</a>&nbsp;readCharacter&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                 throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Character</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readCharacter(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,char)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readCharacter</h4>
<pre class="methodSignature">char&nbsp;readCharacter&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                   char&nbsp;defaultValue)
            throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Character.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Character</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readDecimal32(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDecimal32</h4>
<pre class="methodSignature"><a href="../types/Decimal32.html" title="class in org.apache.qpid.protonj2.types">Decimal32</a>&nbsp;readDecimal32&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                 throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/Decimal32.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal32</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readDecimal64(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDecimal64</h4>
<pre class="methodSignature"><a href="../types/Decimal64.html" title="class in org.apache.qpid.protonj2.types">Decimal64</a>&nbsp;readDecimal64&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                 throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/Decimal64.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal64</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readDecimal128(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDecimal128</h4>
<pre class="methodSignature"><a href="../types/Decimal128.html" title="class in org.apache.qpid.protonj2.types">Decimal128</a>&nbsp;readDecimal128&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                          <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                   throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/Decimal128.html" title="class in org.apache.qpid.protonj2.types"><code>Decimal128</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readShort</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink">Short</a>&nbsp;readShort&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Short</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,short)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readShort</h4>
<pre class="methodSignature">short&nbsp;readShort&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                short&nbsp;defaultValue)
         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Short.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Short</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedShort</h4>
<pre class="methodSignature"><a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types">UnsignedShort</a>&nbsp;readUnsignedShort&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedShort</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,short)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedShort</h4>
<pre class="methodSignature">short&nbsp;readUnsignedShort&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                        short&nbsp;defaultValue)
                 throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedShort</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedShort(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedShort</h4>
<pre class="methodSignature">int&nbsp;readUnsignedShort&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                      <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                      int&nbsp;defaultValue)
               throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedShort.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedShort</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readInteger</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&nbsp;readInteger&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                    <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
             throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Integer</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readInteger</h4>
<pre class="methodSignature">int&nbsp;readInteger&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                int&nbsp;defaultValue)
         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Integer</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedInteger</h4>
<pre class="methodSignature"><a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types">UnsignedInteger</a>&nbsp;readUnsignedInteger&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                                    <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                             throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedInteger</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedInteger</h4>
<pre class="methodSignature">int&nbsp;readUnsignedInteger&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                        <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                        int&nbsp;defaultValue)
                 throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedInteger</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedInteger(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedInteger</h4>
<pre class="methodSignature">long&nbsp;readUnsignedInteger&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                         <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                         long&nbsp;defaultValue)
                  throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedInteger.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedInteger</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLong</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;readLong&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLong</h4>
<pre class="methodSignature">long&nbsp;readLong&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
              long&nbsp;defaultValue)
       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedLong</h4>
<pre class="methodSignature"><a href="../types/UnsignedLong.html" title="class in org.apache.qpid.protonj2.types">UnsignedLong</a>&nbsp;readUnsignedLong&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedLong.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedLong</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUnsignedLong(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUnsignedLong</h4>
<pre class="methodSignature">long&nbsp;readUnsignedLong&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                      <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                      long&nbsp;defaultValue)
               throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/UnsignedLong.html" title="class in org.apache.qpid.protonj2.types"><code>UnsignedLong</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readFloat(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFloat</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink">Float</a>&nbsp;readFloat&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Float</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readFloat(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,float)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readFloat</h4>
<pre class="methodSignature">float&nbsp;readFloat&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                float&nbsp;defaultValue)
         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Float.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Float</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readDouble(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDouble</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink">Double</a>&nbsp;readDouble&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Double</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readDouble(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,double)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDouble</h4>
<pre class="methodSignature">double&nbsp;readDouble&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                  double&nbsp;defaultValue)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Double.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Double</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readBinary(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readBinary</h4>
<pre class="methodSignature"><a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types">Binary</a>&nbsp;readBinary&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types"><code>Binary</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readBinaryAsBuffer(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readBinaryAsBuffer</h4>
<pre class="methodSignature"><a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;readBinaryAsBuffer&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                                <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                         throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types"><code>Binary</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source and returned in a <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readDeliveryTag(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readDeliveryTag</h4>
<pre class="methodSignature"><a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types">DeliveryTag</a>&nbsp;readDeliveryTag&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                            <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                     throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">This method expects to read a <a href="../types/Binary.html" title="class in org.apache.qpid.protonj2.types"><code>Binary</code></a> encoded type from the provided buffer and
 constructs a <a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types"><code>DeliveryTag</code></a> type that wraps the bytes encoded.  If the encoding is
 a NULL AMQP type then this method returns <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The buffer to read a Binary encoded value from</dd>
<dd><code>state</code> - The current encoding state.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new DeliveryTag instance or null if an AMQP NULL encoding is found.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if an error occurs while decoding the <a href="../types/DeliveryTag.html" title="interface in org.apache.qpid.protonj2.types"><code>DeliveryTag</code></a> instance.</dd>
</dl>
</li>
</ul>
<a id="readString(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readString</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;readString&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readSymbol(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readSymbol</h4>
<pre class="methodSignature"><a href="../types/Symbol.html" title="class in org.apache.qpid.protonj2.types">Symbol</a>&nbsp;readSymbol&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="../types/Symbol.html" title="class in org.apache.qpid.protonj2.types"><code>Symbol</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readSymbol(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,java.lang.String)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readSymbol</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;readSymbol&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                  <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;defaultValue)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>String</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readTimestamp(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readTimestamp</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink">Long</a>&nbsp;readTimestamp&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
            throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded AMQP time stamp value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source and return a <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Long.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Long</code></a> with the time value.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readTimestamp(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,long)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readTimestamp</h4>
<pre class="methodSignature">long&nbsp;readTimestamp&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                   long&nbsp;defaultValue)
            throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded AMQP time stamp value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>defaultValue</code> - A default value to return if the next encoded value is a Null encoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readUUID(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUUID</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink">UUID</a>&nbsp;readUUID&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
              <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
       throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/UUID.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>UUID</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readObject(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readObject</h4>
<pre class="methodSignature"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;readObject&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                  <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
           throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> an return it as an <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a>
 which the caller must then interpret.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not able to be decoded.</dd>
</dl>
</li>
</ul>
<a id="readObject(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readObject</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;T&nbsp;readObject&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                 <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)
          throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> an return it as an <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a>
 which the caller must then interpret.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the type that will be used when casting and returning the decoded value.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>clazz</code> - The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Class</code></a> type that should be used to cast the returned value.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not able to be decoded.</dd>
</dl>
</li>
</ul>
<a id="readMultiple(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState,java.lang.Class)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readMultiple</h4>
<pre class="methodSignature">&lt;T&gt;&nbsp;T[]&nbsp;readMultiple&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                     <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state,
                     <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;T&gt;&nbsp;clazz)
              throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads one or more encoded values from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> an return it as an array of
 <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Object</code></a> instances which the caller must then interpret.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the type that will be used when casting and returning the decoded value.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dd><code>clazz</code> - The <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>Class</code></a> type that should be used to cast the returned array.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not able to be decoded.</dd>
</dl>
</li>
</ul>
<a id="readMap(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readMap</h4>
<pre class="methodSignature">&lt;K,&#8203;V&gt;&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;K,&#8203;V&gt;&nbsp;readMap&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                            throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Map</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - The key type for the map that is being read.</dd>
<dd><code>V</code> - The value type for the map that is being read.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readList(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readList</h4>
<pre class="methodSignature">&lt;V&gt;&nbsp;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;V&gt;&nbsp;readList&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                     <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
              throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads an encoded <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>List</code></a> value from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> assuming that the
 next value in the byte stream is that type.  The operation fails if the next encoded type is
 not what was expected.  If the caller wishes to recover from failed decode attempt they should
 mark the and reset the input to make a further read attempt.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>V</code> - The value type for the list being read.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> where the read operation takes place.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> that the decoder can use when decoding.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value read from the provided byte source.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if the value fails to decode is not of the expected type,</dd>
</dl>
</li>
</ul>
<a id="readNextTypeDecoder(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readNextTypeDecoder</h4>
<pre class="methodSignature"><a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">TypeDecoder</a>&lt;?&gt;&nbsp;readNextTypeDecoder&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                            throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Reads from the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> instance and returns a <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> that can
 read the next encoded AMQP type from the buffer's bytes.  If an error occurs attempting to read
 and determine the next type decoder an <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec"><code>DecodeException</code></a> is thrown.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The buffer to read from to determine the next <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> needed.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> value that can be used for intermediate decoding tasks.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> instance that can read the next type in the buffer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if an error occurs while reading the next type decoder.</dd>
</dl>
</li>
</ul>
<a id="peekNextTypeDecoder(org.apache.qpid.protonj2.buffer.ProtonBuffer,org.apache.qpid.protonj2.codec.DecoderState)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>peekNextTypeDecoder</h4>
<pre class="methodSignature"><a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">TypeDecoder</a>&lt;?&gt;&nbsp;peekNextTypeDecoder&#8203;(<a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer">ProtonBuffer</a>&nbsp;buffer,
                                   <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec">DecoderState</a>&nbsp;state)
                            throws <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></pre>
<div class="block">Peeks ahead in the given <a href="../buffer/ProtonBuffer.html" title="interface in org.apache.qpid.protonj2.buffer"><code>ProtonBuffer</code></a> instance and returns a <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> that can
 read the next encoded AMQP type from the buffer's bytes.  If an error occurs attempting to read
 and determine the next type decoder an <a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec"><code>DecodeException</code></a> is thrown.  The underlying buffer
 is not modified as a result of the peek operation and the returned <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> will fail
 to properly read the type until the encoding bytes are read.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>buffer</code> - The buffer to read from to determine the next <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> needed.</dd>
<dd><code>state</code> - The <a href="DecoderState.html" title="interface in org.apache.qpid.protonj2.codec"><code>DecoderState</code></a> value that can be used for intermediate decoding tasks.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a <a href="TypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>TypeDecoder</code></a> instance that can provide insight into the next type in the buffer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="DecodeException.html" title="class in org.apache.qpid.protonj2.codec">DecodeException</a></code> - if an error occurs while peeking ahead for the next type decoder.</dd>
</dl>
</li>
</ul>
<a id="registerDescribedTypeDecoder(org.apache.qpid.protonj2.codec.DescribedTypeDecoder)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>registerDescribedTypeDecoder</h4>
<pre class="methodSignature">&lt;V&gt;&nbsp;<a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec">Decoder</a>&nbsp;registerDescribedTypeDecoder&#8203;(<a href="DescribedTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec">DescribedTypeDecoder</a>&lt;V&gt;&nbsp;decoder)</pre>
<div class="block">Allows custom <a href="DescribedTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>DescribedTypeDecoder</code></a> instances to be registered with this <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a>
 which will be used if the described type encoding is encountered during decode operations.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>V</code> - The type that the decoder reads.</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>decoder</code> - A <a href="DescribedTypeDecoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>DescribedTypeDecoder</code></a> instance to be registered with this <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this <a href="Decoder.html" title="interface in org.apache.qpid.protonj2.codec"><code>Decoder</code></a> instance.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Decoder.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</footer>
</body>
</html>
