qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jr...@apache.org
Subject [50/51] [partial] qpid-site git commit: PROTON-1271: Update the site for the 0.14.0 release
Date Mon, 29 Aug 2016 22:46:51 GMT
http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/content/documentation.html
----------------------------------------------------------------------
diff --git a/content/documentation.html b/content/documentation.html
index e95cc6c..af09173 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.13.1/proton/c/api/files.html">C API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/cpp/api/annotated.html">C++ API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/java/api/index.html">Java API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/python/api/index.html">Python API reference</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>
 </ul>
 
 </section>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/content/download.html
----------------------------------------------------------------------
diff --git a/content/download.html b/content/download.html
index e620a95..34d82c3 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.13.1">Qpid Proton 0.13.1</a>,
+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>,
 <a href="/releases/qpid-dispatch-0.6.1">Qpid Dispatch 0.6.1</a>, <a href="/releases/qpid-jms-0.10.0">Qpid JMS 0.10.0</a>, <a href="/releases/qpid-java-6.0.4">Qpid for Java 6.0.4</a> and <a href="/releases/qpid-cpp-0.34">Qpid C++ 0.34</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.13.1/qpid-proton-0.13.1.tar.gz">qpid-proton-0.13.1.tar.gz</a></td>
-  <td><a href="http://www.apache.org/dist/qpid/proton/0.13.1/qpid-proton-0.13.1.tar.gz.asc">ASC</a>, <a href="http://www.apache.org/dist/qpid/proton/0.13.1/qpid-proton-0.13.1.tar.gz.md5">MD5</a>, <a href="http://www.apache.org/dist/qpid/proton/0.13.1/qpid-proton-0.13.1.tar.gz.sha1">SHA1</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>
 </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/74507ce6/content/maven.html
----------------------------------------------------------------------
diff --git a/content/maven.html b/content/maven.html
index beb28a4..9b0ae45 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">&lt;dependency&gt;</span>
   <span class="nt">&lt;groupId&gt;</span>org.apache.qpid<span class="nt">&lt;/groupId&gt;</span>
   <span class="nt">&lt;artifactId&gt;</span>proton-j<span class="nt">&lt;/artifactId&gt;</span>
-  <span class="nt">&lt;version&gt;</span>0.13.1<span class="nt">&lt;/version&gt;</span>
+  <span class="nt">&lt;version&gt;</span>0.14.0<span class="nt">&lt;/version&gt;</span>
 <span class="nt">&lt;/dependency&gt;</span>
 </pre></div>
 

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/content/proton/index.html
----------------------------------------------------------------------
diff --git a/content/proton/index.html b/content/proton/index.html
index 8f1c704..b87a3e3 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.13.1/proton/c/api/files.html">C API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/cpp/api/index.html">C++ introduction</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/cpp/api/tutorial.html">C++ tutorial</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/cpp/examples/index.html">C++ examples</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/cpp/api/annotated.html">C++ API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/java/api/index.html">Java API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/python/book/overview.html">Python overview</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/python/book/tutorial.html">Python tutorial</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/python/examples/index.html">Python examples</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/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.13.1">Installing Qpid Proton</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/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>
 </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.13.1">Qpid Proton 0.13.1</a></li>
+<li><a href="/releases/qpid-proton-0.14.0">Qpid Proton 0.14.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/74507ce6/content/proton/messenger.html
----------------------------------------------------------------------
diff --git a/content/proton/messenger.html b/content/proton/messenger.html
index 8b9d1aa..394a144 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.13.1/proton/c/api/messenger_8h.html">C API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/messenger/c/examples/index.html">C examples</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/java/api/org/apache/qpid/proton/messenger/Messenger.html">Java API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/messenger/perl/examples/index.html">Perl examples</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/messenger/php/examples/index.html">PHP examples</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/proton/python/api/proton.Messenger-class.html">Python API reference</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/messenger/python/examples/index.html">Python examples</a></li>
-<li><a href="/releases/qpid-proton-0.13.1/messenger/ruby/examples/index.html">Ruby examples</a></li>
+<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>
 </ul>
 
 </div>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/content/releases/index.html
----------------------------------------------------------------------
diff --git a/content/releases/index.html b/content/releases/index.html
index aa0a0b9..6bc79ec 100644
--- a/content/releases/index.html
+++ b/content/releases/index.html
@@ -124,7 +124,7 @@ the
 <h2 id="current-releases">Current releases</h2>
 
 <ul>
-<li><a href="qpid-proton-0.13.1/index.html">Qpid Proton 0.13.1</a>, July 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-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>
@@ -137,6 +137,7 @@ the
 <div class="two-column">
 
 <ul>
+<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>
 <li><a href="qpid-proton-0.13.0/index.html">Qpid Proton 0.13.0</a>, June 2016</li>
 <li><a href="qpid-java-6.0.3/index.html">Qpid for Java 6.0.3</a>, May 2016</li>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 1ad9849..175d012 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.13.1") {
+      if ("0.10" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 3ba8d39..db77f8d 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.13.1") {
+      if ("0.11.0" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 8f2be5a..2c225e4 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.13.1") {
+      if ("0.11.1" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 71d46fc..21480c7 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.13.1") {
+      if ("0.12.0" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 7f261a7..b298933 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.13.1") {
+      if ("0.12.1" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 3db8736..fdbbd03 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.13.1") {
+      if ("0.12.2" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 cf560b1..3532ce5 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.13.1") {
+      if ("0.13.0" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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 ecedce5..c5190e6 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.13.1") {
+      if ("0.13.1" === "0.14.0") {
           _modifyCurrentReleaseLinks();
       }
   });

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/74507ce6/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
new file mode 100644
index 0000000..67034e9
--- /dev/null
+++ b/content/releases/qpid-proton-0.14.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.14.0 - Apache Qpid&#8482;</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>&#8482;</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.14.0</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="qpid-proton-0140">Qpid Proton 0.14.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.14.0/qpid-proton-0.14.0.tar.gz">qpid-proton-0.14.0.tar.gz</a></td>
+  <td><a href="http://archive.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz.asc">ASC</a>, <a href="http://archive.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.0.tar.gz.md5">MD5</a>, <a href="http://archive.apache.org/dist/qpid/proton/0.14.0/qpid-proton-0.14.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.14.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.14.0">All release artefacts</a></li>
+<li><a href="https://issues.apache.org/jira/issues/?jql=project+%3D+PROTON+AND+fixVersion+%3D+%270.14.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.14.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.14.0">Source repository tag</a></li>
+</ul>
+
+<script type="text/javascript">
+  _deferredFunctions.push(function() {
+      if ("0.14.0" === "0.14.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 &#169; 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/74507ce6/content/releases/qpid-proton-0.14.0/messenger/c/examples/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.14.0/messenger/c/examples/index.html b/content/releases/qpid-proton-0.14.0/messenger/c/examples/index.html
new file mode 100644
index 0000000..d88a218
--- /dev/null
+++ b/content/releases/qpid-proton-0.14.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&#8482;</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>&#8482;</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.14.0/index.html">Qpid Proton 0.14.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.14.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 &#169; 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/74507ce6/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv-async.c
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv-async.c b/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv-async.c
new file mode 100755
index 0000000..1f49166
--- /dev/null
+++ b/content/releases/qpid-proton-0.14.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/74507ce6/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv-async.c.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv-async.c.html b/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv-async.c.html
new file mode 100644
index 0000000..b2f6d21
--- /dev/null
+++ b/content/releases/qpid-proton-0.14.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&#8482;</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>&#8482;</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.14.0/index.html">Qpid Proton 0.14.0</a></li><li><a href="/releases/qpid-proton-0.14.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></span><span class="c1">// This is a re-implementation of recv.c using non-blocking/asynchronous calls.</span>
+
+<span class="cp">#include</span> <span class="cpf">&quot;proton/message.h&quot;</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">&quot;proton/messenger.h&quot;</span><span class="cp"></span>
+
+<span class="cp">#include</span> <span class="cpf">&quot;pncompat/misc_funcs.inc&quot;</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">&lt;stdio.h&gt;</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">&lt;stdlib.h&gt;</span><span class="cp"></span>
+<span class="cp">#include</span> <span class="cpf">&lt;ctype.h&gt;</span><span class="cp"></span>
+
+<span class="cp">#if EMSCRIPTEN</span>
+<span class="cp">#include</span> <span class="cpf">&lt;emscripten.h&gt;</span><span class="cp"></span>
+<span class="cp">#endif</span>
+
+<span class="n">pn_message_t</span> <span class="o">*</span> <span class="n">message</span><span class="p">;</span>
+<span class="n">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">&quot;%s:%i: %s</span><span class="se">\n</span><span class="s">&quot;</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">&quot;Usage: recv [options] &lt;addr&gt;</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span class="s">&quot;-c    </span><span class="se">\t</span><span class="s">Path to the certificate file.</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span class="s">&quot;-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">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span class="s">&quot;-p    </span><span class="se">\t</span><span class="s">Password for the private key.</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
+    <span class="n">printf</span><span class="p">(</span><span class="s">&quot;&lt;addr&gt;</span><span class="se">\t</span><span class="s">An address.</span><span class="se">\n</span><span class="s">&quot;</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="n">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="n">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">&amp;</span><span class="n">buffsize</span><span class="p">);</span>
+
+        <span class="n">printf</span><span class="p">(</span><span class="s">&quot;Address: %s</span><span class="se">\n</span><span class="s">&quot;</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">&quot;Subject: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">subject</span> <span class="o">?</span> <span class="nl">subject</span> <span class="p">:</span> <span class="s">&quot;(no subject)&quot;</span><span class="p">);</span>
+        <span class="n">printf</span><span class="p">(</span><span class="s">&quot;Content: %s</span><span class="se">\n</span><span class="s">&quot;</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">&gt;=</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">&quot;error callback fd = %d, errno = %d, msg = %s</span><span class="se">\n</span><span class="s">&quot;</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">&quot;amqp://~0.0.0.0&quot;</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">&quot;hc:k:p:&quot;</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">&#39;h&#39;</span><span class="o">:</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">&#39;c&#39;</span><span class="o">:</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">&#39;k&#39;</span><span class="o">:</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">&#39;p&#39;</span><span class="o">:</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">&#39;?&#39;</span><span class="o">:</span>
+                <span class="k">if</span> <span class="p">(</span><span class="n">optopt</span> <span class="o">==</span> <span class="sc">&#39;c&#39;</span> <span class="o">||</span>
+                    <span class="n">optopt</span> <span class="o">==</span> <span class="sc">&#39;k&#39;</span> <span class="o">||</span>
+                    <span class="n">optopt</span> <span class="o">==</span> <span class="sc">&#39;p&#39;</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">&quot;Option -%c requires an argument.</span><span class="se">\n</span><span class="s">&quot;</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">&quot;Unknown option `-%c&#39;.</span><span class="se">\n</span><span class="s">&quot;</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">&quot;Unknown option character `</span><span class="se">\\</span><span class="s">x%x&#39;.</span><span class="se">\n</span><span class="s">&quot;</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="k">default</span><span class="o">:</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">&lt;</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 &#169; 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/74507ce6/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv.c
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv.c b/content/releases/qpid-proton-0.14.0/messenger/c/examples/recv.c
new file mode 100755
index 0000000..16e8321
--- /dev/null
+++ b/content/releases/qpid-proton-0.14.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


Mime
View raw message