You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2016/10/14 16:30:55 UTC
[50/51] [partial] qpid-site git commit: add files for Proton 0.15.0
release
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/documentation.html
----------------------------------------------------------------------
diff --git a/content/documentation.html b/content/documentation.html
index 8bf7b1b..51a0031 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -133,10 +133,10 @@ You can find older versions with our
<ul>
<li><a href="/proton/index.html">Overview</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/c/api/files.html">C API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/cpp/api/annotated.html">C++ API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/java/api/index.html">Java API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/python/api/index.html">Python API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/c/api/files.html">C API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/cpp/api/annotated.html">C++ API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/java/api/index.html">Java API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/python/api/index.html">Python API reference</a></li>
</ul>
</section>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/download.html
----------------------------------------------------------------------
diff --git a/content/download.html b/content/download.html
index c3958d3..5bf6ce5 100644
--- a/content/download.html
+++ b/content/download.html
@@ -120,7 +120,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
<a href="packages.html">Qpid packages</a> and <a href="maven.html">Qpid via Maven</a>.</em></p>
<p>Qpid's source artefacts are produced as part of our community release
-process. The downloads on this page are from our current releases, <a href="/releases/qpid-proton-0.14.0">Qpid Proton 0.14.0</a>,
+process. The downloads on this page are from our current releases, <a href="/releases/qpid-proton-0.15.0">Qpid Proton 0.15.0</a>,
<a href="/releases/qpid-dispatch-0.6.1">Qpid Dispatch 0.6.1</a>, <a href="/releases/qpid-jms-0.11.1">Qpid JMS 0.11.1</a>, <a href="/releases/qpid-java-6.0.4">Qpid for Java 6.0.4</a> and <a href="/releases/qpid-cpp-1.35.0">Qpid C++ 1.35.0</a>. You can also see our
<a href="/releases/index.html#past-releases">past releases</a>.</p>
@@ -139,8 +139,8 @@ process. The downloads on this page are from our current releases, <a href="/rel
<tbody>
<tr>
<td><a href="/proton/index.html">Qpid Proton</a></td>
- <td><a href="http://www.apache.org/dyn/closer.lua/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz">qpid-proton-0.14.0.tar.gz</a></td>
- <td><a href="http://www.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz.asc">ASC</a>, <a href="http://www.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz.md5">MD5</a>, <a href="http://www.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz.sha1">SHA1</a></td>
+ <td><a href="http://www.apache.org/dyn/closer.lua/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz">qpid-proton-0.15.0.tar.gz</a></td>
+ <td><a href="http://www.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz.asc">ASC</a>, <a href="http://www.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz.md5">MD5</a>, <a href="http://www.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz.sha1">SHA1</a></td>
</tr>
<tr>
<td><a href="/components/jms/index.html">Qpid JMS</a> (AMQP 1.0)</td>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/maven.html
----------------------------------------------------------------------
diff --git a/content/maven.html b/content/maven.html
index 7707532..1eb797c 100644
--- a/content/maven.html
+++ b/content/maven.html
@@ -149,7 +149,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.qpid<span class="nt"></groupId></span>
<span class="nt"><artifactId></span>proton-j<span class="nt"></artifactId></span>
- <span class="nt"><version></span>0.14.0<span class="nt"></version></span>
+ <span class="nt"><version></span>0.15.0<span class="nt"></version></span>
<span class="nt"></dependency></span>
</pre></div>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/proton/index.html
----------------------------------------------------------------------
diff --git a/content/proton/index.html b/content/proton/index.html
index b87a3e3..366be94 100644
--- a/content/proton/index.html
+++ b/content/proton/index.html
@@ -147,17 +147,17 @@ platform, environment, or language. More about
<div class="two-column">
<ul>
-<li><a href="/releases/qpid-proton-0.14.0/proton/c/api/files.html">C API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/cpp/api/index.html">C++ introduction</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/cpp/api/tutorial.html">C++ tutorial</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/cpp/examples/index.html">C++ examples</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/cpp/api/annotated.html">C++ API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/java/api/index.html">Java API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/python/book/overview.html">Python overview</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/python/book/tutorial.html">Python tutorial</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/python/examples/index.html">Python examples</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/python/api/index.html">Python API reference</a></li>
-<li><a href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=blob_plain;f=INSTALL.md;hb=0.14.0">Installing Qpid Proton</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/c/api/files.html">C API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/cpp/api/index.html">C++ introduction</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/cpp/api/tutorial.html">C++ tutorial</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/cpp/examples/index.html">C++ examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/cpp/api/annotated.html">C++ API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/java/api/index.html">Java API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/python/book/overview.html">Python overview</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/python/book/tutorial.html">Python tutorial</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/python/examples/index.html">Python examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/python/api/index.html">Python API reference</a></li>
+<li><a href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=blob_plain;f=INSTALL.md;hb=0.15.0">Installing Qpid Proton</a></li>
</ul>
</div>
@@ -169,7 +169,7 @@ platform, environment, or language. More about
<h2 id="releases">Releases</h2>
<ul>
-<li><a href="/releases/qpid-proton-0.14.0">Qpid Proton 0.14.0</a></li>
+<li><a href="/releases/qpid-proton-0.15.0">Qpid Proton 0.15.0</a></li>
<li><a href="/releases/index.html#past-releases">Past releases</a></li>
<li><a href="/releases/qpid-proton-master/index.html">Work in progress</a> </li>
</ul>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/proton/messenger.html
----------------------------------------------------------------------
diff --git a/content/proton/messenger.html b/content/proton/messenger.html
index 394a144..99484fa 100644
--- a/content/proton/messenger.html
+++ b/content/proton/messenger.html
@@ -129,14 +129,14 @@ find previous versions with our
<div class="two-column">
<ul>
-<li><a href="/releases/qpid-proton-0.14.0/proton/c/api/messenger_8h.html">C API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/messenger/c/examples/index.html">C examples</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/java/api/org/apache/qpid/proton/messenger/Messenger.html">Java API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/messenger/perl/examples/index.html">Perl examples</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/messenger/php/examples/index.html">PHP examples</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/proton/python/api/proton.Messenger-class.html">Python API reference</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/messenger/python/examples/index.html">Python examples</a></li>
-<li><a href="/releases/qpid-proton-0.14.0/messenger/ruby/examples/index.html">Ruby examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/c/api/messenger_8h.html">C API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/messenger/c/examples/index.html">C examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/java/api/org/apache/qpid/proton/messenger/Messenger.html">Java API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/messenger/perl/examples/index.html">Perl examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/messenger/php/examples/index.html">PHP examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/proton/python/api/proton.Messenger-class.html">Python API reference</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/messenger/python/examples/index.html">Python examples</a></li>
+<li><a href="/releases/qpid-proton-0.15.0/messenger/ruby/examples/index.html">Ruby examples</a></li>
</ul>
</div>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/index.html
----------------------------------------------------------------------
diff --git a/content/releases/index.html b/content/releases/index.html
index fe7201a..bc7d16c 100644
--- a/content/releases/index.html
+++ b/content/releases/index.html
@@ -124,10 +124,10 @@ the
<h2 id="current-releases">Current releases</h2>
<ul>
+<li><a href="qpid-proton-0.15.0/index.html">Qpid Proton 0.15.0</a>, October 2016</li>
<li><a href="qpid-jms-0.11.1/index.html">Qpid JMS 0.11.1</a>, October 2016</li>
<li><a href="qpid-cpp-1.35.0/index.html">Qpid C++ 1.35.0</a>, September 2016</li>
<li><a href="qpid-python-1.35.0/index.html">Qpid Python 1.35.0</a>, August 2016</li>
-<li><a href="qpid-proton-0.14.0/index.html">Qpid Proton 0.14.0</a>, August 2016</li>
<li><a href="qpid-java-6.0.4/index.html">Qpid for Java 6.0.4</a>, July 2016</li>
<li><a href="qpid-dispatch-0.6.1/index.html">Qpid Dispatch 0.6.1</a>, August 2016</li>
<li><a href="qpid-0.32/index.html">Qpid 0.32</a>, March 2015</li>
@@ -139,6 +139,7 @@ the
<ul>
<li><a href="qpid-jms-0.11.0/index.html">Qpid JMS 0.11.0</a>, September 2016</li>
+<li><a href="qpid-proton-0.14.0/index.html">Qpid Proton 0.14.0</a>, August 2016</li>
<li><a href="qpid-jms-0.10.0/index.html">Qpid JMS 0.10.0</a>, July 2016</li>
<li><a href="qpid-proton-0.13.1/index.html">Qpid Proton 0.13.1</a>, July 2016</li>
<li><a href="qpid-dispatch-0.6.0/index.html">Qpid Dispatch 0.6.0</a>, June 2016</li>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.10/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.10/index.html b/content/releases/qpid-proton-0.10/index.html
index 175d012..6b1474f 100644
--- a/content/releases/qpid-proton-0.10/index.html
+++ b/content/releases/qpid-proton-0.10/index.html
@@ -116,7 +116,7 @@ https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
<div id="-middle-content">
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.10" === "0.14.0") {
+ if ("0.10" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.11.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.11.0/index.html b/content/releases/qpid-proton-0.11.0/index.html
index db77f8d..8473662 100644
--- a/content/releases/qpid-proton-0.11.0/index.html
+++ b/content/releases/qpid-proton-0.11.0/index.html
@@ -172,7 +172,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.11.0" === "0.14.0") {
+ if ("0.11.0" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.11.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.11.1/index.html b/content/releases/qpid-proton-0.11.1/index.html
index 2c225e4..2e32969 100644
--- a/content/releases/qpid-proton-0.11.1/index.html
+++ b/content/releases/qpid-proton-0.11.1/index.html
@@ -172,7 +172,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.11.1" === "0.14.0") {
+ if ("0.11.1" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.12.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.12.0/index.html b/content/releases/qpid-proton-0.12.0/index.html
index 21480c7..0784b24 100644
--- a/content/releases/qpid-proton-0.12.0/index.html
+++ b/content/releases/qpid-proton-0.12.0/index.html
@@ -175,7 +175,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.12.0" === "0.14.0") {
+ if ("0.12.0" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.12.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.12.1/index.html b/content/releases/qpid-proton-0.12.1/index.html
index b298933..4bfb56b 100644
--- a/content/releases/qpid-proton-0.12.1/index.html
+++ b/content/releases/qpid-proton-0.12.1/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.12.1" === "0.14.0") {
+ if ("0.12.1" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.12.2/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.12.2/index.html b/content/releases/qpid-proton-0.12.2/index.html
index fdbbd03..c23b045 100644
--- a/content/releases/qpid-proton-0.12.2/index.html
+++ b/content/releases/qpid-proton-0.12.2/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.12.2" === "0.14.0") {
+ if ("0.12.2" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.13.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.13.0/index.html b/content/releases/qpid-proton-0.13.0/index.html
index 3532ce5..fae6581 100644
--- a/content/releases/qpid-proton-0.13.0/index.html
+++ b/content/releases/qpid-proton-0.13.0/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.13.0" === "0.14.0") {
+ if ("0.13.0" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.13.1/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.13.1/index.html b/content/releases/qpid-proton-0.13.1/index.html
index c5190e6..e5042b2 100644
--- a/content/releases/qpid-proton-0.13.1/index.html
+++ b/content/releases/qpid-proton-0.13.1/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.13.1" === "0.14.0") {
+ if ("0.13.1" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.14.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.14.0/index.html b/content/releases/qpid-proton-0.14.0/index.html
index 67034e9..74c49ac 100644
--- a/content/releases/qpid-proton-0.14.0/index.html
+++ b/content/releases/qpid-proton-0.14.0/index.html
@@ -176,7 +176,7 @@ the files you download.</p>
<script type="text/javascript">
_deferredFunctions.push(function() {
- if ("0.14.0" === "0.14.0") {
+ if ("0.14.0" === "0.15.0") {
_modifyCurrentReleaseLinks();
}
});
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.15.0/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.15.0/index.html b/content/releases/qpid-proton-0.15.0/index.html
new file mode 100644
index 0000000..5bd38c0
--- /dev/null
+++ b/content/releases/qpid-proton-0.15.0/index.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied. See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>Qpid Proton 0.15.0 - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li>Qpid Proton 0.15.0</li></ul>
+
+ <div id="-middle-content">
+ <h1 id="qpid-proton-0150">Qpid Proton 0.15.0</h1>
+
+<p>Qpid Proton is a high-performance, lightweight messaging library. More
+about <a href="/proton/index.html">Qpid Proton</a>.</p>
+
+<p>For a detailed list of the changes in this release, see the <a href="release-notes.html">release
+notes</a>.</p>
+
+<h2 id="download">Download</h2>
+
+<p>It's important to <a href="/download.html#verify-what-you-download">verify the
+integrity</a> of
+the files you download.</p>
+
+<table>
+<thead>
+<tr>
+ <th>Content</th>
+ <th>Download</th>
+ <th>Verify</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+ <td>Qpid Proton</td>
+ <td><a href="http://archive.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz">qpid-proton-0.15.0.tar.gz</a></td>
+ <td><a href="http://archive.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz.asc">ASC</a>, <a href="http://archive.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz.md5">MD5</a>, <a href="http://archive.apache.org/dist/qpid/proton/0.15.0/qpid-proton-0.15.0.tar.gz.sha1">SHA1</a></td>
+</tr>
+</tbody>
+</table>
+
+<h2 id="documentation">Documentation</h2>
+
+<div class="two-column">
+
+<ul>
+<li><a href="proton/c/api/files.html">C API reference</a></li>
+<li><a href="proton/cpp/api/index.html">C++ introduction</a></li>
+<li><a href="proton/cpp/api/tutorial.html">C++ tutorial</a></li>
+<li><a href="proton/cpp/examples/index.html">C++ examples</a></li>
+<li><a href="proton/cpp/api/annotated.html">C++ API reference</a></li>
+<li><a href="proton/java/api/index.html">Java API reference</a></li>
+<li><a href="proton/python/book/overview.html">Python overview</a></li>
+<li><a href="proton/python/book/tutorial.html">Python tutorial</a></li>
+<li><a href="proton/python/examples/index.html">Python examples</a></li>
+<li><a href="proton/python/api/index.html">Python API reference</a></li>
+<li><a href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=blob;f=INSTALL.md;hb=0.15.0">Installing Qpid Proton</a></li>
+</ul>
+
+</div>
+
+<h2 id="more-information">More information</h2>
+
+<ul>
+<li><a href="http://archive.apache.org/dist/qpid/proton/0.15.0">All release artefacts</a></li>
+<li><a href="https://issues.apache.org/jira/issues/?jql=project+%3D+PROTON+AND+fixVersion+%3D+%270.15.0%27+AND+resolution+%3D+%27fixed%27+ORDER+BY+priority+DESC">Resolved issues in JIRA</a></li>
+<li><a href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=tree;hb=0.15.0">Source repository branch</a></li>
+<li><a href="https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=tag;h=0.15.0">Source repository tag</a></li>
+</ul>
+
+<script type="text/javascript">
+ _deferredFunctions.push(function() {
+ if ("0.15.0" === "0.15.0") {
+ _modifyCurrentReleaseLinks();
+ }
+ });
+</script>
+
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.15.0/messenger/c/examples/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.15.0/messenger/c/examples/index.html b/content/releases/qpid-proton-0.15.0/messenger/c/examples/index.html
new file mode 100644
index 0000000..077a784
--- /dev/null
+++ b/content/releases/qpid-proton-0.15.0/messenger/c/examples/index.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied. See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>C AMQP Messenger Examples - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.15.0/index.html">Qpid Proton 0.15.0</a></li><li>C AMQP Messenger Examples</li></ul>
+
+ <div id="-middle-content">
+ <h1 id="c-amqp-messenger-examples">C AMQP Messenger Examples</h1>
+
+<h2 id="example-files">Example files</h2>
+
+<ul>
+<li><a href="recv-async.c.html">recv-async.c</a></li>
+<li><a href="recv.c.html">recv.c</a></li>
+<li><a href="send-async.c.html">send-async.c</a></li>
+<li><a href="send.c.html">send.c</a></li>
+</ul>
+
+<h2 id="more-information">More information</h2>
+
+<ul>
+<li><a href="https://github.com/apache/qpid-proton/tree/0.15.0/examples/c/messenger">Source location</a></li>
+</ul>
+
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c b/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c
new file mode 100755
index 0000000..1f49166
--- /dev/null
+++ b/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c
@@ -0,0 +1,193 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+// This is a re-implementation of recv.c using non-blocking/asynchronous calls.
+
+#include "proton/message.h"
+#include "proton/messenger.h"
+
+#include "pncompat/misc_funcs.inc"
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#if EMSCRIPTEN
+#include <emscripten.h>
+#endif
+
+pn_message_t * message;
+pn_messenger_t * messenger;
+
+#define check(messenger) \
+ { \
+ if(pn_messenger_errno(messenger)) \
+ { \
+ die(__FILE__, __LINE__, pn_error_text(pn_messenger_error(messenger))); \
+ } \
+ } \
+
+void die(const char *file, int line, const char *message)
+{
+ fprintf(stderr, "%s:%i: %s\n", file, line, message);
+ exit(1);
+}
+
+void usage(void)
+{
+ printf("Usage: recv [options] <addr>\n");
+ printf("-c \tPath to the certificate file.\n");
+ printf("-k \tPath to the private key file.\n");
+ printf("-p \tPassword for the private key.\n");
+ printf("<addr>\tAn address.\n");
+ exit(0);
+}
+
+void process(void) {
+ while(pn_messenger_incoming(messenger))
+ {
+ pn_messenger_get(messenger, message);
+ check(messenger);
+
+ {
+ pn_tracker_t tracker = pn_messenger_incoming_tracker(messenger);
+ char buffer[1024];
+ size_t buffsize = sizeof(buffer);
+ const char* subject = pn_message_get_subject(message);
+ pn_data_t* body = pn_message_body(message);
+ pn_data_format(body, buffer, &buffsize);
+
+ printf("Address: %s\n", pn_message_get_address(message));
+ printf("Subject: %s\n", subject ? subject : "(no subject)");
+ printf("Content: %s\n", buffer);
+
+ pn_messenger_accept(messenger, tracker, 0);
+ }
+ }
+}
+
+#if EMSCRIPTEN // For emscripten C/C++ to JavaScript compiler.
+void pump(int fd, void* userData) {
+ while (pn_messenger_work(messenger, 0) >= 0) {
+ process();
+ }
+}
+
+void onclose(int fd, void* userData) {
+ process();
+}
+
+void onerror(int fd, int errno, const char* msg, void* userData) {
+ printf("error callback fd = %d, errno = %d, msg = %s\n", fd, errno, msg);
+}
+#endif
+
+int main(int argc, char** argv)
+{
+ char* certificate = NULL;
+ char* privatekey = NULL;
+ char* password = NULL;
+ char* address = (char *) "amqp://~0.0.0.0";
+ int c;
+
+ message = pn_message();
+ messenger = pn_messenger(NULL);
+ pn_messenger_set_blocking(messenger, false); // Needs to be set non-blocking to behave asynchronously.
+
+ opterr = 0;
+
+ while((c = getopt(argc, argv, "hc:k:p:")) != -1)
+ {
+ switch(c)
+ {
+ case 'h':
+ usage();
+ break;
+
+ case 'c': certificate = optarg; break;
+ case 'k': privatekey = optarg; break;
+ case 'p': password = optarg; break;
+
+ case '?':
+ if (optopt == 'c' ||
+ optopt == 'k' ||
+ optopt == 'p')
+ {
+ fprintf(stderr, "Option -%c requires an argument.\n", optopt);
+ }
+ else if(isprint(optopt))
+ {
+ fprintf(stderr, "Unknown option `-%c'.\n", optopt);
+ }
+ else
+ {
+ fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
+ }
+ return 1;
+ default:
+ abort();
+ }
+ }
+
+ if (optind < argc)
+ {
+ address = argv[optind];
+ }
+
+ /* load the various command line options if they're set */
+ if(certificate)
+ {
+ pn_messenger_set_certificate(messenger, certificate);
+ }
+
+ if(privatekey)
+ {
+ pn_messenger_set_private_key(messenger, privatekey);
+ }
+
+ if(password)
+ {
+ pn_messenger_set_password(messenger, password);
+ }
+
+ pn_messenger_start(messenger);
+ check(messenger);
+
+ pn_messenger_subscribe(messenger, address);
+ check(messenger);
+
+ pn_messenger_recv(messenger, -1); // Set to receive as many messages as messenger can buffer.
+
+#if EMSCRIPTEN // For emscripten C/C++ to JavaScript compiler.
+ emscripten_set_socket_error_callback(NULL, onerror);
+
+ emscripten_set_socket_open_callback(NULL, pump);
+ emscripten_set_socket_connection_callback(NULL, pump);
+ emscripten_set_socket_message_callback(NULL, pump);
+ emscripten_set_socket_close_callback(NULL, onclose);
+#else // For native compiler.
+ while (1) {
+ pn_messenger_work(messenger, -1); // Block indefinitely until there has been socket activity.
+ process();
+ }
+#endif
+
+ return 0;
+}
+
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c.html b/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c.html
new file mode 100644
index 0000000..697f2ed
--- /dev/null
+++ b/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv-async.c.html
@@ -0,0 +1,321 @@
+<!DOCTYPE html>
+<!--
+ -
+ - Licensed to the Apache Software Foundation (ASF) under one
+ - or more contributor license agreements. See the NOTICE file
+ - distributed with this work for additional information
+ - regarding copyright ownership. The ASF licenses this file
+ - to you under the Apache License, Version 2.0 (the
+ - "License"); you may not use this file except in compliance
+ - with the License. You may obtain a copy of the License at
+ -
+ - http://www.apache.org/licenses/LICENSE-2.0
+ -
+ - Unless required by applicable law or agreed to in writing,
+ - software distributed under the License is distributed on an
+ - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ - KIND, either express or implied. See the License for the
+ - specific language governing permissions and limitations
+ - under the License.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <head>
+ <title>recv-async.c - Apache Qpid™</title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+ <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+ <script type="text/javascript">var _deferredFunctions = [];</script>
+ <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+ <!--[if lte IE 8]>
+ <link rel="stylesheet" href="/ie.css" type="text/css"/>
+ <script type="text/javascript" src="/html5shiv.js"></script>
+ <![endif]-->
+
+ <!-- Redirects for `go get` and godoc.org -->
+ <meta name="go-import"
+ content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+ <meta name="go-source"
+ content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+ </head>
+ <body>
+ <div id="-content">
+ <div id="-top" class="panel">
+ <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+ <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+ <ul id="-global-navigation">
+ <li><a id="-logotype" href="/index.html">Apache Qpid<sup>™</sup></a></li>
+ <li><a href="/documentation.html">Documentation</a></li>
+ <li><a href="/download.html">Download</a></li>
+ <li><a href="/discussion.html">Discussion</a></li>
+ </ul>
+ </div>
+
+ <div id="-menu" class="panel" style="display: none;">
+ <div class="flex">
+ <section>
+ <h3>Project</h3>
+
+ <ul>
+ <li><a href="/overview.html">Overview</a></li>
+ <li><a href="/components/index.html">Components</a></li>
+ <li><a href="/releases/index.html">Releases</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Messaging APIs</h3>
+
+ <ul>
+ <li><a href="/proton/index.html">Qpid Proton</a></li>
+ <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+ <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Servers and tools</h3>
+
+ <ul>
+ <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+ <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+ <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+ </ul>
+ </section>
+
+ <section>
+ <h3>Resources</h3>
+
+ <ul>
+ <li><a href="/dashboard.html">Dashboard</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+ <li><a href="/resources.html">More resources</a></li>
+ </ul>
+ </section>
+ </div>
+ </div>
+
+ <div id="-search" class="panel" style="display: none;">
+ <form action="http://www.google.com/search" method="get">
+ <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+ <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+ <button type="submit">Search</button>
+ <a href="/search.html">More ways to search</a>
+ </form>
+ </div>
+
+ <div id="-middle" class="panel">
+ <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.15.0/index.html">Qpid Proton 0.15.0</a></li><li><a href="/releases/qpid-proton-0.15.0/messenger/c/examples/index.html">C AMQP Messenger Examples</a></li><li>recv-async.c</li></ul>
+
+ <div id="-middle-content">
+
+<h1>recv-async.c</h1>
+<div class="highlight"><pre><span class="c1">// This is a re-implementation of recv.c using non-blocking/asynchronous calls.</span>
+
+<span class="cp">#include "proton/message.h"</span>
+<span class="cp">#include "proton/messenger.h"</span>
+
+<span class="cp">#include "pncompat/misc_funcs.inc"</span>
+<span class="cp">#include <stdio.h></span>
+<span class="cp">#include <stdlib.h></span>
+<span class="cp">#include <ctype.h></span>
+
+<span class="cp">#if EMSCRIPTEN</span>
+<span class="cp">#include <emscripten.h></span>
+<span class="cp">#endif</span>
+
+<span class="kt">pn_message_t</span> <span class="o">*</span> <span class="n">message</span><span class="p">;</span>
+<span class="kt">pn_messenger_t</span> <span class="o">*</span> <span class="n">messenger</span><span class="p">;</span>
+
+<span class="cp">#define check(messenger) \</span>
+<span class="cp"> { \</span>
+<span class="cp"> if(pn_messenger_errno(messenger)) \</span>
+<span class="cp"> { \</span>
+<span class="cp"> die(__FILE__, __LINE__, pn_error_text(pn_messenger_error(messenger))); \</span>
+<span class="cp"> } \</span>
+<span class="cp"> } \</span>
+
+<span class="kt">void</span> <span class="nf">die</span><span class="p">(</span><span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">file</span><span class="p">,</span> <span class="kt">int</span> <span class="n">line</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">message</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">"%s:%i: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">file</span><span class="p">,</span> <span class="n">line</span><span class="p">,</span> <span class="n">message</span><span class="p">);</span>
+ <span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">usage</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"Usage: recv [options] <addr></span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"-c </span><span class="se">\t</span><span class="s">Path to the certificate file.</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"-k </span><span class="se">\t</span><span class="s">Path to the private key file.</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"-p </span><span class="se">\t</span><span class="s">Password for the private key.</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"<addr></span><span class="se">\t</span><span class="s">An address.</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
+ <span class="n">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">process</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">while</span><span class="p">(</span><span class="n">pn_messenger_incoming</span><span class="p">(</span><span class="n">messenger</span><span class="p">))</span>
+ <span class="p">{</span>
+ <span class="n">pn_messenger_get</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="n">message</span><span class="p">);</span>
+ <span class="n">check</span><span class="p">(</span><span class="n">messenger</span><span class="p">);</span>
+
+ <span class="p">{</span>
+ <span class="kt">pn_tracker_t</span> <span class="n">tracker</span> <span class="o">=</span> <span class="n">pn_messenger_incoming_tracker</span><span class="p">(</span><span class="n">messenger</span><span class="p">);</span>
+ <span class="kt">char</span> <span class="n">buffer</span><span class="p">[</span><span class="mi">1024</span><span class="p">];</span>
+ <span class="kt">size_t</span> <span class="n">buffsize</span> <span class="o">=</span> <span class="k">sizeof</span><span class="p">(</span><span class="n">buffer</span><span class="p">);</span>
+ <span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">subject</span> <span class="o">=</span> <span class="n">pn_message_get_subject</span><span class="p">(</span><span class="n">message</span><span class="p">);</span>
+ <span class="kt">pn_data_t</span><span class="o">*</span> <span class="n">body</span> <span class="o">=</span> <span class="n">pn_message_body</span><span class="p">(</span><span class="n">message</span><span class="p">);</span>
+ <span class="n">pn_data_format</span><span class="p">(</span><span class="n">body</span><span class="p">,</span> <span class="n">buffer</span><span class="p">,</span> <span class="o">&</span><span class="n">buffsize</span><span class="p">);</span>
+
+ <span class="n">printf</span><span class="p">(</span><span class="s">"Address: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">pn_message_get_address</span><span class="p">(</span><span class="n">message</span><span class="p">));</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"Subject: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">subject</span> <span class="o">?</span> <span class="n">subject</span> <span class="o">:</span> <span class="s">"(no subject)"</span><span class="p">);</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"Content: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">buffer</span><span class="p">);</span>
+
+ <span class="n">pn_messenger_accept</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="n">tracker</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
+ <span class="p">}</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="cp">#if EMSCRIPTEN </span><span class="c1">// For emscripten C/C++ to JavaScript compiler.</span>
+<span class="kt">void</span> <span class="nf">pump</span><span class="p">(</span><span class="kt">int</span> <span class="n">fd</span><span class="p">,</span> <span class="kt">void</span><span class="o">*</span> <span class="n">userData</span><span class="p">)</span> <span class="p">{</span>
+ <span class="k">while</span> <span class="p">(</span><span class="n">pn_messenger_work</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">process</span><span class="p">();</span>
+ <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">onclose</span><span class="p">(</span><span class="kt">int</span> <span class="n">fd</span><span class="p">,</span> <span class="kt">void</span><span class="o">*</span> <span class="n">userData</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">process</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="kt">void</span> <span class="nf">onerror</span><span class="p">(</span><span class="kt">int</span> <span class="n">fd</span><span class="p">,</span> <span class="kt">int</span> <span class="n">errno</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span><span class="o">*</span> <span class="n">msg</span><span class="p">,</span> <span class="kt">void</span><span class="o">*</span> <span class="n">userData</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">printf</span><span class="p">(</span><span class="s">"error callback fd = %d, errno = %d, msg = %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">fd</span><span class="p">,</span> <span class="n">errno</span><span class="p">,</span> <span class="n">msg</span><span class="p">);</span>
+<span class="p">}</span>
+<span class="cp">#endif</span>
+
+<span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="kt">char</span><span class="o">**</span> <span class="n">argv</span><span class="p">)</span>
+<span class="p">{</span>
+ <span class="kt">char</span><span class="o">*</span> <span class="n">certificate</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+ <span class="kt">char</span><span class="o">*</span> <span class="n">privatekey</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+ <span class="kt">char</span><span class="o">*</span> <span class="n">password</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span>
+ <span class="kt">char</span><span class="o">*</span> <span class="n">address</span> <span class="o">=</span> <span class="p">(</span><span class="kt">char</span> <span class="o">*</span><span class="p">)</span> <span class="s">"amqp://~0.0.0.0"</span><span class="p">;</span>
+ <span class="kt">int</span> <span class="n">c</span><span class="p">;</span>
+
+ <span class="n">message</span> <span class="o">=</span> <span class="n">pn_message</span><span class="p">();</span>
+ <span class="n">messenger</span> <span class="o">=</span> <span class="n">pn_messenger</span><span class="p">(</span><span class="nb">NULL</span><span class="p">);</span>
+ <span class="n">pn_messenger_set_blocking</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="nb">false</span><span class="p">);</span> <span class="c1">// Needs to be set non-blocking to behave asynchronously.</span>
+
+ <span class="n">opterr</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
+
+ <span class="k">while</span><span class="p">((</span><span class="n">c</span> <span class="o">=</span> <span class="n">getopt</span><span class="p">(</span><span class="n">argc</span><span class="p">,</span> <span class="n">argv</span><span class="p">,</span> <span class="s">"hc:k:p:"</span><span class="p">))</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="k">switch</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="k">case</span> <span class="sc">'h'</span>:
+ <span class="n">usage</span><span class="p">();</span>
+ <span class="k">break</span><span class="p">;</span>
+
+ <span class="k">case</span> <span class="sc">'c'</span>: <span class="n">certificate</span> <span class="o">=</span> <span class="n">optarg</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span>
+ <span class="k">case</span> <span class="sc">'k'</span>: <span class="n">privatekey</span> <span class="o">=</span> <span class="n">optarg</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span>
+ <span class="k">case</span> <span class="sc">'p'</span>: <span class="n">password</span> <span class="o">=</span> <span class="n">optarg</span><span class="p">;</span> <span class="k">break</span><span class="p">;</span>
+
+ <span class="k">case</span> <span class="sc">'?'</span>:
+ <span class="k">if</span> <span class="p">(</span><span class="n">optopt</span> <span class="o">==</span> <span class="sc">'c'</span> <span class="o">||</span>
+ <span class="n">optopt</span> <span class="o">==</span> <span class="sc">'k'</span> <span class="o">||</span>
+ <span class="n">optopt</span> <span class="o">==</span> <span class="sc">'p'</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">"Option -%c requires an argument.</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">optopt</span><span class="p">);</span>
+ <span class="p">}</span>
+ <span class="k">else</span> <span class="k">if</span><span class="p">(</span><span class="n">isprint</span><span class="p">(</span><span class="n">optopt</span><span class="p">))</span>
+ <span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">"Unknown option `-%c'.</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">optopt</span><span class="p">);</span>
+ <span class="p">}</span>
+ <span class="k">else</span>
+ <span class="p">{</span>
+ <span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span> <span class="s">"Unknown option character `</span><span class="se">\\</span><span class="s">x%x'.</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="n">optopt</span><span class="p">);</span>
+ <span class="p">}</span>
+ <span class="k">return</span> <span class="mi">1</span><span class="p">;</span>
+ <span class="nl">default:</span>
+ <span class="n">abort</span><span class="p">();</span>
+ <span class="p">}</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span> <span class="p">(</span><span class="n">optind</span> <span class="o"><</span> <span class="n">argc</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">address</span> <span class="o">=</span> <span class="n">argv</span><span class="p">[</span><span class="n">optind</span><span class="p">];</span>
+ <span class="p">}</span>
+
+
+ <span class="k">if</span><span class="p">(</span><span class="n">certificate</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">pn_messenger_set_certificate</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="n">certificate</span><span class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span><span class="p">(</span><span class="n">privatekey</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">pn_messenger_set_private_key</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="n">privatekey</span><span class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="k">if</span><span class="p">(</span><span class="n">password</span><span class="p">)</span>
+ <span class="p">{</span>
+ <span class="n">pn_messenger_set_password</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="n">password</span><span class="p">);</span>
+ <span class="p">}</span>
+
+ <span class="n">pn_messenger_start</span><span class="p">(</span><span class="n">messenger</span><span class="p">);</span>
+ <span class="n">check</span><span class="p">(</span><span class="n">messenger</span><span class="p">);</span>
+
+ <span class="n">pn_messenger_subscribe</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="n">address</span><span class="p">);</span>
+ <span class="n">check</span><span class="p">(</span><span class="n">messenger</span><span class="p">);</span>
+
+ <span class="n">pn_messenger_recv</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="c1">// Set to receive as many messages as messenger can buffer.</span>
+
+<span class="cp">#if EMSCRIPTEN </span><span class="c1">// For emscripten C/C++ to JavaScript compiler.</span>
+ <span class="n">emscripten_set_socket_error_callback</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="n">onerror</span><span class="p">);</span>
+
+ <span class="n">emscripten_set_socket_open_callback</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="n">pump</span><span class="p">);</span>
+ <span class="n">emscripten_set_socket_connection_callback</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="n">pump</span><span class="p">);</span>
+ <span class="n">emscripten_set_socket_message_callback</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="n">pump</span><span class="p">);</span>
+ <span class="n">emscripten_set_socket_close_callback</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span> <span class="n">onclose</span><span class="p">);</span>
+<span class="cp">#else </span><span class="c1">// For native compiler.</span>
+ <span class="k">while</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="p">{</span>
+ <span class="n">pn_messenger_work</span><span class="p">(</span><span class="n">messenger</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">);</span> <span class="c1">// Block indefinitely until there has been socket activity.</span>
+ <span class="n">process</span><span class="p">();</span>
+ <span class="p">}</span>
+<span class="cp">#endif</span>
+
+ <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
+<span class="p">}</span>
+</pre></div>
+
+<p><a href="recv-async.c">Download this file</a></p>
+
+
+ <hr/>
+
+ <ul id="-apache-navigation">
+ <li><a href="http://www.apache.org/">Apache</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="/security.html">Security</a></li>
+ <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+ </ul>
+
+ <p id="-legal">
+ Apache Qpid, Messaging built on AMQP; Copyright © 2015
+ The Apache Software Foundation; Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+ License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+ Proton, Apache, the Apache feather logo, and the Apache Qpid
+ project logo are trademarks of The Apache Software
+ Foundation; All other marks mentioned may be trademarks or
+ registered trademarks of their respective owners
+ </p>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/de3c3488/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv.c
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv.c b/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv.c
new file mode 100755
index 0000000..16e8321
--- /dev/null
+++ b/content/releases/qpid-proton-0.15.0/messenger/c/examples/recv.c
@@ -0,0 +1,154 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+#include "proton/message.h"
+#include "proton/messenger.h"
+
+#include "pncompat/misc_funcs.inc"
+#include <stdio.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#define check(messenger) \
+ { \
+ if(pn_messenger_errno(messenger)) \
+ { \
+ die(__FILE__, __LINE__, pn_error_text(pn_messenger_error(messenger))); \
+ } \
+ } \
+
+void die(const char *file, int line, const char *message)
+{
+ fprintf(stderr, "%s:%i: %s\n", file, line, message);
+ exit(1);
+}
+
+void usage(void)
+{
+ printf("Usage: recv [options] <addr>\n");
+ printf("-c \tPath to the certificate file.\n");
+ printf("-k \tPath to the private key file.\n");
+ printf("-p \tPassword for the private key.\n");
+ printf("<addr>\tAn address.\n");
+ exit(0);
+}
+
+int main(int argc, char** argv)
+{
+ char* certificate = NULL;
+ char* privatekey = NULL;
+ char* password = NULL;
+ char* address = (char *) "amqp://~0.0.0.0";
+ int c;
+
+ pn_message_t * message;
+ pn_messenger_t * messenger;
+
+ message = pn_message();
+ messenger = pn_messenger(NULL);
+
+ opterr = 0;
+
+ while((c = getopt(argc, argv, "hc:k:p:")) != -1)
+ {
+ switch(c)
+ {
+ case 'h':
+ usage();
+ break;
+
+ case 'c': certificate = optarg; break;
+ case 'k': privatekey = optarg; break;
+ case 'p': password = optarg; break;
+
+ case '?':
+ if(optopt == 'c' ||
+ optopt == 'k' ||
+ optopt == 'p')
+ {
+ fprintf(stderr, "Option -%c requires an argument.\n", optopt);
+ }
+ else if(isprint(optopt))
+ {
+ fprintf(stderr, "Unknown option `-%c'.\n", optopt);
+ }
+ else
+ {
+ fprintf(stderr, "Unknown option character `\\x%x'.\n", optopt);
+ }
+ return 1;
+ default:
+ abort();
+ }
+ }
+
+ if (optind < argc)
+ {
+ address = argv[optind];
+ }
+
+ /* load the various command line options if they're set */
+ if(certificate)
+ {
+ pn_messenger_set_certificate(messenger, certificate);
+ }
+
+ if(privatekey)
+ {
+ pn_messenger_set_private_key(messenger, privatekey);
+ }
+
+ if(password)
+ {
+ pn_messenger_set_password(messenger, password);
+ }
+
+ pn_messenger_start(messenger);
+ check(messenger);
+
+ pn_messenger_subscribe(messenger, address);
+ check(messenger);
+
+ for(;;)
+ {
+ pn_messenger_recv(messenger, 1024);
+ check(messenger);
+
+ while(pn_messenger_incoming(messenger))
+ {
+ pn_messenger_get(messenger, message);
+ check(messenger);
+
+ {
+ char buffer[1024];
+ size_t buffsize = sizeof(buffer);
+ const char* subject = pn_message_get_subject(message);
+ pn_data_t *body = pn_message_body(message);
+ pn_data_format(body, buffer, &buffsize);
+
+ printf("Address: %s\n", pn_message_get_address(message));
+ printf("Subject: %s\n", subject ? subject : "(no subject)");
+ printf("Content: %s\n", buffer);
+ }
+ }
+ }
+
+ return 0;
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org