This file is indexed.

/usr/share/proton-0.14.0/docs/api-c/transport_8h_source.html is in libqpid-proton8-dev-doc 0.14.0-5.1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<!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>proton: /build/qpid-proton-4llz2H/qpid-proton-0.14.0/proton-c/include/proton/transport.h Source File</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="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>
<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">proton
   &#160;<span id="projectnumber">0</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>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- 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 id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_3d7fee5163f29235853f3037db69c226.html">proton-c</a></li><li class="navelem"><a class="el" href="dir_ca4610195e991eb8124aba7312da0967.html">include</a></li><li class="navelem"><a class="el" href="dir_819e9c3ec552076ba9984156db77a62b.html">proton</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">transport.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="transport_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef PROTON_TRANSPORT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define PROTON_TRANSPORT_H 1</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="import__export_8h.html">proton/import_export.h</a>&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="type__compat_8h.html">proton/type_compat.h</a>&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="condition_8h.html">proton/condition.h</a>&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> * @file</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment"> * Transport API for the proton Engine.</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"> * @defgroup transport Transport</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment"> * @ingroup engine</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment"> * @{</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"> * Holds the trace flags for an AMQP transport.</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"> * The trace flags for an AMQP transport control what sort of</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment"> * information is logged by an AMQP transport. The following bits can</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment"> * be set:</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment"> * - ::PN_TRACE_OFF</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment"> * - ::PN_TRACE_RAW</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment"> * - ::PN_TRACE_FRM</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment"> * - ::PN_TRACE_DRV</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment"> * - ::PN_TRACE_EVT</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">   58</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">pn_trace_t</a>;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment"> * Callback for customizing logging behaviour.</span></div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">   63</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a>)(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keyword">const</span> <span class="keywordtype">char</span> *message);</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment"> * Turn logging off entirely.</span></div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="group__transport.html#gae8f32e46e94953bab10bee530eee9044">   68</a></span>&#160;<span class="preprocessor">#define PN_TRACE_OFF (0)</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment"> * Log raw binary data into/out of the transport.</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="group__transport.html#gafde0eb3c73fb98816f4238d42d48f3d8">   73</a></span>&#160;<span class="preprocessor">#define PN_TRACE_RAW (1)</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment"> * Log frames into/out of the transport.</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group__transport.html#gab8e04b4c128379ff27e6b801c0bce494">   78</a></span>&#160;<span class="preprocessor">#define PN_TRACE_FRM (2)</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment"> * Log driver related events, e.g. initialization, end of stream, etc.</span></div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="group__transport.html#ga7065ad65f95c995a24e416edc95aead4">   83</a></span>&#160;<span class="preprocessor">#define PN_TRACE_DRV (4)</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"> * Log events</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="group__transport.html#ga3bde88d15fcfda400a36d8f9e5d51688">   88</a></span>&#160;<span class="preprocessor">#define PN_TRACE_EVT (8)</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment"> * Factory for creating a transport.</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment"> * A transport is used by a connection to interface with the network.</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment"> * There can only be one connection associated with a transport. See</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment"> * pn_transport_bind().</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment"> * Initially a transport is configured to be a client transport. Use pn_transport_set_server()</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment"> * to configure the transport as a server transport.</span></div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment"> * A client transport initiates outgoing connections.</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment"> * A client transport must be configured with the protocol layers to use and cannot</span></div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment"> * configure itself automatically.</span></div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment"> * A server transport accepts incoming connections. It can automatically</span></div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment"> * configure itself to include the various protocol layers depending on</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment"> * the incoming protocol headers.</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment"> * @return pointer to new transport</span></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *<a class="code" href="group__transport.html#gad75d8d99018bc22c2d23ef8e820e7a6d">pn_transport</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment"> * Configure a transport as a server</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#ga0f9cecc86a7185e6c9f25ead5c46b82b">pn_transport_set_server</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment"> * Free a transport object.</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment"> * When a transport is freed, it is automatically unbound from its</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="comment"> * associated connection.</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment"> * @param[in] transport a transport object or NULL</span></div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gaa1b0a748aad3cc35684ee095978dbd58">pn_transport_free</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">/** Retrieve the authenticated user</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment"> * This is usually used at the the server end to find the name of the authenticated user.</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment"> * On the client it will merely return whatever user was passed in to the</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment"> * pn_connection_set_user() API of the bound connection.</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment"> * The returned value is only reliable after the PN_TRANSPORT_AUTHENTICATED event has been received.</span></div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment"> * @return</span></div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="comment"> * If a the user is anonymous (either no SASL layer is negotiated or the SASL ANONYMOUS mechanism is used)</span></div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="comment"> * then the user will be &quot;anonymous&quot;</span></div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="comment"> * Otherwise a string containing the user is returned.</span></div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__transport.html#gafa71f9e73acbe139941b9ebe754b3241">pn_transport_get_user</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment"> * Set whether a non authenticated transport connection is allowed</span></div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment"> * There are several ways within the AMQP protocol suite to get unauthenticated connections:</span></div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment"> * - Use no SASL layer (with either no TLS or TLS without client certificates)</span></div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment"> * - Use an SASL layer but the ANONYMOUS mechanism</span></div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="comment"> * The default if this option is not set is to allow unauthenticated connections.</span></div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="comment"> * @param[in] required boolean is true when authenticated connections are required</span></div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gafc2157ad11690d0b0679aa34db1a1d5a">pn_transport_require_auth</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">bool</span> required);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment"> * Tell whether the transport connection is authenticated</span></div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="comment"> * Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN</span></div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment"> * event is received.</span></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment"> * @return bool representing authentication</span></div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">bool</span> <a class="code" href="group__transport.html#gab35340b55e7a5cc6420ee8426c8e10ed">pn_transport_is_authenticated</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment"> * Set whether a non encrypted transport connection is allowed</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment"> * There are several ways within the AMQP protocol suite to get encrypted connections:</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment"> * - Use TLS/SSL</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment"> * - Use an SASL with a mechanism that supports saecurity layers</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment"> * The default if this option is not set is to allow unencrypted connections.</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="comment"> * @param[in] required boolean is true when encrypted connections are required</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gadfc4a4be3de102890cc5c0ee4c1d8481">pn_transport_require_encryption</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">bool</span> required);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment"> * Tell whether the transport connection is encrypted</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment"> * Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment"> * event is received.</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="comment"> * @return bool representing encryption</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">bool</span> <a class="code" href="group__transport.html#ga8e5deef63ba7b1483a6fadec65c1c3b5">pn_transport_is_encrypted</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment"> * Get additional information about the condition of the transport.</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="comment"> * When a PN_TRANSPORT_ERROR event occurs, this operation can be used</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment"> * to access the details of the error condtion.</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment"> * The pointer returned by this operation is valid until the</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="comment"> * transport object is freed.</span></div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment"> * @param[in] transport the transport object</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment"> * @return the transport&#39;s condition object</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a> *<a class="code" href="group__transport.html#ga2d0ad8e3e702ed47088789e33bf0c457">pn_transport_condition</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment"> * @deprecated</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a>  <a class="code" href="error_8h.html#a24a289d5b32c9bd8a775600a5af83d52">pn_error_t</a> *<a class="code" href="group__transport.html#ga00a271caac7d531ae795d78db81199e9">pn_transport_error</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="comment"> * Binds the transport to an AMQP connection.</span></div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment"> * @return an error code, or 0 on success</span></div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#gad07706c1e7db90d1b5d0ad6caf4c5892">pn_transport_bind</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="code" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *connection);</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="comment"> * Unbinds a transport from its AMQP connection.</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment"> * @return an error code, or 0 on success</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#gaf0e4c15f27f610ca4c5d64c0f4e95f07">pn_transport_unbind</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment"> * Update a transports trace flags.</span></div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment"> * The trace flags for a transport control what sort of information is</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment"> * logged. See ::pn_trace_t for more details.</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="comment"> * @param[in] trace the trace flags</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gaee7ed090a3fa99d9f46d145939af893b">pn_transport_trace</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, pn_trace_t trace);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="comment"> * Set the tracing function used by a transport.</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment"> * The tracing function is called to perform logging. Overriding this</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment"> * function allows embedding applications to divert the engine&#39;s</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="comment"> * logging to a place of their choice.</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment"> * @param[in] tracer the tracing function</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gaad5defb0c74cea7e7224c13edfc86c47">pn_transport_set_tracer</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="code" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a> tracer);</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="comment"> * Get the tracning function used by a transport.</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="comment"> * @return the tracing function used by a transport</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a> <a class="code" href="group__transport.html#ga99b48ee38d0bc21855eee158f8584aca">pn_transport_get_tracer</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="comment"> * Get the application context that is associated with a transport object.</span></div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment"> * The application context for a transport may be set using</span></div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment"> * ::pn_transport_set_context.</span></div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="comment"> * @param[in] transport the transport whose context is to be returned.</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="comment"> * @return the application context for the transport object</span></div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> *<a class="code" href="group__transport.html#ga9016acfea374d8b58183158b8d857ee8">pn_transport_get_context</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment"> * @deprecated</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="comment"> * Set a new application context for a transport object.</span></div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="comment"> * The application context for a transport object may be retrieved using</span></div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="comment"> * ::pn_transport_get_context.</span></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment"> * @param[in] transport the transport object</span></div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment"> * @param[in] context the application context</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#ga493c8b24e44413338e7afc52aef8d2fd">pn_transport_set_context</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">void</span> *context);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="comment"> * Get the attachments that are associated with a transport object.</span></div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="comment"> * @param[in] transport the transport whose attachments are to be returned.</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="comment"> * @return the attachments for the transport object</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="object_8h.html#a70655c422210ccf8f4616e4c28a8b1d4">pn_record_t</a> *<a class="code" href="group__transport.html#ga2dfb9c5a747cf45f2bb40fd1001cc54d">pn_transport_attachments</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="comment"> * Log a message using a transport&#39;s logging mechanism.</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="comment"> * This can be useful in a debugging context as the log message will</span></div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="comment"> * be prefixed with the transport&#39;s identifier.</span></div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="comment"> * @param[in] message the message to be logged</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gaa0e8f0ac87011ef42d91a215c94d8e7c">pn_transport_log</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keyword">const</span> <span class="keywordtype">char</span> *message);</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="comment"> * Log a printf formatted message using a transport&#39;s logging</span></div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;<span class="comment"> * mechanism.</span></div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;<span class="comment"> * This can be useful in a debugging context as the log message will</span></div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;<span class="comment"> * be prefixed with the transport&#39;s identifier.</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="comment"> * @param[in] fmt the printf formatted message to be logged</span></div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="comment"> * @param[in] ap a vector containing the format arguments</span></div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#ga6475de6019c60e6d7f4f8f971c980162">pn_transport_vlogf</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, va_list ap);</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment"> * Log a printf formatted message using a transport&#39;s logging</span></div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="comment"> * mechanism.</span></div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment"> * This can be useful in a debugging context as the log message will</span></div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="comment"> * be prefixed with the transport&#39;s identifier.</span></div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="comment"> * @param[in] fmt the printf formatted message to be logged</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#ga81f66ece6523ad3e6f0426b1dbb53e5e">pn_transport_logf</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keyword">const</span> <span class="keywordtype">char</span> *fmt, ...);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="comment"> * Get the maximum allowed channel for a transport.</span></div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="comment"> * This will be the minimum of </span></div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="comment"> *   1. limit imposed by this proton implementation</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="comment"> *   2. limit imposed by remote peer</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment"> *   3. limit imposed by this application, using pn_transport_set_channel_max()</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment"> * @return the maximum allowed channel</span></div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> uint16_t <a class="code" href="group__transport.html#ga36ff89334941ed67b98af731e5696844">pn_transport_get_channel_max</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment"> * Set the maximum allowed channel number for a transport.</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment"> * Note that this is the maximum channel number allowed, giving a </span></div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment"> * valid channel number range of [0..channel_max]. Therefore the </span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="comment"> * maximum number of simultaineously active channels will be </span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment"> * channel_max plus 1.</span></div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment"> * You can call this function more than once to raise and lower</span></div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment"> * the limit your application imposes on max channels for this </span></div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment"> * transport.  However, smaller limits may be imposed by this</span></div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment"> * library, or by the remote peer.</span></div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="comment"> * After the OPEN frame has been sent to the remote peer,</span></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="comment"> * further calls to this function will have no effect.</span></div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment"> * @param[in] channel_max the maximum allowed channel</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment"> * @return PN_OK, or PN_STATE_ERR if it is too late to change channel_max</span></div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#ga470514642911834717ec0cd2a0cdab3f">pn_transport_set_channel_max</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, uint16_t channel_max);</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment"> * Get the maximum allowed channel of a transport&#39;s remote peer.</span></div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="comment"> * @return the maximum allowed channel of the transport&#39;s remote peer</span></div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> uint16_t <a class="code" href="group__transport.html#ga0842d4831299a6aa87075620e8bba436">pn_transport_remote_channel_max</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment"> * Get the maximum frame size of a transport.</span></div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="comment"> * @return the maximum frame size of the transport object</span></div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> uint32_t <a class="code" href="group__transport.html#ga93bb966654732ecdd07557dc3307a7e2">pn_transport_get_max_frame</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="comment"> * Set the maximum frame size of a transport.</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="comment"> * @param[in] size the maximum frame size for the transport object</span></div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#ga2974d2551737553bc953232f3bd6438c">pn_transport_set_max_frame</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, uint32_t size);</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<span class="comment"> * Get the maximum frame size of a transport&#39;s remote peer.</span></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;<span class="comment"> * @return the maximum frame size of the transport&#39;s remote peer</span></div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> uint32_t <a class="code" href="group__transport.html#gaeb38ead1b320bdb0572d819712fd84c5">pn_transport_get_remote_max_frame</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="comment"> * Get the idle timeout for a transport.</span></div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;<span class="comment"> * A zero idle timeout means heartbeats are disabled.</span></div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="comment"> * @return the transport&#39;s idle timeout</span></div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__primitives.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> <a class="code" href="group__transport.html#ga2d650c473958ae118701d8aefd96aaa1">pn_transport_get_idle_timeout</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="comment"> * Set the idle timeout for a transport.</span></div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="comment"> * A zero idle timeout means heartbeats are disabled.</span></div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="comment"> * @param[in] timeout the idle timeout for the transport object</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gadd73956f25923eff0ca93784d943d349">pn_transport_set_idle_timeout</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="code" href="group__primitives.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> timeout);</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;<span class="comment"> * Get the idle timeout for a transport&#39;s remote peer.</span></div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="comment"> * A zero idle timeout means heartbeats are disabled.</span></div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="comment"> * @return the idle timeout for the transport&#39;s remote peer</span></div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__primitives.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a> <a class="code" href="group__transport.html#gabae92ce766617943d51fdab7504b867c">pn_transport_get_remote_idle_timeout</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="comment"> * @deprecated</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> ssize_t <a class="code" href="group__transport.html#ga6e1cdd7040dbd032b9e31a2c5900a314">pn_transport_input</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keyword">const</span> <span class="keywordtype">char</span> *bytes, <span class="keywordtype">size_t</span> available);<span class="comment"></span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="comment"> * @deprecated</span></div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> ssize_t <a class="code" href="group__transport.html#ga3d1d51b1aea73388a8d4a11e49119817">pn_transport_output</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">char</span> *bytes, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;<span class="comment"> * Get the amount of free space for input following the transport&#39;s</span></div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="comment"> * tail pointer.</span></div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="comment"> * If the engine is in an exceptional state such as encountering an</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;<span class="comment"> * error condition or reaching the end of stream state, a negative</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="comment"> * value will be returned indicating the condition. If an error is</span></div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;<span class="comment"> * indicated, futher details can be obtained from</span></div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="comment"> * ::pn_transport_error. Calls to ::pn_transport_process may alter the</span></div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;<span class="comment"> * value of this pointer. See ::pn_transport_process for details.</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="comment"> * @return the free space in the transport, PN_EOS or error code if &lt; 0</span></div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> ssize_t <a class="code" href="group__transport.html#ga0cdcc7fc4f5459687083dcb46796e0dd">pn_transport_capacity</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="comment"> * Get the transport&#39;s tail pointer.</span></div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;<span class="comment"> * The amount of free space following this pointer is reported by</span></div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;<span class="comment"> * ::pn_transport_capacity. Calls to ::pn_transport_process may alther</span></div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;<span class="comment"> * the value of this pointer. See ::pn_transport_process for details.</span></div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;<span class="comment"> * @return a pointer to the transport&#39;s input buffer, NULL if no capacity available.</span></div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">char</span> *<a class="code" href="group__transport.html#ga51a02f24b448365039da44744f4e65a6">pn_transport_tail</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;<span class="comment"> * Pushes the supplied bytes into the tail of the transport.</span></div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="comment"> * This is equivalent to copying @c size bytes afther the tail pointer</span></div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;<span class="comment"> * and then calling ::pn_transport_process with an argument of @c</span></div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="comment"> * size. Only some of the bytes will be copied if there is</span></div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="comment"> * insufficienty capacity available. Use ::pn_transport_capacity to</span></div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;<span class="comment"> * determine how much capacity the transport has.</span></div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="comment"> * @param[in] src the start of the data to push into the transport</span></div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="comment"> * @param[in] size the amount of data to push into the transport</span></div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="comment"> * @return the number of bytes pushed on success, or error code if &lt; 0</span></div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> ssize_t <a class="code" href="group__transport.html#ga2d769e6c83f9f6f740648798c3d668ff">pn_transport_push</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="comment"> * Process input data following the tail pointer.</span></div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="comment"> * Calling this function will cause the transport to consume @c size</span></div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="comment"> * bytes of input occupying the free space following the tail pointer.</span></div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="comment"> * Calls to this function may change the value of ::pn_transport_tail,</span></div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="comment"> * as well as the amount of free space reported by</span></div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment"> * ::pn_transport_capacity.</span></div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="comment"> * @param[in] size the amount of data written to the transport&#39;s input buffer</span></div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="comment"> * @return 0 on success, or error code if &lt; 0</span></div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#gaa9a5bd5aef7c5dadbc67a236ad1b3447">pn_transport_process</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="comment"> * Indicate that the input has reached End Of Stream (EOS).</span></div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="comment"> * This tells the transport that no more input will be forthcoming.</span></div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="comment"> * @return 0 on success, or error code if &lt; 0</span></div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#gaab1f8bacfea4934f0f9dae50488f6aac">pn_transport_close_tail</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;<span class="comment"> * Get the number of pending output bytes following the transport&#39;s</span></div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;<span class="comment"> * head pointer.</span></div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;<span class="comment"> * If the engine is in an exceptional state such as encountering an</span></div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="comment"> * error condition or reaching the end of stream state, a negative</span></div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="comment"> * value will be returned indicating the condition. If an error is</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<span class="comment"> * indicated, further details can be obtained from</span></div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="comment"> * ::pn_transport_error. Calls to ::pn_transport_pop may alter the</span></div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="comment"> * value of this pointer. See ::pn_transport_pop for details.</span></div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;<span class="comment"> * @return the number of pending output bytes, or an error code</span></div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> ssize_t <a class="code" href="group__transport.html#ga0fa738666a89b80dfbe381c2768b1d7f">pn_transport_pending</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;<span class="comment"> * Get the transport&#39;s head pointer.</span></div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="comment"> * This pointer references queued output data. The</span></div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="comment"> * ::pn_transport_pending function reports how many bytes of output</span></div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="comment"> * data follow this pointer. Calls to ::pn_transport_pop may alter</span></div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="comment"> * this pointer and any data it references. See ::pn_transport_pop for</span></div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="comment"> * details.</span></div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;<span class="comment"> * @return a pointer to the transport&#39;s output buffer, or NULL if no pending output.</span></div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="group__transport.html#gac92129f1805ec946d5a792ae4a1b3327">pn_transport_head</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;<span class="comment"> * Copies @c size bytes from the head of the transport to the @c dst</span></div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;<span class="comment"> * pointer.</span></div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;<span class="comment"> * It is an error to call this with a value of @c size that is greater</span></div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;<span class="comment"> * than the value reported by ::pn_transport_pending.</span></div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="comment"> * @param[out] dst the destination buffer</span></div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="comment"> * @param[in] size the capacity of the destination buffer</span></div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="comment"> * @return number of bytes copied on success, or error code if &lt; 0</span></div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> ssize_t <a class="code" href="group__transport.html#ga10a9c4fc00faf70adedc76a941b1cfe9">pn_transport_peek</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">char</span> *dst, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<span class="comment"> * Removes @c size bytes of output from the pending output queue</span></div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="comment"> * following the transport&#39;s head pointer.</span></div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;<span class="comment"> * Calls to this function may alter the transport&#39;s head pointer as</span></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="comment"> * well as the number of pending bytes reported by</span></div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;<span class="comment"> * ::pn_transport_pending.</span></div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;<span class="comment"> * @param[in] size the number of bytes to remove</span></div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">void</span> <a class="code" href="group__transport.html#gaeb3c887ab8b0cbf90a0f50dcb799debb">pn_transport_pop</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="comment"> * Indicate that the output has closed.</span></div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="comment"> * This tells the transport that no more output will be popped.</span></div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;<span class="comment"> * @param[in] transport the transport</span></div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;<span class="comment"> * @return 0 on success, or error code if &lt; 0</span></div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">int</span> <a class="code" href="group__transport.html#ga3aee76a664f84898b7a979075ac0e2b8">pn_transport_close_head</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;<span class="comment"> * Check if a transport has buffered data.</span></div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="comment"> * @return true if the transport has buffered data, false otherwise</span></div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">bool</span> <a class="code" href="group__transport.html#ga0a651e6b090ec7c3f86b1d5133372995">pn_transport_quiesced</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;<span class="comment"> * Check if a transport is closed.</span></div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="comment"> * A transport is defined to be closed when both the tail and the head</span></div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="comment"> * are closed. In other words, when both ::pn_transport_capacity() &lt; 0</span></div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="comment"> * and ::pn_transport_pending() &lt; 0.</span></div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="comment"> * @return true if the transport is closed, false otherwise</span></div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <span class="keywordtype">bool</span> <a class="code" href="group__transport.html#ga69b8c9a7dbdef76644711274b6f61987">pn_transport_closed</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;<span class="comment"> * Process any pending transport timer events.</span></div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="comment"> * This method should be called after all pending input has been</span></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<span class="comment"> * processed by the transport (see ::pn_transport_input), and before</span></div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="comment"> * generating output (see ::pn_transport_output). It returns the</span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="comment"> * deadline for the next pending timer event, if any are present.</span></div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="comment"> * @param[in] transport the transport to process.</span></div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<span class="comment"> * @param[in] now the current time</span></div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<span class="comment"> * @return if non-zero, then the expiration time of the next pending timer event for the</span></div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="comment"> * transport.  The caller must invoke pn_transport_tick again at least once at or before</span></div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="comment"> * this deadline occurs.</span></div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__primitives.html#gad337c365b498106064ec28e00e5fb6dd">pn_timestamp_t</a> <a class="code" href="group__transport.html#ga2be777fea1b19677ac50072c487d9ad1">pn_transport_tick</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport, <a class="code" href="group__primitives.html#gad337c365b498106064ec28e00e5fb6dd">pn_timestamp_t</a> now);</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="comment"> * Get the number of frames output by a transport.</span></div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<span class="comment"> * @return the number of frames output by the transport</span></div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> uint64_t <a class="code" href="group__transport.html#ga5ceae486fe78521728d05b9c4db7d5f7">pn_transport_get_frames_output</a>(<span class="keyword">const</span> <a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;<span class="comment">/**</span></div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;<span class="comment"> * Get the number of frames input by a transport.</span></div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;<span class="comment"> * @return the number of frames input by the transport</span></div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> uint64_t <a class="code" href="group__transport.html#gad5614b4c311ab84a21213f60011a6840">pn_transport_get_frames_input</a>(<span class="keyword">const</span> <a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="comment">/** Access the AMQP Connection associated with the transport.</span></div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;<span class="comment"> * @param[in] transport a transport object</span></div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;<span class="comment"> * @return the connection context for the transport, or NULL if</span></div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="comment"> *         none</span></div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<a class="code" href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a> <a class="code" href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a> *<a class="code" href="group__transport.html#ga2d2c338ec9d913391f1364bf3e701eae">pn_transport_connection</a>(<a class="code" href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a> *transport);</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;}</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;<span class="comment">/** @}</span></div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* transport.h */</span><span class="preprocessor"></span></div><div class="ttc" id="group__transport_html_gaa1b0a748aad3cc35684ee095978dbd58"><div class="ttname"><a href="group__transport.html#gaa1b0a748aad3cc35684ee095978dbd58">pn_transport_free</a></div><div class="ttdeci">PN_EXTERN void pn_transport_free(pn_transport_t *transport)</div><div class="ttdoc">Free a transport object. </div></div>
<div class="ttc" id="group__transport_html_ga5ceae486fe78521728d05b9c4db7d5f7"><div class="ttname"><a href="group__transport.html#ga5ceae486fe78521728d05b9c4db7d5f7">pn_transport_get_frames_output</a></div><div class="ttdeci">PN_EXTERN uint64_t pn_transport_get_frames_output(const pn_transport_t *transport)</div><div class="ttdoc">Get the number of frames output by a transport. </div></div>
<div class="ttc" id="group__transport_html_ga8e5deef63ba7b1483a6fadec65c1c3b5"><div class="ttname"><a href="group__transport.html#ga8e5deef63ba7b1483a6fadec65c1c3b5">pn_transport_is_encrypted</a></div><div class="ttdeci">PN_EXTERN bool pn_transport_is_encrypted(pn_transport_t *transport)</div><div class="ttdoc">Tell whether the transport connection is encrypted. </div></div>
<div class="ttc" id="group__transport_html_gaad5defb0c74cea7e7224c13edfc86c47"><div class="ttname"><a href="group__transport.html#gaad5defb0c74cea7e7224c13edfc86c47">pn_transport_set_tracer</a></div><div class="ttdeci">PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tracer)</div><div class="ttdoc">Set the tracing function used by a transport. </div></div>
<div class="ttc" id="group__transport_html_gadfc4a4be3de102890cc5c0ee4c1d8481"><div class="ttname"><a href="group__transport.html#gadfc4a4be3de102890cc5c0ee4c1d8481">pn_transport_require_encryption</a></div><div class="ttdeci">PN_EXTERN void pn_transport_require_encryption(pn_transport_t *transport, bool required)</div><div class="ttdoc">Set whether a non encrypted transport connection is allowed. </div></div>
<div class="ttc" id="group__transport_html_ga99b48ee38d0bc21855eee158f8584aca"><div class="ttname"><a href="group__transport.html#ga99b48ee38d0bc21855eee158f8584aca">pn_transport_get_tracer</a></div><div class="ttdeci">PN_EXTERN pn_tracer_t pn_transport_get_tracer(pn_transport_t *transport)</div><div class="ttdoc">Get the tracning function used by a transport. </div></div>
<div class="ttc" id="import__export_8h_html"><div class="ttname"><a href="import__export_8h.html">import_export.h</a></div></div>
<div class="ttc" id="group__transport_html_ga36ff89334941ed67b98af731e5696844"><div class="ttname"><a href="group__transport.html#ga36ff89334941ed67b98af731e5696844">pn_transport_get_channel_max</a></div><div class="ttdeci">PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport)</div><div class="ttdoc">Get the maximum allowed channel for a transport. </div></div>
<div class="ttc" id="group__transport_html_ga0a651e6b090ec7c3f86b1d5133372995"><div class="ttname"><a href="group__transport.html#ga0a651e6b090ec7c3f86b1d5133372995">pn_transport_quiesced</a></div><div class="ttdeci">PN_EXTERN bool pn_transport_quiesced(pn_transport_t *transport)</div><div class="ttdoc">Check if a transport has buffered data. </div></div>
<div class="ttc" id="group__transport_html_ga2d2c338ec9d913391f1364bf3e701eae"><div class="ttname"><a href="group__transport.html#ga2d2c338ec9d913391f1364bf3e701eae">pn_transport_connection</a></div><div class="ttdeci">PN_EXTERN pn_connection_t * pn_transport_connection(pn_transport_t *transport)</div><div class="ttdoc">Access the AMQP Connection associated with the transport. </div></div>
<div class="ttc" id="group__transport_html_ga493c8b24e44413338e7afc52aef8d2fd"><div class="ttname"><a href="group__transport.html#ga493c8b24e44413338e7afc52aef8d2fd">pn_transport_set_context</a></div><div class="ttdeci">PN_EXTERN void pn_transport_set_context(pn_transport_t *transport, void *context)</div></div>
<div class="ttc" id="group__primitives_html_ga9a701bc6dc9af9f42c3f4679172a723c"><div class="ttname"><a href="group__primitives.html#ga9a701bc6dc9af9f42c3f4679172a723c">pn_millis_t</a></div><div class="ttdeci">uint32_t pn_millis_t</div><div class="ttdef"><b>Definition:</b> types.h:47</div></div>
<div class="ttc" id="object_8h_html_a70655c422210ccf8f4616e4c28a8b1d4"><div class="ttname"><a href="object_8h.html#a70655c422210ccf8f4616e4c28a8b1d4">pn_record_t</a></div><div class="ttdeci">struct pn_record_t pn_record_t</div><div class="ttdef"><b>Definition:</b> object.h:46</div></div>
<div class="ttc" id="group__transport_html_ga2d769e6c83f9f6f740648798c3d668ff"><div class="ttname"><a href="group__transport.html#ga2d769e6c83f9f6f740648798c3d668ff">pn_transport_push</a></div><div class="ttdeci">PN_EXTERN ssize_t pn_transport_push(pn_transport_t *transport, const char *src, size_t size)</div><div class="ttdoc">Pushes the supplied bytes into the tail of the transport. </div></div>
<div class="ttc" id="group__transport_html_gac26eda05f649bbf0399f3d8d78d12fa8"><div class="ttname"><a href="group__transport.html#gac26eda05f649bbf0399f3d8d78d12fa8">pn_transport_t</a></div><div class="ttdeci">struct pn_transport_t pn_transport_t</div><div class="ttdoc">An AMQP Transport object. </div><div class="ttdef"><b>Definition:</b> types.h:262</div></div>
<div class="ttc" id="group__transport_html_ga2d650c473958ae118701d8aefd96aaa1"><div class="ttname"><a href="group__transport.html#ga2d650c473958ae118701d8aefd96aaa1">pn_transport_get_idle_timeout</a></div><div class="ttdeci">PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport)</div><div class="ttdoc">Get the idle timeout for a transport. </div></div>
<div class="ttc" id="group__transport_html_gafa71f9e73acbe139941b9ebe754b3241"><div class="ttname"><a href="group__transport.html#gafa71f9e73acbe139941b9ebe754b3241">pn_transport_get_user</a></div><div class="ttdeci">PN_EXTERN const char * pn_transport_get_user(pn_transport_t *transport)</div><div class="ttdoc">Retrieve the authenticated user. </div></div>
<div class="ttc" id="group__transport_html_gaa0e8f0ac87011ef42d91a215c94d8e7c"><div class="ttname"><a href="group__transport.html#gaa0e8f0ac87011ef42d91a215c94d8e7c">pn_transport_log</a></div><div class="ttdeci">PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message)</div><div class="ttdoc">Log a message using a transport&amp;#39;s logging mechanism. </div></div>
<div class="ttc" id="group__transport_html_gaa9a5bd5aef7c5dadbc67a236ad1b3447"><div class="ttname"><a href="group__transport.html#gaa9a5bd5aef7c5dadbc67a236ad1b3447">pn_transport_process</a></div><div class="ttdeci">PN_EXTERN int pn_transport_process(pn_transport_t *transport, size_t size)</div><div class="ttdoc">Process input data following the tail pointer. </div></div>
<div class="ttc" id="group__transport_html_gab35340b55e7a5cc6420ee8426c8e10ed"><div class="ttname"><a href="group__transport.html#gab35340b55e7a5cc6420ee8426c8e10ed">pn_transport_is_authenticated</a></div><div class="ttdeci">PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport)</div><div class="ttdoc">Tell whether the transport connection is authenticated. </div></div>
<div class="ttc" id="group__transport_html_gaeb38ead1b320bdb0572d819712fd84c5"><div class="ttname"><a href="group__transport.html#gaeb38ead1b320bdb0572d819712fd84c5">pn_transport_get_remote_max_frame</a></div><div class="ttdeci">PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport)</div><div class="ttdoc">Get the maximum frame size of a transport&amp;#39;s remote peer. </div></div>
<div class="ttc" id="type__compat_8h_html"><div class="ttname"><a href="type__compat_8h.html">type_compat.h</a></div></div>
<div class="ttc" id="import__export_8h_html_acfa9628d87130a64f95ee17c57a7c13b"><div class="ttname"><a href="import__export_8h.html#acfa9628d87130a64f95ee17c57a7c13b">PN_EXTERN</a></div><div class="ttdeci">#define PN_EXTERN</div><div class="ttdef"><b>Definition:</b> import_export.h:53</div></div>
<div class="ttc" id="group__transport_html_ga2d0ad8e3e702ed47088789e33bf0c457"><div class="ttname"><a href="group__transport.html#ga2d0ad8e3e702ed47088789e33bf0c457">pn_transport_condition</a></div><div class="ttdeci">PN_EXTERN pn_condition_t * pn_transport_condition(pn_transport_t *transport)</div><div class="ttdoc">Get additional information about the condition of the transport. </div></div>
<div class="ttc" id="group__transport_html_gaeb3c887ab8b0cbf90a0f50dcb799debb"><div class="ttname"><a href="group__transport.html#gaeb3c887ab8b0cbf90a0f50dcb799debb">pn_transport_pop</a></div><div class="ttdeci">PN_EXTERN void pn_transport_pop(pn_transport_t *transport, size_t size)</div><div class="ttdoc">Removes size bytes of output from the pending output queue following the transport&amp;#39;s head pointer...</div></div>
<div class="ttc" id="group__transport_html_ga51a02f24b448365039da44744f4e65a6"><div class="ttname"><a href="group__transport.html#ga51a02f24b448365039da44744f4e65a6">pn_transport_tail</a></div><div class="ttdeci">PN_EXTERN char * pn_transport_tail(pn_transport_t *transport)</div><div class="ttdoc">Get the transport&amp;#39;s tail pointer. </div></div>
<div class="ttc" id="condition_8h_html"><div class="ttname"><a href="condition_8h.html">condition.h</a></div><div class="ttdoc">The Condition API for the proton Engine. </div></div>
<div class="ttc" id="group__transport_html_gaee7ed090a3fa99d9f46d145939af893b"><div class="ttname"><a href="group__transport.html#gaee7ed090a3fa99d9f46d145939af893b">pn_transport_trace</a></div><div class="ttdeci">PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace)</div><div class="ttdoc">Update a transports trace flags. </div></div>
<div class="ttc" id="group__transport_html_gadd73956f25923eff0ca93784d943d349"><div class="ttname"><a href="group__transport.html#gadd73956f25923eff0ca93784d943d349">pn_transport_set_idle_timeout</a></div><div class="ttdeci">PN_EXTERN void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout)</div><div class="ttdoc">Set the idle timeout for a transport. </div></div>
<div class="ttc" id="group__transport_html_ga10a9c4fc00faf70adedc76a941b1cfe9"><div class="ttname"><a href="group__transport.html#ga10a9c4fc00faf70adedc76a941b1cfe9">pn_transport_peek</a></div><div class="ttdeci">PN_EXTERN ssize_t pn_transport_peek(pn_transport_t *transport, char *dst, size_t size)</div><div class="ttdoc">Copies size bytes from the head of the transport to the dst pointer. </div></div>
<div class="ttc" id="group__transport_html_ga470514642911834717ec0cd2a0cdab3f"><div class="ttname"><a href="group__transport.html#ga470514642911834717ec0cd2a0cdab3f">pn_transport_set_channel_max</a></div><div class="ttdeci">PN_EXTERN int pn_transport_set_channel_max(pn_transport_t *transport, uint16_t channel_max)</div><div class="ttdoc">Set the maximum allowed channel number for a transport. </div></div>
<div class="ttc" id="group__transport_html_ga6e1cdd7040dbd032b9e31a2c5900a314"><div class="ttname"><a href="group__transport.html#ga6e1cdd7040dbd032b9e31a2c5900a314">pn_transport_input</a></div><div class="ttdeci">PN_EXTERN ssize_t pn_transport_input(pn_transport_t *transport, const char *bytes, size_t available)</div></div>
<div class="ttc" id="group__transport_html_gabae92ce766617943d51fdab7504b867c"><div class="ttname"><a href="group__transport.html#gabae92ce766617943d51fdab7504b867c">pn_transport_get_remote_idle_timeout</a></div><div class="ttdeci">PN_EXTERN pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport)</div><div class="ttdoc">Get the idle timeout for a transport&amp;#39;s remote peer. </div></div>
<div class="ttc" id="group__transport_html_ga0842d4831299a6aa87075620e8bba436"><div class="ttname"><a href="group__transport.html#ga0842d4831299a6aa87075620e8bba436">pn_transport_remote_channel_max</a></div><div class="ttdeci">PN_EXTERN uint16_t pn_transport_remote_channel_max(pn_transport_t *transport)</div><div class="ttdoc">Get the maximum allowed channel of a transport&amp;#39;s remote peer. </div></div>
<div class="ttc" id="group__transport_html_gad5614b4c311ab84a21213f60011a6840"><div class="ttname"><a href="group__transport.html#gad5614b4c311ab84a21213f60011a6840">pn_transport_get_frames_input</a></div><div class="ttdeci">PN_EXTERN uint64_t pn_transport_get_frames_input(const pn_transport_t *transport)</div><div class="ttdoc">Get the number of frames input by a transport. </div></div>
<div class="ttc" id="group__transport_html_gaab1f8bacfea4934f0f9dae50488f6aac"><div class="ttname"><a href="group__transport.html#gaab1f8bacfea4934f0f9dae50488f6aac">pn_transport_close_tail</a></div><div class="ttdeci">PN_EXTERN int pn_transport_close_tail(pn_transport_t *transport)</div><div class="ttdoc">Indicate that the input has reached End Of Stream (EOS). </div></div>
<div class="ttc" id="group__transport_html_gad75d8d99018bc22c2d23ef8e820e7a6d"><div class="ttname"><a href="group__transport.html#gad75d8d99018bc22c2d23ef8e820e7a6d">pn_transport</a></div><div class="ttdeci">PN_EXTERN pn_transport_t * pn_transport(void)</div><div class="ttdoc">Factory for creating a transport. </div></div>
<div class="ttc" id="group__transport_html_ga3aee76a664f84898b7a979075ac0e2b8"><div class="ttname"><a href="group__transport.html#ga3aee76a664f84898b7a979075ac0e2b8">pn_transport_close_head</a></div><div class="ttdeci">PN_EXTERN int pn_transport_close_head(pn_transport_t *transport)</div><div class="ttdoc">Indicate that the output has closed. </div></div>
<div class="ttc" id="group__transport_html_ga3d1d51b1aea73388a8d4a11e49119817"><div class="ttname"><a href="group__transport.html#ga3d1d51b1aea73388a8d4a11e49119817">pn_transport_output</a></div><div class="ttdeci">PN_EXTERN ssize_t pn_transport_output(pn_transport_t *transport, char *bytes, size_t size)</div></div>
<div class="ttc" id="group__transport_html_ga4695788da8491f0c7104bfe36634ff94"><div class="ttname"><a href="group__transport.html#ga4695788da8491f0c7104bfe36634ff94">pn_trace_t</a></div><div class="ttdeci">int pn_trace_t</div><div class="ttdoc">Holds the trace flags for an AMQP transport. </div><div class="ttdef"><b>Definition:</b> transport.h:58</div></div>
<div class="ttc" id="group__transport_html_ga69b8c9a7dbdef76644711274b6f61987"><div class="ttname"><a href="group__transport.html#ga69b8c9a7dbdef76644711274b6f61987">pn_transport_closed</a></div><div class="ttdeci">PN_EXTERN bool pn_transport_closed(pn_transport_t *transport)</div><div class="ttdoc">Check if a transport is closed. </div></div>
<div class="ttc" id="group__transport_html_ga2dfb9c5a747cf45f2bb40fd1001cc54d"><div class="ttname"><a href="group__transport.html#ga2dfb9c5a747cf45f2bb40fd1001cc54d">pn_transport_attachments</a></div><div class="ttdeci">PN_EXTERN pn_record_t * pn_transport_attachments(pn_transport_t *transport)</div><div class="ttdoc">Get the attachments that are associated with a transport object. </div></div>
<div class="ttc" id="group__primitives_html_gad337c365b498106064ec28e00e5fb6dd"><div class="ttname"><a href="group__primitives.html#gad337c365b498106064ec28e00e5fb6dd">pn_timestamp_t</a></div><div class="ttdeci">int64_t pn_timestamp_t</div><div class="ttdef"><b>Definition:</b> types.h:51</div></div>
<div class="ttc" id="group__transport_html_gae9b49fcbf6397e6916eb4e1357c90ff3"><div class="ttname"><a href="group__transport.html#gae9b49fcbf6397e6916eb4e1357c90ff3">pn_tracer_t</a></div><div class="ttdeci">void(* pn_tracer_t)(pn_transport_t *transport, const char *message)</div><div class="ttdoc">Callback for customizing logging behaviour. </div><div class="ttdef"><b>Definition:</b> transport.h:63</div></div>
<div class="ttc" id="error_8h_html_a24a289d5b32c9bd8a775600a5af83d52"><div class="ttname"><a href="error_8h.html#a24a289d5b32c9bd8a775600a5af83d52">pn_error_t</a></div><div class="ttdeci">struct pn_error_t pn_error_t</div><div class="ttdoc">A pn_error_t has an int error code and some string text to describe the error. </div><div class="ttdef"><b>Definition:</b> error.h:33</div></div>
<div class="ttc" id="group__transport_html_ga6475de6019c60e6d7f4f8f971c980162"><div class="ttname"><a href="group__transport.html#ga6475de6019c60e6d7f4f8f971c980162">pn_transport_vlogf</a></div><div class="ttdeci">PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va_list ap)</div><div class="ttdoc">Log a printf formatted message using a transport&amp;#39;s logging mechanism. </div></div>
<div class="ttc" id="group__connection_html_ga886351d81ff3a977a284a206526c5aff"><div class="ttname"><a href="group__connection.html#ga886351d81ff3a977a284a206526c5aff">pn_connection_t</a></div><div class="ttdeci">struct pn_connection_t pn_connection_t</div><div class="ttdoc">An AMQP Connection object. </div><div class="ttdef"><b>Definition:</b> types.h:118</div></div>
<div class="ttc" id="group__transport_html_gaf0e4c15f27f610ca4c5d64c0f4e95f07"><div class="ttname"><a href="group__transport.html#gaf0e4c15f27f610ca4c5d64c0f4e95f07">pn_transport_unbind</a></div><div class="ttdeci">PN_EXTERN int pn_transport_unbind(pn_transport_t *transport)</div><div class="ttdoc">Unbinds a transport from its AMQP connection. </div></div>
<div class="ttc" id="group__condition_html_ga11eb7db7d2c205169fe3d47c996a95a5"><div class="ttname"><a href="group__condition.html#ga11eb7db7d2c205169fe3d47c996a95a5">pn_condition_t</a></div><div class="ttdeci">struct pn_condition_t pn_condition_t</div><div class="ttdoc">An AMQP Condition object. </div><div class="ttdef"><b>Definition:</b> condition.h:64</div></div>
<div class="ttc" id="group__transport_html_ga2974d2551737553bc953232f3bd6438c"><div class="ttname"><a href="group__transport.html#ga2974d2551737553bc953232f3bd6438c">pn_transport_set_max_frame</a></div><div class="ttdeci">PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size)</div><div class="ttdoc">Set the maximum frame size of a transport. </div></div>
<div class="ttc" id="group__transport_html_ga81f66ece6523ad3e6f0426b1dbb53e5e"><div class="ttname"><a href="group__transport.html#ga81f66ece6523ad3e6f0426b1dbb53e5e">pn_transport_logf</a></div><div class="ttdeci">PN_EXTERN void pn_transport_logf(pn_transport_t *transport, const char *fmt,...)</div><div class="ttdoc">Log a printf formatted message using a transport&amp;#39;s logging mechanism. </div></div>
<div class="ttc" id="group__transport_html_gafc2157ad11690d0b0679aa34db1a1d5a"><div class="ttname"><a href="group__transport.html#gafc2157ad11690d0b0679aa34db1a1d5a">pn_transport_require_auth</a></div><div class="ttdeci">PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool required)</div><div class="ttdoc">Set whether a non authenticated transport connection is allowed. </div></div>
<div class="ttc" id="group__transport_html_gad07706c1e7db90d1b5d0ad6caf4c5892"><div class="ttname"><a href="group__transport.html#gad07706c1e7db90d1b5d0ad6caf4c5892">pn_transport_bind</a></div><div class="ttdeci">PN_EXTERN int pn_transport_bind(pn_transport_t *transport, pn_connection_t *connection)</div><div class="ttdoc">Binds the transport to an AMQP connection. </div></div>
<div class="ttc" id="group__transport_html_ga93bb966654732ecdd07557dc3307a7e2"><div class="ttname"><a href="group__transport.html#ga93bb966654732ecdd07557dc3307a7e2">pn_transport_get_max_frame</a></div><div class="ttdeci">PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport)</div><div class="ttdoc">Get the maximum frame size of a transport. </div></div>
<div class="ttc" id="group__transport_html_ga2be777fea1b19677ac50072c487d9ad1"><div class="ttname"><a href="group__transport.html#ga2be777fea1b19677ac50072c487d9ad1">pn_transport_tick</a></div><div class="ttdeci">PN_EXTERN pn_timestamp_t pn_transport_tick(pn_transport_t *transport, pn_timestamp_t now)</div><div class="ttdoc">Process any pending transport timer events. </div></div>
<div class="ttc" id="group__transport_html_ga0cdcc7fc4f5459687083dcb46796e0dd"><div class="ttname"><a href="group__transport.html#ga0cdcc7fc4f5459687083dcb46796e0dd">pn_transport_capacity</a></div><div class="ttdeci">PN_EXTERN ssize_t pn_transport_capacity(pn_transport_t *transport)</div><div class="ttdoc">Get the amount of free space for input following the transport&amp;#39;s tail pointer. </div></div>
<div class="ttc" id="group__transport_html_ga0f9cecc86a7185e6c9f25ead5c46b82b"><div class="ttname"><a href="group__transport.html#ga0f9cecc86a7185e6c9f25ead5c46b82b">pn_transport_set_server</a></div><div class="ttdeci">PN_EXTERN void pn_transport_set_server(pn_transport_t *transport)</div><div class="ttdoc">Configure a transport as a server. </div></div>
<div class="ttc" id="group__transport_html_ga0fa738666a89b80dfbe381c2768b1d7f"><div class="ttname"><a href="group__transport.html#ga0fa738666a89b80dfbe381c2768b1d7f">pn_transport_pending</a></div><div class="ttdeci">PN_EXTERN ssize_t pn_transport_pending(pn_transport_t *transport)</div><div class="ttdoc">Get the number of pending output bytes following the transport&amp;#39;s head pointer. </div></div>
<div class="ttc" id="group__transport_html_ga00a271caac7d531ae795d78db81199e9"><div class="ttname"><a href="group__transport.html#ga00a271caac7d531ae795d78db81199e9">pn_transport_error</a></div><div class="ttdeci">PN_EXTERN pn_error_t * pn_transport_error(pn_transport_t *transport)</div></div>
<div class="ttc" id="group__transport_html_ga9016acfea374d8b58183158b8d857ee8"><div class="ttname"><a href="group__transport.html#ga9016acfea374d8b58183158b8d857ee8">pn_transport_get_context</a></div><div class="ttdeci">PN_EXTERN void * pn_transport_get_context(pn_transport_t *transport)</div><div class="ttdoc">Get the application context that is associated with a transport object. </div></div>
<div class="ttc" id="group__transport_html_gac92129f1805ec946d5a792ae4a1b3327"><div class="ttname"><a href="group__transport.html#gac92129f1805ec946d5a792ae4a1b3327">pn_transport_head</a></div><div class="ttdeci">PN_EXTERN const char * pn_transport_head(pn_transport_t *transport)</div><div class="ttdoc">Get the transport&amp;#39;s head pointer. </div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Feb 4 2018 22:16:50 for proton by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>