<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qpid Proton C++ API: Class Members</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Qpid Proton C++ API
   &#160;<span id="projectnumber">0.32.0</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('functions.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>

<h3><a id="index_a"></a>- a -</h3><ul>
<li>accept()
: <a class="el" href="classproton_1_1delivery.html#aadb9f3b844fb4cf98288cd3c60a3af91">delivery</a>
, <a class="el" href="classproton_1_1io_1_1connection__driver.html#a8a5938806dc28d71c3ed5f89cc537ddd">connection_driver</a>
</li>
<li>ACCEPTED
: <a class="el" href="classproton_1_1transfer.html#adc6e5733fc3c22f0a7b2914188c49c90a69c37229a15f9a89e188ad210f31c647">transfer</a>
</li>
<li>active()
: <a class="el" href="classproton_1_1connection.html#ad9735e23cb0888fb98e1c5893aecff7e">connection</a>
, <a class="el" href="classproton_1_1endpoint.html#a63fb7653fe206c5e9adef8f7ad6b4d7a">endpoint</a>
, <a class="el" href="classproton_1_1link.html#ad9735e23cb0888fb98e1c5893aecff7e">link</a>
, <a class="el" href="classproton_1_1session.html#ad9735e23cb0888fb98e1c5893aecff7e">session</a>
</li>
<li>add()
: <a class="el" href="classproton_1_1work__queue.html#a59dae2153455bc095477a3b66a0b681e">work_queue</a>
</li>
<li>add_credit()
: <a class="el" href="classproton_1_1receiver.html#a84d3a001340d11201e03c6ed7c763641">receiver</a>
</li>
<li>address()
: <a class="el" href="classproton_1_1source.html#a4744eb217c976c199b678bb5a0d55acf">source</a>
, <a class="el" href="classproton_1_1source__options.html#a36fa9e64134459cfe70707e0439ba850">source_options</a>
, <a class="el" href="classproton_1_1target.html#a4744eb217c976c199b678bb5a0d55acf">target</a>
, <a class="el" href="classproton_1_1target__options.html#a39a0acbf2c7de97e77df483ca9c4c6a9">target_options</a>
</li>
<li>AMQP
: <a class="el" href="classproton_1_1url.html#af0f2c496befc10e2fc0cf4999a733b4c">url</a>
</li>
<li>AMQPS
: <a class="el" href="classproton_1_1url.html#a2756fc4457346e3df1cc83fbfac6275b">url</a>
</li>
<li>annotation_key()
: <a class="el" href="classproton_1_1annotation__key.html#a056f77e21066cbf900772853454102a8">annotation_key</a>
</li>
<li>annotation_map
: <a class="el" href="classproton_1_1message.html#a3c6892bfc5d3b4b1972dc23c004929b7">message</a>
</li>
<li>anonymous()
: <a class="el" href="classproton_1_1source__options.html#af5b5466b8ec3d24975fccb7f394fec38">source_options</a>
, <a class="el" href="classproton_1_1target__options.html#a5daa885470cf76a7224f5f177a95f70d">target_options</a>
, <a class="el" href="classproton_1_1terminus.html#a6a20cc0c11ce5a1e369fdd0a51f992f5">terminus</a>
</li>
<li>ANONYMOUS_PEER
: <a class="el" href="classproton_1_1ssl.html#abe68233596c90fd29d934854560ff5f3ac0c5cd6b794574267c2ad08f485bd76d">ssl</a>
</li>
<li>AT_LEAST_ONCE
: <a class="el" href="structproton_1_1delivery__mode.html#a811fe196a5d9d37857c2f8adeeaac3c6a3cf51e9f762513a58768bb63e8ba14c1">delivery_mode</a>
</li>
<li>AT_MOST_ONCE
: <a class="el" href="structproton_1_1delivery__mode.html#a811fe196a5d9d37857c2f8adeeaac3c6adc975babe0d2bc27916397e614eb6624">delivery_mode</a>
</li>
<li>AUTH
: <a class="el" href="classproton_1_1sasl.html#af47997198e7e7301a1cd8602c7f02acda8b22fbb60fcbd7a4a5e1e6ff6ee38218">sasl</a>
</li>
<li>auto_accept()
: <a class="el" href="classproton_1_1receiver__options.html#a9b9ad83418de47f87c6c7062eaefb5b6">receiver_options</a>
</li>
<li>auto_settle()
: <a class="el" href="classproton_1_1receiver__options.html#af313abfa8d5b19e4b61c779907eb9980">receiver_options</a>
, <a class="el" href="classproton_1_1sender__options.html#a087eda4a18c293de85107fcfbb7ff31f">sender_options</a>
</li>
<li>auto_stop()
: <a class="el" href="classproton_1_1container.html#a1d5932054f172c66000aec9f4ed498df">container</a>
</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
