blob: 0b2dcc79ba01919861f7bed6d178b327730f7fa1 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Qpid Proton C++ API: Introduction</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Qpid Proton C++ API
&#160;<span id="projectnumber">0.32.0</span>
</div>
</td>
<td> <div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.svg"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('index.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Introduction </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="mainpage"></a> The Qpid Proton C++ API enables writing clients and servers that send and receive messages using the AMQP protocol. It is part of the <a href="https://qpid.apache.org/proton/index.html">Qpid Proton</a> suite of messaging APIs.</p>
<p>The <a class="el" href="overview_page.html">Overview</a> presents the API's central concepts and mechanics.</p>
<p>The <a class="el" href="tutorial_page.html">Tutorial</a> guides you through some basic examples. See <a href="examples.html"><b>Examples</b></a> for a complete list of the sample programs, including more advanced ones.</p>
<p>Qpid Proton C++ can be used in single- and multithreaded applications. See <a class="el" href="mt_page.html">Multithreading</a> for guidance on writing efficient multithreaded messaging applications.</p>
<h1><a class="anchor" id="autotoc_md1"></a>
Namespaces</h1>
<p>The main <a class="el" href="namespaceproton.html">proton</a> namespace contains classes and functions representing AMQP concepts and key elements of the API. Together they form a "protocol engine" API to create AMQP <a class="el" href="classproton_1_1connection.html">connections</a> and <a class="el" href="classproton_1_1link.html">links</a>, handle <a class="el" href="classproton_1_1messaging__handler.html">events</a>, and send and receive <a class="el" href="classproton_1_1message.html">messages</a>. See <a class="el" href="overview_page.html">Overview</a> for more information.</p>
<p>The main <a class="el" href="namespaceproton.html">proton</a> namespace also contains C++ classes and functions for handling AMQP- and API-specific data types. See <a class="el" href="types_page.html">AMQP and C++ types</a> for more information.</p>
<p>The <a class="el" href="namespaceproton_1_1codec.html">proton::codec</a> namespace contains interfaces for AMQP data encoding and decoding.</p>
<p>The <a class="el" href="namespaceproton_1_1io.html">proton::io</a> namespace contains interfaces for integrating with platform-native network IO. See <a class="el" href="io_page.html">IO integration</a> for more information.</p>
<h1><a class="anchor" id="autotoc_md2"></a>
Conventions</h1>
<p>Elements of the API marked as <b>Unsettled API</b>, including any elements contained within them, are still evolving and thus are subject to change. They are available to use, but newer versions of Proton may require changes to your application source code.</p>
<p>Elements marked <b>Deprecated</b> are slated for removal in a future release.</p>
<p>Sections labeled <b>Thread safety</b> describe when and where it is safe to call functions or access data across threads.</p>
<p>Sections called <b>C++ versions</b> discuss features of the API that depend on particular versions of C++ such as C++11.</p>
<h1><a class="anchor" id="autotoc_md3"></a>
URLs</h1>
<p>The API uses URLs to identify three different kinds of resources. All URL argument names are suffixed with <code>_url</code>.</p>
<p>Connection URLs (<code>conn_url</code> in argument lists) specify a target for outgoing network connections. The path part of the URL is ignored.</p>
<p>Address URLs (<code>addr_url</code>) extend the connection URL to reference an AMQP node such as a queue or topic. The path of the URL, minus the leading slash, is treated as the AMQP address of the node.</p>
<p>Listener URLs (<code>listen_url</code>) specify a local network address and port for accepting incoming TCP connections. The path part of the URL is ignored. The host part may be empty, meaning "listen on all available interfaces". </p>
</div></div><!-- PageDoc -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20 </li>
</ul>
</div>
</body>
</html>