You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2017/01/03 22:02:33 UTC
[01/30] qpid-proton git commit: PROTON-1363: [C++ binding] Remove
unneeded stuff - collector from connection_context - proton::task
Repository: qpid-proton
Updated Branches:
refs/heads/go1 0889192a3 -> 4afe30d87
PROTON-1363: [C++ binding] Remove unneeded stuff
- collector from connection_context
- proton::task
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/7d404b6e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/7d404b6e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/7d404b6e
Branch: refs/heads/go1
Commit: 7d404b6ee1d5c4f03d4c0675d986774e10594538
Parents: a34c93b
Author: Andrew Stitcher <as...@apache.org>
Authored: Wed Nov 23 00:41:51 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Mon Nov 28 13:38:38 2016 -0500
----------------------------------------------------------------------
proton-c/bindings/cpp/CMakeLists.txt | 2 -
.../bindings/cpp/include/proton/container.hpp | 1 -
proton-c/bindings/cpp/include/proton/task.hpp | 48 --------------------
proton-c/bindings/cpp/src/acceptor.cpp | 27 -----------
proton-c/bindings/cpp/src/connector.cpp | 1 -
proton-c/bindings/cpp/src/container_impl.cpp | 5 +-
.../bindings/cpp/src/include/container_impl.hpp | 5 +-
proton-c/bindings/cpp/src/include/contexts.hpp | 3 +-
proton-c/bindings/cpp/src/include/reactor.hpp | 3 +-
.../bindings/cpp/src/io/connection_driver.cpp | 2 -
proton-c/bindings/cpp/src/reactor.cpp | 7 +--
proton-c/bindings/cpp/src/receiver.cpp | 7 +--
proton-c/bindings/cpp/src/task.cpp | 29 ------------
13 files changed, 10 insertions(+), 130 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/CMakeLists.txt b/proton-c/bindings/cpp/CMakeLists.txt
index 6af4319..5e0a8c7 100644
--- a/proton-c/bindings/cpp/CMakeLists.txt
+++ b/proton-c/bindings/cpp/CMakeLists.txt
@@ -27,7 +27,6 @@ include_directories(
add_definitions(${CXX_WARNING_FLAGS})
set(qpid-proton-cpp-source
- src/acceptor.cpp
src/binary.cpp
src/byte_array.cpp
src/cached_map.cpp
@@ -73,7 +72,6 @@ set(qpid-proton-cpp-source
src/ssl.cpp
src/ssl_domain.cpp
src/target.cpp
- src/task.cpp
src/terminus.cpp
src/timestamp.cpp
src/tracker.cpp
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/include/proton/container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/container.hpp b/proton-c/bindings/cpp/include/proton/container.hpp
index 5006329..7d2d34c 100644
--- a/proton-c/bindings/cpp/include/proton/container.hpp
+++ b/proton-c/bindings/cpp/include/proton/container.hpp
@@ -46,7 +46,6 @@ class receiver;
class receiver_options;
class sender;
class sender_options;
-class task;
/// A top-level container of connections, sessions, senders, and
/// receivers.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/include/proton/task.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/task.hpp b/proton-c/bindings/cpp/include/proton/task.hpp
deleted file mode 100644
index c13d7ad..0000000
--- a/proton-c/bindings/cpp/include/proton/task.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef PROTON_TASK_HPP
-#define PROTON_TASK_HPP
-
-/*
- *
- * 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.
- *
- */
-
-/// @cond INTERNAL
-/// XXX Needs more discussion
-
-#include "./internal/export.hpp"
-#include "./internal/object.hpp"
-
-#include <proton/reactor.h>
-
-namespace proton {
-
-/// **Experimental** - A task for timer events.
-class task : public internal::object<pn_task_t> {
- public:
- task(pn_task_t* t) : internal::object<pn_task_t>(t) {}
-
- /// Cancel the scheduled task.
- PN_CPP_EXTERN void cancel();
-};
-
-} // proton
-
-/// @endcond
-
-#endif // PROTON_TASK_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/acceptor.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/acceptor.cpp b/proton-c/bindings/cpp/src/acceptor.cpp
deleted file mode 100644
index 1b5a0bd..0000000
--- a/proton-c/bindings/cpp/src/acceptor.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *
- * 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 "acceptor.hpp"
-
-namespace proton {
-
-void acceptor::close() { pn_acceptor_close(pn_object()); }
-
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/connector.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connector.cpp b/proton-c/bindings/cpp/src/connector.cpp
index 91ba730..045d4de 100644
--- a/proton-c/bindings/cpp/src/connector.cpp
+++ b/proton-c/bindings/cpp/src/connector.cpp
@@ -25,7 +25,6 @@
#include "proton/transport.hpp"
#include "proton/container.hpp"
#include "proton/reconnect_timer.hpp"
-#include "proton/task.hpp"
#include "proton/sasl.hpp"
#include "proton/url.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/container_impl.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container_impl.cpp b/proton-c/bindings/cpp/src/container_impl.cpp
index aca67ae..a818c0f 100644
--- a/proton-c/bindings/cpp/src/container_impl.cpp
+++ b/proton-c/bindings/cpp/src/container_impl.cpp
@@ -27,7 +27,6 @@
#include "proton/event_loop.hpp"
#include "proton/sender.hpp"
#include "proton/receiver.hpp"
-#include "proton/task.hpp"
#include "proton/ssl.hpp"
#include "proton/sasl.hpp"
#include "proton/transport.hpp"
@@ -265,12 +264,12 @@ void container_impl::stop_listening(const std::string& url) {
close_acceptor(i->second);
}
-task container_impl::schedule(container& c, int delay, proton_handler *h) {
+void container_impl::schedule(container& c, int delay, proton_handler *h) {
container_impl& ci = static_cast<container_impl&>(c);
internal::pn_ptr<pn_handler_t> task_handler;
if (h)
task_handler = ci.cpp_handler(h);
- return ci.reactor_.schedule(delay, task_handler.get());
+ ci.reactor_.schedule(delay, task_handler.get());
}
namespace {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/include/container_impl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/container_impl.hpp b/proton-c/bindings/cpp/src/include/container_impl.hpp
index 97f6be2..0ffc2eb 100644
--- a/proton-c/bindings/cpp/src/include/container_impl.hpp
+++ b/proton-c/bindings/cpp/src/include/container_impl.hpp
@@ -22,8 +22,6 @@
*
*/
-#include "proton/io/link_namer.hpp"
-
#include "proton/container.hpp"
#include "proton/connection.hpp"
#include "proton/connection_options.hpp"
@@ -48,7 +46,6 @@ class connector;
class acceptor;
class container;
class url;
-class task;
class listen_handler;
class container_impl : public standard_container {
@@ -88,7 +85,7 @@ class container_impl : public standard_container {
// non-interface functions
void configure_server_connection(connection &c);
- static task schedule(container& c, int delay, proton_handler *h);
+ static void schedule(container& c, int delay, proton_handler *h);
template <class T> static void set_handler(T s, messaging_handler* h);
private:
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/include/contexts.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/contexts.hpp b/proton-c/bindings/cpp/src/include/contexts.hpp
index 1d4194e..4306489 100644
--- a/proton-c/bindings/cpp/src/include/contexts.hpp
+++ b/proton-c/bindings/cpp/src/include/contexts.hpp
@@ -85,13 +85,12 @@ class context {
// Connection context used by all connections.
class connection_context : public context {
public:
- connection_context() : container(0), default_session(0), link_gen(0), collector(0) {}
+ connection_context() : container(0), default_session(0), link_gen(0) {}
class container* container;
pn_session_t *default_session; // Owned by connection.
message event_message; // re-used by messaging_adapter for performance.
io::link_namer* link_gen; // Link name generator.
- pn_collector_t* collector;
internal::pn_unique_ptr<proton_handler> handler;
internal::pn_unique_ptr<class event_loop> event_loop;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/include/reactor.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/reactor.hpp b/proton-c/bindings/cpp/src/include/reactor.hpp
index c7ab915..21df5ce 100644
--- a/proton-c/bindings/cpp/src/include/reactor.hpp
+++ b/proton-c/bindings/cpp/src/include/reactor.hpp
@@ -38,7 +38,6 @@ class container;
class acceptor;
class url;
class messaging_handler;
-class task;
class reactor : public internal::object<pn_reactor_t> {
public:
@@ -74,7 +73,7 @@ class reactor : public internal::object<pn_reactor_t> {
timestamp mark();
timestamp now();
- task schedule(int, pn_handler_t*);
+ void schedule(int, pn_handler_t*);
class connection connection(pn_handler_t*) const;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/io/connection_driver.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/io/connection_driver.cpp b/proton-c/bindings/cpp/src/io/connection_driver.cpp
index 06b01d8..ca9f68e 100644
--- a/proton-c/bindings/cpp/src/io/connection_driver.cpp
+++ b/proton-c/bindings/cpp/src/io/connection_driver.cpp
@@ -68,8 +68,6 @@ void connection_driver::configure(const connection_options& opts, bool server) {
pn_connection_driver_bind(&driver_);
opts.apply_bound(c);
handler_ = opts.handler();
- connection_context::get(connection()).collector =
- pn_connection_collector(driver_.connection);
}
void connection_driver::connect(const connection_options& opts) {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/reactor.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/reactor.cpp b/proton-c/bindings/cpp/src/reactor.cpp
index 15547f0..39f670f 100644
--- a/proton-c/bindings/cpp/src/reactor.cpp
+++ b/proton-c/bindings/cpp/src/reactor.cpp
@@ -21,7 +21,6 @@
#include "acceptor.hpp"
#include "proton/connection.hpp"
-#include "proton/task.hpp"
#include "proton/url.hpp"
#include "contexts.hpp"
@@ -45,12 +44,14 @@ void reactor::yield() { pn_reactor_yield(pn_object()); }
timestamp reactor::mark() { return timestamp(pn_reactor_mark(pn_object())); }
timestamp reactor::now() { return timestamp(pn_reactor_now(pn_object())); }
+void acceptor::close() { pn_acceptor_close(pn_object()); }
+
acceptor reactor::listen(const url& url){
return make_wrapper(pn_reactor_acceptor(pn_object(), url.host().c_str(), url.port().c_str(), 0));
}
-task reactor::schedule(int delay, pn_handler_t* handler) {
- return pn_reactor_schedule(pn_object(), delay, handler);
+void reactor::schedule(int delay, pn_handler_t* handler) {
+ pn_reactor_schedule(pn_object(), delay, handler);
}
connection reactor::connection(pn_handler_t* h) const {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/receiver.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/receiver.cpp b/proton-c/bindings/cpp/src/receiver.cpp
index e5ec55a..2c417f0 100644
--- a/proton-c/bindings/cpp/src/receiver.cpp
+++ b/proton-c/bindings/cpp/src/receiver.cpp
@@ -73,12 +73,7 @@ void receiver::drain() {
// Drain is already complete. No state to communicate over the wire.
// Create dummy flow event where "drain finish" can be detected.
pn_connection_t *pnc = pn_session_connection(pn_link_session(pn_object()));
- connection_context& cctx = connection_context::get(pnc);
- // connection_driver collector is per connection. Reactor collector is global.
- pn_collector_t *coll = cctx.collector;
- if (!coll)
- coll = pn_reactor_collector(pn_object_reactor(pnc));
- pn_collector_put(coll, PN_OBJECT, pn_object(), PN_LINK_FLOW);
+ pn_collector_put(pn_connection_collector(pnc), PN_OBJECT, pn_object(), PN_LINK_FLOW);
}
}
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7d404b6e/proton-c/bindings/cpp/src/task.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/task.cpp b/proton-c/bindings/cpp/src/task.cpp
deleted file mode 100644
index b71212b..0000000
--- a/proton-c/bindings/cpp/src/task.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *
- * 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/task.hpp"
-#include <proton/reactor.h>
-
-namespace proton {
-
-void task::cancel() { pn_task_cancel(pn_object()); }
-
-}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[18/30] qpid-proton git commit: NO-JIRA: update mailing list details
Posted by ac...@apache.org.
NO-JIRA: update mailing list details
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/db05c132
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/db05c132
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/db05c132
Branch: refs/heads/go1
Commit: db05c132b6efed61eceacd796f1bc1b685da8095
Parents: 6c80c46
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 11:44:14 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 11:44:14 2016 +0000
----------------------------------------------------------------------
DEVELOPERS.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/db05c132/DEVELOPERS.md
----------------------------------------------------------------------
diff --git a/DEVELOPERS.md b/DEVELOPERS.md
index 4e9b06b..7d631e6 100644
--- a/DEVELOPERS.md
+++ b/DEVELOPERS.md
@@ -100,9 +100,9 @@ when running the Maven build directly:
Mailing list
------------
-Subscribe to the Qpid Proton mailing list here:
+Subscribe to the Qpid mailing lists using details at:
- http://qpid.apache.org/proton/mailing_lists.html
+ http://qpid.apache.org/discussion.html
Patches
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[27/30] qpid-proton git commit: PROTON-1378: only generate a single
PN_REACTOR_FINAL in reactor.c
Posted by ac...@apache.org.
PROTON-1378: only generate a single PN_REACTOR_FINAL in reactor.c
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/673c75e7
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/673c75e7
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/673c75e7
Branch: refs/heads/go1
Commit: 673c75e71af00bf56e0e977c46be572144dbb578
Parents: 9377d85
Author: Clifford Jansen <cl...@apache.org>
Authored: Wed Dec 21 10:37:31 2016 -0800
Committer: Clifford Jansen <cl...@apache.org>
Committed: Wed Dec 21 10:37:31 2016 -0800
----------------------------------------------------------------------
proton-c/src/reactor/reactor.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/673c75e7/proton-c/src/reactor/reactor.c
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/reactor.c b/proton-c/src/reactor/reactor.c
index abf5d1e..bbf94f1 100644
--- a/proton-c/src/reactor/reactor.c
+++ b/proton-c/src/reactor/reactor.c
@@ -436,7 +436,8 @@ bool pn_reactor_process(pn_reactor_t *reactor) {
pn_reactor_update(reactor, reactor->selectable);
reactor->selectable = NULL;
} else {
- pn_collector_put(reactor->collector, PN_OBJECT, reactor, PN_REACTOR_FINAL);
+ if (reactor->previous != PN_REACTOR_FINAL)
+ pn_collector_put(reactor->collector, PN_OBJECT, reactor, PN_REACTOR_FINAL);
return false;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[05/30] qpid-proton git commit: NO-JIRA: remove stale mention of
updating setup versions for the python bindings
Posted by ac...@apache.org.
NO-JIRA: remove stale mention of updating setup versions for the python bindings
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/6b18e633
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/6b18e633
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/6b18e633
Branch: refs/heads/go1
Commit: 6b18e633d5e980d483211129e400d245fe4e9c95
Parents: d39730b
Author: Robert Gemmell <ro...@apache.org>
Authored: Fri Dec 2 14:55:14 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Fri Dec 2 14:55:14 2016 +0000
----------------------------------------------------------------------
RELEASE.md | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6b18e633/RELEASE.md
----------------------------------------------------------------------
diff --git a/RELEASE.md b/RELEASE.md
index 8be148e..232e944 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -3,9 +3,8 @@
1. Grab a clean checkout for safety.
2. Run: "git checkout ${BRANCH}" to switch to a branch of the intended release point.
3. Update the versions:
- - Run: "bin/version.sh ${VERSION}", e.g. bin/version.sh 0.15.0.
+ - Run: "bin/version.sh ${VERSION}", e.g. bin/version.sh 0.17.0
- Update the version(s) if needed in file: proton-c/bindings/python/docs/conf.py
- - Update the version(s) if needed in file: proton-c/bindings/python/setuputils/bundle.py
4. Commit the changes, tag them.
- Run: "git add ."
- Run: 'git commit -m "update versions for ${TAG}"'
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[20/30] qpid-proton git commit: NO-JIRA: dont try to install
previously-deleted TODO file...
Posted by ac...@apache.org.
NO-JIRA: dont try to install previously-deleted TODO file...
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/6a6511d8
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/6a6511d8
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/6a6511d8
Branch: refs/heads/go1
Commit: 6a6511d82594596210c95f9a5a17c09c675605fd
Parents: e99d074
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 13:57:31 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 13:57:31 2016 +0000
----------------------------------------------------------------------
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6a6511d8/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index df18cfa..a6cca43 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -180,7 +180,7 @@ endif (ENABLE_VALGRIND)
add_subdirectory(proton-c)
add_subdirectory(examples)
-install (FILES LICENSE README.md TODO
+install (FILES LICENSE README.md
DESTINATION ${PROTON_SHARE})
install (DIRECTORY examples
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[08/30] qpid-proton git commit: PROTON-1367: Adjust deprecations;
improve rendered doc output
Posted by ac...@apache.org.
PROTON-1367: Adjust deprecations; improve rendered doc output
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/140cf997
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/140cf997
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/140cf997
Branch: refs/heads/go1
Commit: 140cf99744406804a5b5754baa99fd1af9e21d08
Parents: 7bae475
Author: Justin Ross <jr...@apache.org>
Authored: Fri Dec 2 13:05:27 2016 -0800
Committer: Justin Ross <jr...@apache.org>
Committed: Fri Dec 2 13:05:27 2016 -0800
----------------------------------------------------------------------
examples/c/proactor/README.dox | 32 +++++-----
proton-c/docs/api/index.md | 18 +++---
proton-c/docs/api/user.doxygen.in | 19 ++++--
proton-c/include/proton/codec.h | 22 ++++---
proton-c/include/proton/condition.h | 10 +++-
proton-c/include/proton/connection.h | 4 ++
proton-c/include/proton/connection_driver.h | 2 +-
proton-c/include/proton/delivery.h | 2 +
proton-c/include/proton/disposition.h | 2 +
proton-c/include/proton/error.h | 2 +
proton-c/include/proton/event.h | 2 +
proton-c/include/proton/handlers.h | 2 -
proton-c/include/proton/link.h | 4 ++
proton-c/include/proton/message.h | 2 +
proton-c/include/proton/messenger.h | 6 +-
proton-c/include/proton/reactor.h | 2 -
proton-c/include/proton/sasl.h | 2 +
proton-c/include/proton/selectable.h | 2 -
proton-c/include/proton/session.h | 4 ++
proton-c/include/proton/ssl.h | 2 +
proton-c/include/proton/terminus.h | 2 +
proton-c/include/proton/transport.h | 76 ++++++++++++------------
proton-c/include/proton/types.h | 22 ++++---
proton-c/include/proton/url.h | 3 +-
24 files changed, 144 insertions(+), 100 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/examples/c/proactor/README.dox
----------------------------------------------------------------------
diff --git a/examples/c/proactor/README.dox b/examples/c/proactor/README.dox
index 9817267..4b09cb7 100644
--- a/examples/c/proactor/README.dox
+++ b/examples/c/proactor/README.dox
@@ -1,15 +1,17 @@
-/// @example send.c
-///
-/// Send a fixed number of messages to the "example" node.
-///
-/// @example receive.c
-///
-/// Subscribes to the 'example' node and prints the message bodies
-/// received.
-///
-/// @example broker.c
-///
-/// A simple multi-threaded broker that works with the send and
-/// receive examples.
-///
-/// __Requires C++11__
+/**
+ * @example send.c
+ *
+ * Send a fixed number of messages to the "example" node.
+ *
+ * @example receive.c
+ *
+ * Subscribes to the 'example' node and prints the message bodies
+ * received.
+ *
+ * @example broker.c
+ *
+ * A simple multithreaded broker that works with the send and receive
+ * examples.
+ *
+ * __Requires C++11__
+ */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/docs/api/index.md
----------------------------------------------------------------------
diff --git a/proton-c/docs/api/index.md b/proton-c/docs/api/index.md
index 2936278..cf35c33 100644
--- a/proton-c/docs/api/index.md
+++ b/proton-c/docs/api/index.md
@@ -1,5 +1,9 @@
# Introduction {#index}
+This is the C API for the Proton AMQP protocol engine. It allows you
+to write client and server applications that send and receive AMQP
+messages.
+
## Core
@ref core is a collection of types and functions representing AMQP
@@ -9,7 +13,8 @@ receive @ref message "messages".
## Types
-@ref types contains Protocol and API data types.
+@ref types contains C data types, including @ref amqp\_types and @ref
+api\_types.
## Codec
@@ -17,7 +22,7 @@ receive @ref message "messages".
## IO
-@ref io holds interfaces for IO integration.
+@ref io holds interfaces for integrating Proton with platform IO.
The @ref proactor is a portable, proactive, asynchronous API for
single- or multithreaded applications. It associates AMQP @ref
@@ -30,12 +35,3 @@ low-level SPI to feed byte streams from any source to the protocol
engine. You can use it to integrate Proton directly with a foreign
event loop or IO library, or to implement your own @ref proactor to
transparently replace Proton's IO layer.
-
-<!--
-
-**Old APIs** - The @ref messenger and @ref reactor APIs are older APIs
-that were limited to single-threaded applications. @ref reactor
-applications can be converted to use the @ref proactor since most of
-the code is written to the common @ref engine API.
-
--->
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/docs/api/user.doxygen.in
----------------------------------------------------------------------
diff --git a/proton-c/docs/api/user.doxygen.in b/proton-c/docs/api/user.doxygen.in
index 2d4d815..7c4a771 100644
--- a/proton-c/docs/api/user.doxygen.in
+++ b/proton-c/docs/api/user.doxygen.in
@@ -19,7 +19,7 @@
# Project options
-PROJECT_NAME = "Qpid Proton C"
+PROJECT_NAME = "Qpid Proton C API"
PROJECT_NUMBER = @PN_VERSION_MAJOR@.@PN_VERSION_MINOR@.@PN_VERSION_POINT@
OUTPUT_DIRECTORY = .
OUTPUT_LANGUAGE = English
@@ -28,7 +28,7 @@ REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = YES
JAVADOC_AUTOBRIEF = YES
-MULTILINE_CPP_IS_BRIEF = NO
+#MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
BUILTIN_STL_SUPPORT = YES
INLINE_SIMPLE_STRUCTS = YES
@@ -45,7 +45,7 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = PN_EXTERN= PNX_EXTERN=
-#EXCLUDE_SYMBOLS =
+#EXCLUDE_SYMBOLS =
# Configuration options related to warning and progress messages
@@ -56,7 +56,17 @@ WARNINGS = YES
INPUT = @CMAKE_SOURCE_DIR@/proton-c/include @CMAKE_SOURCE_DIR@/proton-c/docs @CMAKE_SOURCE_DIR@/examples/c
FILE_PATTERNS = *.h *.md *.dox
-# Don't parse example sources, only *. md and *.dox
+EXCLUDE = \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/cid.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/engine.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/handlers.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/import_export.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/log.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/object.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/parser.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/reactor.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/selectable.h \
+ @CMAKE_SOURCE_DIR@/proton-c/include/proton/type_compat.h
EXCLUDE_PATTERNS = @CMAKE_SOURCE_DIR@/examples/*.c @CMAKE_SOURCE_DIR@/examples/*.h
FULL_PATH_NAMES = YES
RECURSIVE = YES
@@ -71,6 +81,7 @@ GENERATE_TODOLIST = NO
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = NO
GENERATE_DEPRECATEDLIST = YES
+IGNORE_PREFIX = pn_ PN_
# Configuration options related to the output format
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/codec.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/codec.h b/proton-c/include/proton/codec.h
index e812098..8f96774 100644
--- a/proton-c/include/proton/codec.h
+++ b/proton-c/include/proton/codec.h
@@ -35,6 +35,8 @@ extern "C" {
/**
* @file
+ *
+ * @copybrief codec
*/
/**
@@ -190,14 +192,11 @@ typedef enum {
PN_EXTERN const char *pn_type_name(pn_type_t type);
/**
- * @addtogroup codec
- * @{
- */
-
-/**
* A descriminated union that holds any scalar AMQP value. The type
* field indicates the AMQP type of the value, and the union may be
* used to access the value for a given type.
+ *
+ * @ingroup api_types
*/
typedef struct {
/**
@@ -303,6 +302,11 @@ typedef struct {
} pn_atom_t;
/**
+ * @addtogroup data
+ * @{
+ */
+
+/**
* An AMQP Data object.
*
* A pn_data_t object provides an interface for decoding, extracting,
@@ -400,14 +404,14 @@ PN_EXTERN pn_error_t *pn_data_error(pn_data_t *data);
/**
* @cond INTERNAL
- */
+ */
PN_EXTERN int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap);
PN_EXTERN int pn_data_fill(pn_data_t *data, const char *fmt, ...);
PN_EXTERN int pn_data_vscan(pn_data_t *data, const char *fmt, va_list ap);
PN_EXTERN int pn_data_scan(pn_data_t *data, const char *fmt, ...);
/**
* @endcond
- */
+ */
/**
* Clears a pn_data_t object.
@@ -482,11 +486,11 @@ PN_EXTERN bool pn_data_exit(pn_data_t *data);
/**
* @cond INTERNAL
- */
+ */
PN_EXTERN bool pn_data_lookup(pn_data_t *data, const char *name);
/**
* @endcond
- */
+ */
/**
* Access the type of the current node. Returns PN_INVALID if there is no
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/condition.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/condition.h b/proton-c/include/proton/condition.h
index ee31b63..631a678 100644
--- a/proton-c/include/proton/condition.h
+++ b/proton-c/include/proton/condition.h
@@ -34,6 +34,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief condition
+ *
* @addtogroup condition
* @{
*/
@@ -129,10 +131,14 @@ PN_EXTERN int pn_condition_set_description(pn_condition_t *condition, const char
*/
PN_EXTERN pn_data_t *pn_condition_info(pn_condition_t *condition);
-/** Set the name and printf-style formatted description. */
+/**
+ * Set the name and printf-style formatted description.
+ */
PN_EXTERN int pn_condition_vformat(pn_condition_t *, const char *name, const char *fmt, va_list ap);
-/** Set the name and printf-style formatted description. */
+/**
+ * Set the name and printf-style formatted description.
+ */
PN_EXTERN int pn_condition_format(pn_condition_t *, const char *name, const char *fmt, ...);
/**
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/connection.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/connection.h b/proton-c/include/proton/connection.h
index 5dd04e4..748cd13 100644
--- a/proton-c/include/proton/connection.h
+++ b/proton-c/include/proton/connection.h
@@ -38,6 +38,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief connection
+ *
* @addtogroup connection
* @{
*/
@@ -117,6 +119,8 @@ PN_EXTERN void pn_connection_free(pn_connection_t *connection);
PN_EXTERN void pn_connection_release(pn_connection_t *connection);
/**
+ * @deprecated
+ *
* Get additional error information associated with the connection.
*
* Whenever a connection operation fails (i.e. returns an error code),
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/connection_driver.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/connection_driver.h b/proton-c/include/proton/connection_driver.h
index 9db8233..b34376d 100644
--- a/proton-c/include/proton/connection_driver.h
+++ b/proton-c/include/proton/connection_driver.h
@@ -23,7 +23,7 @@
/**
* @file
*
- * **Experimental** - Low-level IO integration
+ * @copybrief connection_driver
*
* Associate a @ref connection and @ref transport with AMQP byte
* streams from any source.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/delivery.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/delivery.h b/proton-c/include/proton/delivery.h
index dbb73bf..209bf78 100644
--- a/proton-c/include/proton/delivery.h
+++ b/proton-c/include/proton/delivery.h
@@ -34,6 +34,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief delivery
+ *
* @addtogroup delivery
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/disposition.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/disposition.h b/proton-c/include/proton/disposition.h
index 95bfe51..1d35db7 100644
--- a/proton-c/include/proton/disposition.h
+++ b/proton-c/include/proton/disposition.h
@@ -34,6 +34,8 @@ extern "C" {
/**
* @file
*
+ * Delivery state
+ *
* @addtogroup delivery
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/error.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/error.h b/proton-c/include/proton/error.h
index 2986850..c115ee1 100644
--- a/proton-c/include/proton/error.h
+++ b/proton-c/include/proton/error.h
@@ -32,6 +32,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief error
+ *
* @addtogroup error
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/event.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/event.h b/proton-c/include/proton/event.h
index fad221b..4a88368 100644
--- a/proton-c/include/proton/event.h
+++ b/proton-c/include/proton/event.h
@@ -34,6 +34,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief event
+ *
* @addtogroup event
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/handlers.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/handlers.h b/proton-c/include/proton/handlers.h
index 6518e87..feff0fe 100644
--- a/proton-c/include/proton/handlers.h
+++ b/proton-c/include/proton/handlers.h
@@ -31,8 +31,6 @@ extern "C" {
#endif
/**
- * @file
- *
* @cond INTERNAL
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/link.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/link.h b/proton-c/include/proton/link.h
index aeb3b36..8ec162e 100644
--- a/proton-c/include/proton/link.h
+++ b/proton-c/include/proton/link.h
@@ -37,6 +37,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief link
+ *
* @addtogroup link
* @{
*/
@@ -147,6 +149,8 @@ PN_EXTERN bool pn_link_is_receiver(pn_link_t *link);
PN_EXTERN pn_state_t pn_link_state(pn_link_t *link);
/**
+ * @deprecated
+ *
* Get additional error information associated with the link.
*
* Whenever a link operation fails (i.e. returns an error code),
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/message.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/message.h b/proton-c/include/proton/message.h
index b047a43..5c310b0 100644
--- a/proton-c/include/proton/message.h
+++ b/proton-c/include/proton/message.h
@@ -35,6 +35,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief message
+ *
* @addtogroup message
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/messenger.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/messenger.h b/proton-c/include/proton/messenger.h
index c11e7a5..74c3fc6 100644
--- a/proton-c/include/proton/messenger.h
+++ b/proton-c/include/proton/messenger.h
@@ -35,10 +35,10 @@ extern "C" {
/**
* @file
- * @deprecated
*
- * The messenger API provides a high level interface for sending and
- * receiving AMQP messages.
+ * @copybrief messenger
+ *
+ * @deprecated
*
* @addtogroup messenger
* @{
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/reactor.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/reactor.h b/proton-c/include/proton/reactor.h
index 77d78e6..8d229ab 100644
--- a/proton-c/include/proton/reactor.h
+++ b/proton-c/include/proton/reactor.h
@@ -34,8 +34,6 @@ extern "C" {
#endif
/**
- * @file
- *
* @cond INTERNAL
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/sasl.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/sasl.h b/proton-c/include/proton/sasl.h
index f5d6f2a..671ffec 100644
--- a/proton-c/include/proton/sasl.h
+++ b/proton-c/include/proton/sasl.h
@@ -33,6 +33,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief sasl
+ *
* @addtogroup sasl
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/selectable.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/selectable.h b/proton-c/include/proton/selectable.h
index 56cccde..8c0a4db 100644
--- a/proton-c/include/proton/selectable.h
+++ b/proton-c/include/proton/selectable.h
@@ -32,8 +32,6 @@ extern "C" {
#endif
/**
- * @file
- *
* @cond INTERNAL
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/session.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/session.h b/proton-c/include/proton/session.h
index 8cca7f6..8c78db4 100644
--- a/proton-c/include/proton/session.h
+++ b/proton-c/include/proton/session.h
@@ -37,6 +37,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief session
+ *
* @addtogroup session
* @{
*/
@@ -108,6 +110,8 @@ PN_EXTERN pn_record_t *pn_session_attachments(pn_session_t *session);
PN_EXTERN pn_state_t pn_session_state(pn_session_t *session);
/**
+ * @deprecated
+ *
* Get additional error information associated with the session.
*
* Whenever a session operation fails (i.e. returns an error code),
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/ssl.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/ssl.h b/proton-c/include/proton/ssl.h
index ee2997f..4e5a0ca 100644
--- a/proton-c/include/proton/ssl.h
+++ b/proton-c/include/proton/ssl.h
@@ -33,6 +33,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief ssl
+ *
* @addtogroup ssl
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/terminus.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/terminus.h b/proton-c/include/proton/terminus.h
index 345bdda..c18fb3e 100644
--- a/proton-c/include/proton/terminus.h
+++ b/proton-c/include/proton/terminus.h
@@ -34,6 +34,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief terminus
+ *
* @addtogroup terminus
* @{
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/transport.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/transport.h b/proton-c/include/proton/transport.h
index adb74bd..09fbb03 100644
--- a/proton-c/include/proton/transport.h
+++ b/proton-c/include/proton/transport.h
@@ -34,6 +34,8 @@ extern "C" {
/**
* @file
*
+ * @copybrief transport
+ *
* @addtogroup transport
* @{
*/
@@ -124,8 +126,6 @@ PN_EXTERN void pn_transport_set_server(pn_transport_t *transport);
PN_EXTERN void pn_transport_free(pn_transport_t *transport);
/**
- * @deprecated
- *
* Retrieve the authenticated user.
*
* This is usually used at the the server end to find the name of the
@@ -146,8 +146,6 @@ PN_EXTERN void pn_transport_free(pn_transport_t *transport);
PN_EXTERN const char *pn_transport_get_user(pn_transport_t *transport);
/**
- * @deprecated
- *
* Set whether a non-authenticated transport connection is allowed.
*
* There are several ways within the AMQP protocol suite to get
@@ -164,8 +162,6 @@ PN_EXTERN const char *pn_transport_get_user(pn_transport_t *transport);
PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool required);
/**
- * @deprecated
- *
* Tell whether the transport connection is authenticated
*
* Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN
@@ -177,8 +173,6 @@ PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool require
PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport);
/**
- * @deprecated
- *
* Set whether a non encrypted transport connection is allowed
*
* There are several ways within the AMQP protocol suite to get encrypted connections:
@@ -193,8 +187,6 @@ PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport);
PN_EXTERN void pn_transport_require_encryption(pn_transport_t *transport, bool required);
/**
- * @deprecated
- *
* Tell whether the transport connection is encrypted
*
* Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN
@@ -246,6 +238,8 @@ PN_EXTERN int pn_transport_unbind(pn_transport_t *transport);
*
* @param[in] transport a transport object
* @param[in] trace the trace flags
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
@@ -258,6 +252,8 @@ PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
*
* @param[in] transport a transport object
* @param[in] tracer the tracing function
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tracer);
@@ -266,6 +262,8 @@ PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tr
*
* @param[in] transport a transport object
* @return the tracing function used by a transport
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN pn_tracer_t pn_transport_get_tracer(pn_transport_t *transport);
@@ -304,8 +302,6 @@ PN_EXTERN void pn_transport_set_context(pn_transport_t *transport, void *context
PN_EXTERN pn_record_t *pn_transport_attachments(pn_transport_t *transport);
/**
- * @deprecated
- *
* Log a message using a transport's logging mechanism.
*
* This can be useful in a debugging context as the log message will
@@ -313,12 +309,12 @@ PN_EXTERN pn_record_t *pn_transport_attachments(pn_transport_t *transport);
*
* @param[in] transport a transport object
* @param[in] message the message to be logged
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message);
/**
- * @deprecated
- *
* Log a printf formatted message using a transport's logging
* mechanism.
*
@@ -328,12 +324,12 @@ PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message);
* @param[in] transport a transport object
* @param[in] fmt the printf formatted message to be logged
* @param[in] ap a vector containing the format arguments
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va_list ap);
/**
- * @deprecated
- *
* Log a printf formatted message using a transport's logging
* mechanism.
*
@@ -342,33 +338,33 @@ PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va
*
* @param[in] transport a transport object
* @param[in] fmt the printf formatted message to be logged
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_logf(pn_transport_t *transport, const char *fmt, ...);
/**
- * @deprecated
- *
* Get the maximum allowed channel for a transport.
- * This will be the minimum of
+ * This will be the minimum of
* 1. limit imposed by this proton implementation
* 2. limit imposed by remote peer
* 3. limit imposed by this application, using pn_transport_set_channel_max()
*
* @param[in] transport a transport object
* @return the maximum allowed channel
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport);
/**
- * @deprecated
- *
* Set the maximum allowed channel number for a transport.
- * Note that this is the maximum channel number allowed, giving a
- * valid channel number range of [0..channel_max]. Therefore the
- * maximum number of simultaineously active channels will be
+ * Note that this is the maximum channel number allowed, giving a
+ * valid channel number range of [0..channel_max]. Therefore the
+ * maximum number of simultaineously active channels will be
* channel_max plus 1.
* You can call this function more than once to raise and lower
- * the limit your application imposes on max channels for this
+ * the limit your application imposes on max channels for this
* transport. However, smaller limits may be imposed by this
* library, or by the remote peer.
* After the OPEN frame has been sent to the remote peer,
@@ -377,82 +373,84 @@ PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport);
* @param[in] transport a transport object
* @param[in] channel_max the maximum allowed channel
* @return PN_OK, or PN_STATE_ERR if it is too late to change channel_max
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN int pn_transport_set_channel_max(pn_transport_t *transport, uint16_t channel_max);
/**
- * @deprecated
- *
* Get the maximum allowed channel of a transport's remote peer.
*
* @param[in] transport a transport object
* @return the maximum allowed channel of the transport's remote peer
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN uint16_t pn_transport_remote_channel_max(pn_transport_t *transport);
/**
- * @deprecated
- *
* Get the maximum frame size of a transport.
*
* @param[in] transport a transport object
* @return the maximum frame size of the transport object
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
/**
- * @deprecated
- *
* Set the maximum frame size of a transport.
*
* @param[in] transport a transport object
* @param[in] size the maximum frame size for the transport object
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size);
/**
- * @deprecated
- *
* Get the maximum frame size of a transport's remote peer.
*
* @param[in] transport a transport object
* @return the maximum frame size of the transport's remote peer
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
/**
- * @deprecated
- *
* Get the idle timeout for a transport.
*
* A zero idle timeout means heartbeats are disabled.
*
* @param[in] transport a transport object
* @return the transport's idle timeout
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
/**
- * @deprecated
- *
* Set the idle timeout for a transport.
*
* A zero idle timeout means heartbeats are disabled.
*
* @param[in] transport a transport object
* @param[in] timeout the idle timeout for the transport object
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout);
/**
- * @deprecated
- *
* Get the idle timeout for a transport's remote peer.
*
* A zero idle timeout means heartbeats are disabled.
*
* @param[in] transport a transport object
* @return the idle timeout for the transport's remote peer
+ *
+ * @internal XXX Deprecate!
*/
PN_EXTERN pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/types.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/types.h b/proton-c/include/proton/types.h
index 2ceadd3..c28beac 100644
--- a/proton-c/include/proton/types.h
+++ b/proton-c/include/proton/types.h
@@ -29,6 +29,8 @@
/**
* @file
*
+ * @copybrief types
+ *
* @defgroup core Core
* @brief Core protocol entities and event handling
*
@@ -77,34 +79,38 @@
* @ingroup core
*
* @defgroup error Error
- * @brief A Proton error
+ * @brief A Proton API error
* @ingroup core
*
* @defgroup types Types
- * @brief Protocol and API data types
+ * @brief AMQP and API data types
*
- * @defgroup amqp_types AMQP types
+ * @defgroup amqp_types AMQP data types
* @brief AMQP data types
* @ingroup types
*
- * @defgroup api_types API types
+ * @defgroup api_types API data types
* @brief Additional data types used in the API
* @ingroup types
*
* @defgroup codec Codec
* @brief AMQP data encoding and decoding
*
+ * @defgroup data Data
+ * @brief A data structure for AMQP data
+ * @ingroup codec
+ *
* @defgroup io IO
* @brief IO integration interfaces
*
- * @defgroup connection_driver Connection Driver
- * @brief **Experimental** - Low-level IO integration
- * @ingroup io
- *
* @defgroup proactor Proactor
* @brief **Experimental** - Multithreaded IO
* @ingroup io
*
+ * @defgroup connection_driver Connection driver
+ * @brief **Experimental** - Low-level IO integration
+ * @ingroup io
+ *
* @defgroup messenger Messenger
* @deprecated
* @brief **Deprecated** - The Messenger API
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/140cf997/proton-c/include/proton/url.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/url.h b/proton-c/include/proton/url.h
index 49faa30..e898aba 100644
--- a/proton-c/include/proton/url.h
+++ b/proton-c/include/proton/url.h
@@ -29,8 +29,7 @@ extern "C" {
/**
* @file
*
- * **Deprecated**
- *
+ * @copybrief url
* @deprecated
*
* @addtogroup url
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[15/30] qpid-proton git commit: PROTON-623: Add missing error check
to pn_string_inspect
Posted by ac...@apache.org.
PROTON-623: Add missing error check to pn_string_inspect
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/30d01e98
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/30d01e98
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/30d01e98
Branch: refs/heads/go1
Commit: 30d01e98d51cb196d9b997ff3acc495183f3008d
Parents: f89d24d
Author: Bozo Dragojevic <bo...@digiverse.si>
Authored: Thu Dec 8 04:14:22 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Thu Dec 8 04:16:22 2016 -0500
----------------------------------------------------------------------
proton-c/src/core/object/string.c | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/30d01e98/proton-c/src/core/object/string.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/object/string.c b/proton-c/src/core/object/string.c
index 13d0739..71db6c4 100644
--- a/proton-c/src/core/object/string.c
+++ b/proton-c/src/core/object/string.c
@@ -80,6 +80,7 @@ static int pn_string_inspect(void *obj, pn_string_t *dst)
}
int err = pn_string_addf(dst, "\"");
+ if (err) return err;
for (int i = 0; i < str->size; i++) {
uint8_t c = str->bytes[i];
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[24/30] qpid-proton git commit: NO-JIRA: Fix maven search to find
windows command file on windows
Posted by ac...@apache.org.
NO-JIRA: Fix maven search to find windows command file on windows
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/ce8db5a8
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/ce8db5a8
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/ce8db5a8
Branch: refs/heads/go1
Commit: ce8db5a80712404200f7800057723ee47ce506e1
Parents: 16da86e
Author: Andrew Stitcher <as...@apache.org>
Authored: Wed Oct 19 13:41:22 2016 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Thu Dec 8 15:40:25 2016 -0500
----------------------------------------------------------------------
proton-j/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/ce8db5a8/proton-j/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-j/CMakeLists.txt b/proton-j/CMakeLists.txt
index 788c08f..81cb5a1 100644
--- a/proton-j/CMakeLists.txt
+++ b/proton-j/CMakeLists.txt
@@ -28,7 +28,7 @@ mark_as_advanced (JAVA_INSTALL_DIR)
install_jar(proton-j ${JAVA_INSTALL_DIR})
# add relevant CTest support
-find_program (MAVEN_EXE mvn DOC "Location of the maven program")
+find_program (MAVEN_EXE NAMES mvn.cmd mvn DOC "Location of the maven program")
mark_as_advanced (MAVEN_EXE)
if (CMAKE_BUILD_TYPE MATCHES "Coverage")
message (STATUS "Building for coverage analysis: testing disabled for Proton-J")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[04/30] qpid-proton git commit: PROTON-1366: Raise exception when
wrapped object creation fails
Posted by ac...@apache.org.
PROTON-1366: Raise exception when wrapped object creation fails
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/d39730bd
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/d39730bd
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/d39730bd
Branch: refs/heads/go1
Commit: d39730bd4494e1a727ffbfa2c2169c384ae83bb5
Parents: 9adbca2
Author: Chuck Rolke <cr...@redhat.com>
Authored: Thu Dec 1 15:23:09 2016 -0500
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Thu Dec 1 15:23:09 2016 -0500
----------------------------------------------------------------------
proton-c/bindings/python/proton/wrapper.py | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d39730bd/proton-c/bindings/python/proton/wrapper.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/wrapper.py b/proton-c/bindings/python/proton/wrapper.py
index 4bfe2b3..eff917b 100644
--- a/proton-c/bindings/python/proton/wrapper.py
+++ b/proton-c/bindings/python/proton/wrapper.py
@@ -38,6 +38,9 @@ class Wrapper(object):
if callable(impl_or_constructor):
# we are constructing a new object
impl = impl_or_constructor()
+ if impl is None:
+ from proton import ProtonException
+ raise ProtonException("Wrapper failed to create wrapped object. Check for file descriptor or memory exhaustion.")
init = True
else:
# we are wrapping an existing object
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[07/30] qpid-proton git commit: PROTON-1367: Clean up and reorganize
the C API docs
Posted by ac...@apache.org.
PROTON-1367: Clean up and reorganize the C API docs
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/7bae4756
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/7bae4756
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/7bae4756
Branch: refs/heads/go1
Commit: 7bae4756390ba7b4e66ff32e2905cf6c500433ee
Parents: 6b18e63
Author: Justin Ross <jr...@apache.org>
Authored: Fri Dec 2 07:59:29 2016 -0800
Committer: Justin Ross <jr...@apache.org>
Committed: Fri Dec 2 08:00:02 2016 -0800
----------------------------------------------------------------------
examples/c/proactor/README.dox | 35 +-
proton-c/docs/api/index.md | 62 +-
proton-c/docs/api/user.doxygen.in | 1693 +---------------------
proton-c/include/proton/cid.h | 9 +
proton-c/include/proton/codec.h | 28 +-
proton-c/include/proton/condition.h | 19 +-
proton-c/include/proton/connection.h | 27 +-
proton-c/include/proton/connection_driver.h | 65 +-
proton-c/include/proton/delivery.h | 12 +-
proton-c/include/proton/disposition.h | 8 +-
proton-c/include/proton/engine.h | 12 +-
proton-c/include/proton/error.h | 87 +-
proton-c/include/proton/event.h | 29 +-
proton-c/include/proton/handlers.h | 9 +-
proton-c/include/proton/import_export.h | 7 +
proton-c/include/proton/link.h | 26 +-
proton-c/include/proton/listener.h | 30 +-
proton-c/include/proton/log.h | 21 +-
proton-c/include/proton/message.h | 6 +-
proton-c/include/proton/messenger.h | 46 +-
proton-c/include/proton/object.h | 8 +
proton-c/include/proton/parser.h | 8 +
proton-c/include/proton/proactor.h | 121 +-
proton-c/include/proton/reactor.h | 10 +-
proton-c/include/proton/sasl.h | 59 +-
proton-c/include/proton/selectable.h | 9 +-
proton-c/include/proton/session.h | 26 +-
proton-c/include/proton/ssl.h | 144 +-
proton-c/include/proton/terminus.h | 8 +-
proton-c/include/proton/transport.h | 88 +-
proton-c/include/proton/type_compat.h | 8 +
proton-c/include/proton/types.h | 201 ++-
proton-c/include/proton/url.h | 67 +-
33 files changed, 886 insertions(+), 2102 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/examples/c/proactor/README.dox
----------------------------------------------------------------------
diff --git a/examples/c/proactor/README.dox b/examples/c/proactor/README.dox
index 89f7aaa..9817267 100644
--- a/examples/c/proactor/README.dox
+++ b/examples/c/proactor/README.dox
@@ -1,20 +1,15 @@
-
-/** @example send.c
-
-Send a fixed number of messages to the "example" node.
-
-*/
-
-/** @example simple_recv.cpp
-
-Subscribes to the 'example' node and prints the message bodies received.
-
-*/
-
-/** @example broker.c
-
-A simple multi-threaded broker that works with the send and receive examples.
-
-__Requires C++11__
-
-*/
+/// @example send.c
+///
+/// Send a fixed number of messages to the "example" node.
+///
+/// @example receive.c
+///
+/// Subscribes to the 'example' node and prints the message bodies
+/// received.
+///
+/// @example broker.c
+///
+/// A simple multi-threaded broker that works with the send and
+/// receive examples.
+///
+/// __Requires C++11__
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/docs/api/index.md
----------------------------------------------------------------------
diff --git a/proton-c/docs/api/index.md b/proton-c/docs/api/index.md
index fada41c..2936278 100644
--- a/proton-c/docs/api/index.md
+++ b/proton-c/docs/api/index.md
@@ -1,21 +1,41 @@
-Proton Documentation {#index}
-====================
-
-The @ref engine is a collection of types and functions representing AMQP
-concepts. Together they form a "protocol engine" API to create AMQP connections
-and links, handle AMQP @ref event "events" and send and receive messages.
-
-The @ref proactor is a portable, proactive, asynchronous API for single or
-multi-threaded applications. It associates the @ref engine API with network
-connections (@ref transport "transports") and allows one or more threads to
-handle @ref event "events".
-
-**Low-level integration**: The @ref connection\_driver provides a low-level SPI
-to feed byte-streams from any source to the @ref engine. You can use it to
-integrate proton directly with a foreign event loop or IO library, or to
-implement your own @ref proactor to transparently replace proton's IO layer.
-
-**Old APIs**: The @ref messenger and @ref reactor APIs are
-older APIs that were limited to single-threaded applications.
-@ref reactor applications can be converted to use the @ref proactor since
-most of the code is written to the common @ref engine API.
+# Introduction {#index}
+
+## Core
+
+@ref core is a collection of types and functions representing AMQP
+concepts. Together they form a "protocol engine" API to create AMQP
+connections and links, handle @ref event "events", and send and
+receive @ref message "messages".
+
+## Types
+
+@ref types contains Protocol and API data types.
+
+## Codec
+
+@ref codec has functions for AMQP data encoding and decoding.
+
+## IO
+
+@ref io holds interfaces for IO integration.
+
+The @ref proactor is a portable, proactive, asynchronous API for
+single- or multithreaded applications. It associates AMQP @ref
+connection "connections" with network connections (@ref transport
+"transports") and allows one or more threads to handle @ref event
+"events".
+
+**Low-level integration** - The @ref connection\_driver provides a
+low-level SPI to feed byte streams from any source to the protocol
+engine. You can use it to integrate Proton directly with a foreign
+event loop or IO library, or to implement your own @ref proactor to
+transparently replace Proton's IO layer.
+
+<!--
+
+**Old APIs** - The @ref messenger and @ref reactor APIs are older APIs
+that were limited to single-threaded applications. @ref reactor
+applications can be converted to use the @ref proactor since most of
+the code is written to the common @ref engine API.
+
+-->
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/docs/api/user.doxygen.in
----------------------------------------------------------------------
diff --git a/proton-c/docs/api/user.doxygen.in b/proton-c/docs/api/user.doxygen.in
index 2ea0e48..2d4d815 100644
--- a/proton-c/docs/api/user.doxygen.in
+++ b/proton-c/docs/api/user.doxygen.in
@@ -1,4 +1,4 @@
-#
+##
## 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
@@ -17,1661 +17,64 @@
## under the License.
##
-# Doxyfile 1.7.5
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
-
-DOXYFILE_ENCODING = UTF-8
-
-# The PROJECT_NAME tag is a single word (or sequence of words) that should
-# identify the project. Note that if you do not use Doxywizard you need
-# to put quotes around the project name if it contains spaces.
-
-PROJECT_NAME = proton
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
-
-PROJECT_NUMBER = 0
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer
-# a quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF =
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is
-# included in the documentation. The maximum height of the logo should not
-# exceed 55 pixels and the maximum width should not exceed 200 pixels.
-# Doxygen will copy the logo to the output directory.
-
-PROJECT_LOGO =
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY = .
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
-# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
-# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
-# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
-# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
-
-OUTPUT_LANGUAGE = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF =
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
-# description.
-
-ALWAYS_DETAILED_SEC = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
-
-STRIP_FROM_PATH =
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH =
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful if your file system
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
-
-JAVADOC_AUTOBRIEF = YES
-
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
-
-QT_AUTOBRIEF = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
-
-INHERIT_DOCS = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE = 8
-
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES =
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
-# sources only. Doxygen will then generate output that is more tailored for
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
-
-OPTIMIZE_FOR_FORTRAN = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
-
-OPTIMIZE_OUTPUT_VHDL = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given extension.
-# Doxygen has a built-in mapping, but you can override or extend it using this
-# tag. The format is ext=language, where ext is a file extension, and language
-# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
-# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
-# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
-
-EXTENSION_MAPPING =
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also makes the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-
-CPP_CLI_SUPPORT = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
-
-SIP_SUPPORT = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
-
-IDL_PROPERTY_SUPPORT = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
-
-SUBGROUPING = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and
-# unions are shown inside the group in which they are included (e.g. using
-# @ingroup) instead of on a separate page (for HTML and Man pages) or
-# section (for LaTeX and RTF).
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
-# unions with only public data fields will be shown inline in the documentation
-# of the scope in which they are defined (i.e. file, namespace, or group
-# documentation), provided this scope is documented. If set to NO (the default),
-# structs, classes, and unions are shown on a separate page (for HTML and Man
-# pages) or section (for LaTeX and RTF).
-
-INLINE_SIMPLE_STRUCTS = NO
-
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-
-TYPEDEF_HIDES_STRUCT = NO
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
-# will be included in the documentation.
-
-EXTRACT_PRIVATE = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
-
-EXTRACT_STATIC = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES = YES
-
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespaces are hidden.
-
-EXTRACT_ANON_NSPACES = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS = NO
-
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
-
-SHOW_INCLUDE_FILES = YES
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
-# will list include files with double quotes in the documentation
-# rather than with sharp brackets.
-
-FORCE_LOCAL_INCLUDES = NO
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
-
-INLINE_INFO = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
-
-SORT_MEMBER_DOCS = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
-
-SORT_BRIEF_DOCS = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
-# will sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the default)
-# the constructors will appear in the respective orders defined by
-# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
-# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
-# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
-
-SORT_GROUP_NAMES = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to
-# do proper type resolution of all parameters of a function it will reject a
-# match between the prototype and the implementation of a member function even
-# if there is only one candidate or it is obvious which candidate to choose
-# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
-# will still accept a match between prototype and implementation in such cases.
-
-STRICT_PROTO_MATCHING = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
-
-GENERATE_TODOLIST = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
-
-GENERATE_TESTLIST = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
-
-GENERATE_BUGLIST = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS =
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or macro consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and macros in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
-
-SHOW_FILES = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page.
-# This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
-
-SHOW_NAMESPACES = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER =
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. The create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option.
-# You can optionally specify a file name after the option, if omitted
-# DoxygenLayout.xml will be used as the name of the layout file.
-
-LAYOUT_FILE =
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files
-# containing the references data. This must be a list of .bib files. The
-# .bib extension is automatically appended if omitted. Using this command
-# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
-# of the bibliography can be controlled using LATEX_BIB_STYLE.
-
-CITE_BIB_FILES =
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
+# Project options
+
+PROJECT_NAME = "Qpid Proton C"
+PROJECT_NUMBER = @PN_VERSION_MAJOR@.@PN_VERSION_MINOR@.@PN_VERSION_POINT@
+OUTPUT_DIRECTORY = .
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = YES
+JAVADOC_AUTOBRIEF = YES
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS = YES
+BUILTIN_STL_SUPPORT = YES
+INLINE_SIMPLE_STRUCTS = YES
+HIDE_UNDOC_CLASSES = YES
+HIDE_COMPOUND_REFERENCE = YES
+HIDE_SCOPE_NAMES = YES
+MAX_INITIALIZER_LINES = 0
+ALPHABETICAL_INDEX = NO
+
+# Redefine protected as private and strip out the PN_EXTERN and
+# PNX_EXTERN macros
+
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+PREDEFINED = PN_EXTERN= PNX_EXTERN=
+#EXCLUDE_SYMBOLS =
+
+# Configuration options related to warning and progress messages
QUIET = YES
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
-
WARNINGS = YES
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR = YES
-
-# The WARN_NO_PARAMDOC option can be enabled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
-
-WARN_NO_PARAMDOC = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
-
-WARN_LOGFILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
-
-INPUT = @CMAKE_SOURCE_DIR@/proton-c/include @CMAKE_SOURCE_DIR@/proton-c/docs/api
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
-
-INPUT_ENCODING = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
-# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
-# *.f90 *.f *.for *.vhd *.vhdl
-
-FILE_PATTERNS = *.h *.md *.hpp
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
+# Configuration options related to the input files
+INPUT = @CMAKE_SOURCE_DIR@/proton-c/include @CMAKE_SOURCE_DIR@/proton-c/docs @CMAKE_SOURCE_DIR@/examples/c
+FILE_PATTERNS = *.h *.md *.dox
+# Don't parse example sources, only *. md and *.dox
+EXCLUDE_PATTERNS = @CMAKE_SOURCE_DIR@/examples/*.c @CMAKE_SOURCE_DIR@/examples/*.h
+FULL_PATH_NAMES = YES
RECURSIVE = YES
+STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@/proton-c/include
+EXAMPLE_PATH = @CMAKE_SOURCE_DIR@/examples/c
+EXAMPLE_RECURSIVE = YES
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-# Note that relative paths are relative to directory from which doxygen is run.
-
-EXCLUDE =
+# View and list options
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
+GENERATE_TREEVIEW = YES
+GENERATE_TODOLIST = NO
+GENERATE_TESTLIST = NO
+GENERATE_BUGLIST = NO
+GENERATE_DEPRECATEDLIST = YES
-EXCLUDE_SYMLINKS = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS =
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-
-EXCLUDE_SYMBOLS =
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
-
-EXAMPLE_PATH =
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
-
-EXAMPLE_PATTERNS =
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
-
-IMAGE_PATH =
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output.
-# If FILTER_PATTERNS is specified, this tag will be
-# ignored.
-
-INPUT_FILTER =
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis.
-# Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match.
-# The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty or if
-# non of the patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS =
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
-# and it is also possible to disable source filtering for a specific pattern
-# using *.ext= (so without naming a filter). This option only has effect when
-# FILTER_SOURCE_FILES is enabled.
-
-FILTER_SOURCE_PATTERNS =
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS = NO
-
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
-
-REFERENCES_RELATION = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.
-# Otherwise they will link to the documentation.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
-
-USE_HTAGS = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX = 5
-
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX =
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
+# Configuration options related to the output format
GENERATE_HTML = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
-
HTML_OUTPUT = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
-
HTML_FILE_EXTENSION = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard header. Note that when using a custom header you are responsible
-# for the proper inclusion of any scripts and style sheets that doxygen
-# needs, which is dependent on the configuration options used.
-# It is adviced to generate a default header using "doxygen -w html
-# header.html footer.html stylesheet.css YourConfigFile" and then modify
-# that header. Note that the header is subject to change so you typically
-# have to redo this when upgrading to a newer version of doxygen or when
-# changing the value of configuration settings such as GENERATE_TREEVIEW!
-
-HTML_HEADER =
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
-
-HTML_FOOTER =
-
-# If the HTML_TIMESTAMP tag is set to YES then the generated HTML documentation will contain the timesstamp.
-
-HTML_TIMESTAMP = NO
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET =
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that
-# the files will be copied as-is; there are no commands or markers available.
-
-HTML_EXTRA_FILES =
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
-# Doxygen will adjust the colors in the stylesheet and background images
-# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
-# For instance the value 0 represents red, 60 is yellow, 120 is green,
-# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
-# The allowed range is 0 to 359.
-
-HTML_COLORSTYLE_HUE = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
-# the colors in the HTML output. For a value of 0 the output will use
-# grayscales only. A value of 255 will produce the most vivid colors.
-
-HTML_COLORSTYLE_SAT = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
-# the luminance component of the colors in the HTML output. Values below
-# 100 gradually make the output lighter, whereas values above 100 make
-# the output darker. The value divided by 100 is the actual gamma applied,
-# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
-# and 100 does not change the gamma.
-
-HTML_COLORSTYLE_GAMMA = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting
-# this to NO can help when comparing the output of multiple runs.
-
-HTML_TIMESTAMP = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
-
-HTML_DYNAMIC_SECTIONS = NO
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
-# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-
-GENERATE_DOCSET = NO
-
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
-
-DOCSET_FEEDNAME = "Doxygen generated docs"
-
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
-
-DOCSET_BUNDLE_ID = org.doxygen.Project
-
-# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-
-DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-
-# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
-
-DOCSET_PUBLISHER_NAME = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
-
-CHM_FILE =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
-
-CHM_INDEX_ENCODING =
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
-# that can be used as input for Qt's qhelpgenerator to generate a
-# Qt Compressed Help (.qch) of the generated HTML documentation.
-
-GENERATE_QHP = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
-# be used to specify the file name of the resulting .qch file.
-# The path specified is relative to the HTML output folder.
-
-QCH_FILE =
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
-
-QHP_NAMESPACE = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
-# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
-
-QHP_VIRTUAL_FOLDER = doc
-
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
-# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
-
-QHP_CUST_FILTER_NAME =
-
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see
-# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
-# Qt Help Project / Custom Filters</a>.
-
-QHP_CUST_FILTER_ATTRS =
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's
-# filter section matches.
-# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
-# Qt Help Project / Filter Attributes</a>.
-
-QHP_SECT_FILTER_ATTRS =
-
-# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
-# be used to specify the location of Qt's qhelpgenerator.
-# If non-empty doxygen will try to run qhelpgenerator on the generated
-# .qhp file.
-
-QHG_LOCATION =
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
-# will be generated, which together with the HTML files, form an Eclipse help
-# plugin. To install this plugin and make it available under the help contents
-# menu in Eclipse, the contents of the directory containing the HTML and XML
-# files needs to be copied into the plugins directory of eclipse. The name of
-# the directory within the plugins directory should be the same as
-# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
-# the help appears.
-
-GENERATE_ECLIPSEHELP = NO
-
-# A unique identifier for the eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have
-# this name.
-
-ECLIPSE_DOC_ID = org.doxygen.Project
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
-
-DISABLE_INDEX = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
-# (range [0,1..20]) that doxygen will group on one line in the generated HTML
-# documentation. Note that a value of 0 will completely suppress the enum
-# values from appearing in the overview section.
-
-ENUM_VALUES_PER_LINE = 4
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to YES, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
-# Windows users are probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
-
-TREEVIEW_WIDTH = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
-# links to external symbols imported via tag files in a separate window.
-
-EXT_LINKS_IN_WINDOW = NO
-
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
-
-FORMULA_FONTSIZE = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are
-# not supported properly for IE 6.0, but are supported on all modern browsers.
-# Note that when changing this option you need to delete any form_*.png files
-# in the HTML output before the changes have effect.
-
-FORMULA_TRANSPARENT = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
-# rendering instead of using prerendered bitmaps. Use this if you do not
-# have LaTeX installed or if you want to formulas look prettier in the HTML
-# output. When enabled you also need to install MathJax separately and
-# configure the path to it using the MATHJAX_RELPATH option.
-
-USE_MATHJAX = NO
-
-# When MathJax is enabled you need to specify the location relative to the
-# HTML output directory using the MATHJAX_RELPATH option. The destination
-# directory should contain the MathJax.js script. For instance, if the mathjax
-# directory is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the
-# mathjax.org site, so you can quickly see the result without installing
-# MathJax, but it is strongly recommended to install a local copy of MathJax
-# before deployment.
-
-MATHJAX_RELPATH = http://www.mathjax.org/mathjax
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
-# names that should be enabled during MathJax rendering.
-
-MATHJAX_EXTENSIONS =
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box
-# for the HTML output. The underlying search engine uses javascript
-# and DHTML and should work on any modern browser. Note that when using
-# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
-# (GENERATE_DOCSET) there is already a search function so this one should
-# typically be disabled. For large projects the javascript based search engine
-# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
-
-SEARCHENGINE = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a PHP enabled web server instead of at the web client
-# using Javascript. Doxygen will generate the search PHP script and index
-# file to put on the web server. The advantage of the server
-# based approach is that it scales better to large projects and allows
-# full text search. The disadvantages are that it is more difficult to setup
-# and does not have live searching capabilities.
-
-SERVER_BASED_SEARCH = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
-
GENERATE_LATEX = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
-# Note that when enabling USE_PDFLATEX this option is only used for
-# generating bitmaps for formulas in the HTML output, but not in the
-# Makefile that is written to the output directory.
-
-LATEX_CMD_NAME = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
-
-MAKEINDEX_CMD_NAME = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_LATEX = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, letter, legal and
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE = a4
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES =
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER =
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for
-# the generated latex document. The footer should contain everything after
-# the last chapter. If it is left blank doxygen will generate a
-# standard footer. Notice: only use this tag if you know what you are doing!
-
-LATEX_FOOTER =
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS = YES
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
-# higher quality PDF documentation.
-
-USE_PDFLATEX = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
-
-LATEX_HIDE_INDICES = NO
-
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
-
-LATEX_BIB_STYLE = plain
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
-
-GENERATE_RTF = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
-
-COMPACT_RTF = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE =
-
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE =
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
-
-GENERATE_MAN = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT = man
-
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS = NO
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
-
-ENABLE_PREPROCESSING = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# pointed to by INCLUDE_PATH will be searched when a #include is found.
-
-SEARCH_INCLUDES = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
-
-INCLUDE_PATH =
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
-
-INCLUDE_FILE_PATTERNS =
-
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
-
-PREDEFINED =
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition that
-# overrules the definition found in the source code.
-
-EXPAND_AS_DEFINED =
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all references to function-like macros
-# that are alone on a line, have an all uppercase name, and do not end with a
-# semicolon, because these will confuse the parser if not removed.
-
-SKIP_FUNCTION_MACROS = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-#
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-#
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES =
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE =
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
-
-ALLEXTERNALS = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
-
-EXTERNAL_GROUPS = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option also works with HAVE_DOT disabled, but it is recommended to
-# install and use dot, since it yields more powerful graphs.
-
-CLASS_DIAGRAMS = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH =
-
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
-# allowed to run in parallel. When set to 0 (the default) doxygen will
-# base this on the number of processors available in the system. You can set it
-# explicitly to a value larger than 0 to get control over the balance
-# between CPU load and processing speed.
-
-DOT_NUM_THREADS = 0
-
-# By default doxygen will use the Helvetica font for all dot files that
-# doxygen generates. When you want a differently looking font you can specify
-# the font name using DOT_FONTNAME. You need to make sure dot is able to find
-# the font, which can be done by putting it in a standard location or by setting
-# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
-# directory containing the font.
-
-DOT_FONTNAME = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
-# The default size is 10pt.
-
-DOT_FONTSIZE = 10
-
-# By default doxygen will tell dot to use the Helvetica font.
-# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
-# set the path where dot can find it.
-
-DOT_FONTPATH =
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-
-UML_LOOK = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
-
-INCLUDE_GRAPH = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH = YES
-
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
-
-CALL_GRAPH = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
-
-CALLER_GRAPH = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will generate a graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are svg, png, jpg, or gif.
-# If left blank png will be used. If you choose svg you need to set
-# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible in IE 9+ (other browsers do not have this requirement).
-
-DOT_IMAGE_FORMAT = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-# Note that this requires a modern browser other than Internet Explorer.
-# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
-# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
-# visible. Older versions of IE do not have SVG support.
-
-INTERACTIVE_SVG = NO
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH =
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
-
-DOTFILE_DIRS =
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the
-# \mscfile command).
-
-MSCFILE_DIRS =
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-
-DOT_GRAPH_MAX_NODES = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-
-MAX_DOT_GRAPH_DEPTH = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not
-# seem to support this out of the box. Warning: Depending on the platform used,
-# enabling this option may lead to badly anti-aliased labels on the edges of
-# a graph (i.e. they become hard to read).
-
-DOT_TRANSPARENT = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
-
-DOT_CLEANUP = YES
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/cid.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/cid.h b/proton-c/include/proton/cid.h
index cd68de4..2d68896 100644
--- a/proton-c/include/proton/cid.h
+++ b/proton-c/include/proton/cid.h
@@ -1,5 +1,6 @@
#ifndef PROTON_CID_H
#define PROTON_CID_H 1
+
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -21,6 +22,10 @@
*
*/
+/**
+ * @cond INTERNAL
+ */
+
typedef enum {
CID_pn_object = 1,
CID_pn_void,
@@ -62,4 +67,8 @@ typedef enum {
CID_pn_proactor
} pn_cid_t;
+/**
+ * @endcond
+ */
+
#endif /* cid.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/codec.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/codec.h b/proton-c/include/proton/codec.h
index d8995fe..e812098 100644
--- a/proton-c/include/proton/codec.h
+++ b/proton-c/include/proton/codec.h
@@ -35,15 +35,12 @@ extern "C" {
/**
* @file
- * AMQP data encoding and decoding
- *
- * @defgroup data Data
- * AMQP data encoding and decoding
- * @{
*/
/**
* Identifies an AMQP type.
+ *
+ * @ingroup amqp_types
*/
typedef enum {
@@ -186,12 +183,18 @@ typedef enum {
/**
* Return a string name for an AMQP type.
*
+ * @ingroup amqp_types
* @param type an AMQP type
* @return the string name of the given type
*/
PN_EXTERN const char *pn_type_name(pn_type_t type);
/**
+ * @addtogroup codec
+ * @{
+ */
+
+/**
* A descriminated union that holds any scalar AMQP value. The type
* field indicates the AMQP type of the value, and the union may be
* used to access the value for a given type.
@@ -395,10 +398,16 @@ PN_EXTERN int pn_data_errno(pn_data_t *data);
*/
PN_EXTERN pn_error_t *pn_data_error(pn_data_t *data);
+/**
+ * @cond INTERNAL
+ */
PN_EXTERN int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap);
PN_EXTERN int pn_data_fill(pn_data_t *data, const char *fmt, ...);
PN_EXTERN int pn_data_vscan(pn_data_t *data, const char *fmt, va_list ap);
PN_EXTERN int pn_data_scan(pn_data_t *data, const char *fmt, ...);
+/**
+ * @endcond
+ */
/**
* Clears a pn_data_t object.
@@ -471,7 +480,13 @@ PN_EXTERN bool pn_data_enter(pn_data_t *data);
*/
PN_EXTERN bool pn_data_exit(pn_data_t *data);
+/**
+ * @cond INTERNAL
+ */
PN_EXTERN bool pn_data_lookup(pn_data_t *data, const char *name);
+/**
+ * @endcond
+ */
/**
* Access the type of the current node. Returns PN_INVALID if there is no
@@ -1265,7 +1280,8 @@ PN_EXTERN bool pn_data_restore(pn_data_t *data, pn_handle_t point);
*/
PN_EXTERN void pn_data_dump(pn_data_t *data);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/condition.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/condition.h b/proton-c/include/proton/condition.h
index 0f0774b..ee31b63 100644
--- a/proton-c/include/proton/condition.h
+++ b/proton-c/include/proton/condition.h
@@ -33,11 +33,8 @@ extern "C" {
/**
* @file
- * Error condition
*
- * @defgroup condition Condition
- * Error condition
- * @ingroup engine
+ * @addtogroup condition
* @{
*/
@@ -166,11 +163,23 @@ PN_EXTERN const char *pn_condition_redirect_host(pn_condition_t *condition);
*/
PN_EXTERN int pn_condition_redirect_port(pn_condition_t *condition);
+/**
+ * Copy the src condition to the dst condition.
+ */
PN_EXTERN int pn_condition_copy(pn_condition_t *dest, pn_condition_t *src);
+
+/**
+ * Create a condition object.
+ */
PN_EXTERN pn_condition_t *pn_condition(void);
+
+/**
+ * Free a condition object.
+ */
PN_EXTERN void pn_condition_free(pn_condition_t *);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/connection.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/connection.h b/proton-c/include/proton/connection.h
index 19e882f..5dd04e4 100644
--- a/proton-c/include/proton/connection.h
+++ b/proton-c/include/proton/connection.h
@@ -38,11 +38,7 @@ extern "C" {
/**
* @file
*
- * AMQP protocol connection
- *
- * @defgroup connection Connection
- * AMQP protocol connection
- * @ingroup engine
+ * @addtogroup connection
* @{
*/
@@ -50,22 +46,28 @@ extern "C" {
* The local @link pn_state_t endpoint state @endlink is uninitialized.
*/
#define PN_LOCAL_UNINIT (1)
+
/**
* The local @link pn_state_t endpoint state @endlink is active.
*/
+
#define PN_LOCAL_ACTIVE (2)
+
/**
* The local @link pn_state_t endpoint state @endlink is closed.
*/
#define PN_LOCAL_CLOSED (4)
+
/**
* The remote @link pn_state_t endpoint state @endlink is uninitialized.
*/
#define PN_REMOTE_UNINIT (8)
+
/**
* The remote @link pn_state_t endpoint state @endlink is active.
*/
#define PN_REMOTE_ACTIVE (16)
+
/**
* The remote @link pn_state_t endpoint state @endlink is closed.
*/
@@ -84,6 +86,7 @@ extern "C" {
#define PN_REMOTE_MASK (PN_REMOTE_UNINIT | PN_REMOTE_ACTIVE | PN_REMOTE_CLOSED)
PN_EXTERN pn_connection_t *pn_connection(void);
+
/**
* Factory to construct a new Connection.
*
@@ -155,8 +158,9 @@ PN_EXTERN void pn_connection_collect(pn_connection_t *connection, pn_collector_t
*/
PN_EXTERN pn_collector_t* pn_connection_collector(pn_connection_t *connection);
-
/**
+ * @deprecated
+ *
* Get the application context that is associated with a connection
* object.
*
@@ -169,6 +173,8 @@ PN_EXTERN pn_collector_t* pn_connection_collector(pn_connection_t *connection);
PN_EXTERN void *pn_connection_get_context(pn_connection_t *connection);
/**
+ * @deprecated
+ *
* Set a new application context for a connection object.
*
* The application context for a connection object may be retrieved
@@ -201,7 +207,7 @@ PN_EXTERN pn_state_t pn_connection_state(pn_connection_t *connection);
* Once this operation has completed, the PN_LOCAL_ACTIVE state flag
* will be set.
*
- * @param[in] connection a connection object
+ * @param[in] connection the connection object
*/
PN_EXTERN void pn_connection_open(pn_connection_t *connection);
@@ -213,7 +219,7 @@ PN_EXTERN void pn_connection_open(pn_connection_t *connection);
* ::pn_connection_open, in this case it is equivalent to calling
* ::pn_connection_open followed by ::pn_connection_close.
*
- * @param[in] connection a connection object
+ * @param[in] connection the connection object
*/
PN_EXTERN void pn_connection_close(pn_connection_t *connection);
@@ -223,7 +229,7 @@ PN_EXTERN void pn_connection_close(pn_connection_t *connection);
* Note that this does *not* remove any contained ::pn_session_t,
* ::pn_link_t, and ::pn_delivery_t objects.
*
- * @param[in] connection a connection object
+ * @param[in] connection the connection object
*/
PN_EXTERN void pn_connection_reset(pn_connection_t *connection);
@@ -484,7 +490,8 @@ PN_EXTERN pn_data_t *pn_connection_remote_properties(pn_connection_t *connection
*/
PN_EXTERN pn_transport_t *pn_connection_transport(pn_connection_t *connection);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[30/30] qpid-proton git commit: NO-JIRA: Minor logging and error
handling fixes.
Posted by ac...@apache.org.
NO-JIRA: Minor logging and error handling fixes.
Merge branch 'master' into go1
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/4afe30d8
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/4afe30d8
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/4afe30d8
Branch: refs/heads/go1
Commit: 4afe30d87cf5237209ccf61cb2889859a0ac48a5
Parents: 0889192 4abf23a
Author: Alan Conway <ac...@redhat.com>
Authored: Tue Jan 3 16:59:03 2017 -0500
Committer: Alan Conway <ac...@redhat.com>
Committed: Tue Jan 3 17:02:03 2017 -0500
----------------------------------------------------------------------
electron/endpoint.go | 4 ++++
proton/wrappers.go | 8 ++++----
2 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4afe30d8/electron/endpoint.go
----------------------------------------------------------------------
diff --cc electron/endpoint.go
index ca93e5b,0000000..a6ce6c8
mode 100644,000000..100644
--- a/electron/endpoint.go
+++ b/electron/endpoint.go
@@@ -1,182 -1,0 +1,186 @@@
+/*
+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.
+*/
+
+package electron
+
+import (
+ "fmt"
+ "io"
+ "qpid.apache.org/proton"
+)
+
+// Closed is an alias for io.EOF. It is returned as an error when an endpoint
+// was closed cleanly.
+var Closed = io.EOF
+
++// EOF is an alias for io.EOF. It is returned as an error when an endpoint
++// was closed cleanly.
++var EOF = io.EOF
++
+// Endpoint is the local end of a communications channel to the remote peer
+// process. The following interface implement Endpoint: Connection, Session,
+// Sender and Receiver.
+//
+// You can create an endpoint with functions on Container, Connection and
+// Session. You can accept incoming endpoints from the remote peer using
+// Connection.Incoming()
+//
+type Endpoint interface {
+ // Close an endpoint and signal an error to the remote end if error != nil.
+ Close(error)
+
+ // String is a human readable identifier, useful for debugging and logging.
+ String() string
+
+ // Error returns nil if the endpoint is open, otherwise returns an error.
+ // Error() == Closed means the endpoint was closed without error.
+ Error() error
+
+ // Connection is the connection associated with this endpoint.
+ Connection() Connection
+
+ // Done returns a channel that will close when the endpoint closes.
+ // After Done() has closed, Error() will return the reason for closing.
+ Done() <-chan struct{}
+
+ // Sync() waits for the remote peer to confirm the endpoint is active or
+ // reject it with an error. You can call it immediately on new endpoints
+ // for more predictable error handling.
+ //
+ // AMQP is an asynchronous protocol. It is legal to create an endpoint and
+ // start using it without waiting for confirmation. This avoids a needless
+ // delay in the non-error case and throughput by "assuming the best".
+ //
+ // However if there *is* an error, these "optimistic" actions will fail. The
+ // endpoint and its children will be closed with an error. The error will only
+ // be detected when you try to use one of these endpoints or call Sync()
+ Sync() error
+
+ // Called in handler goroutine when endpoint is remotely closed.
+ closed(err error) error
+ wakeSync()
+}
+
+// Base implementation for Endpoint
+type endpoint struct {
+ err proton.ErrorHolder
+ str string // String() return value.
+ done chan struct{}
+ active chan struct{}
+}
+
+func (e *endpoint) init(s string) {
+ e.str = s
+ e.done = make(chan struct{})
+ e.active = make(chan struct{})
+}
+
+// Called in proton goroutine on remote open.
+func (e *endpoint) wakeSync() {
+ select { // Close active channel if not already closed.
+ case <-e.active:
+ default:
+ close(e.active)
+ }
+}
+
+// Called in proton goroutine (from handler) on a Closed or Disconnected event.
+//
+// Set err if there is not already an error on the endpoint.
+// Return Error()
+func (e *endpoint) closed(err error) error {
+ select {
+ case <-e.done:
+ // Already closed
+ default:
+ e.err.Set(err)
+ e.err.Set(Closed)
+ e.wakeSync() // Make sure we wake up Sync()
+ close(e.done)
+ }
+ return e.Error()
+}
+
+func (e *endpoint) String() string { return e.str }
+
+func (e *endpoint) Error() error { return e.err.Get() }
+
+func (e *endpoint) Done() <-chan struct{} { return e.done }
+
+func (e *endpoint) Sync() error {
+ <-e.active
+ return e.Error()
+}
+
+// Call in proton goroutine to initiate closing an endpoint locally
+// handler will complete the close when remote end closes.
+func localClose(ep proton.Endpoint, err error) {
+ if ep.State().LocalActive() {
+ proton.CloseError(ep, err)
+ }
+}
+
+// Incoming is the interface for incoming endpoints, see Connection.Incoming()
+//
+// Call Incoming.Accept() to open the endpoint or Incoming.Reject() to close it
+// with optional error
+//
+// Implementing types are *IncomingConnection, *IncomingSession, *IncomingSender
+// and *IncomingReceiver. Each type provides methods to examine the incoming
+// endpoint request and set configuration options for the local endpoint
+// before calling Accept() or Reject()
+type Incoming interface {
+ // Accept and open the endpoint.
+ Accept() Endpoint
+
+ // Reject the endpoint with an error
+ Reject(error)
+
+ // wait for and call the accept function, call in proton goroutine.
+ wait() error
+ pEndpoint() proton.Endpoint
+}
+
+type incoming struct {
+ pep proton.Endpoint
+ acceptCh chan func() error
+}
+
+func makeIncoming(e proton.Endpoint) incoming {
+ return incoming{pep: e, acceptCh: make(chan func() error)}
+}
+
+func (in *incoming) String() string { return fmt.Sprintf("%s: %s", in.pep.Type(), in.pep) }
+func (in *incoming) Reject(err error) { in.acceptCh <- func() error { return err } }
+
+// Call in proton goroutine, wait for and call the accept function.
+func (in *incoming) wait() error { return (<-in.acceptCh)() }
+
+func (in *incoming) pEndpoint() proton.Endpoint { return in.pep }
+
+// Called in app goroutine to send an accept function to proton and return the resulting endpoint.
+func (in *incoming) accept(f func() Endpoint) Endpoint {
+ done := make(chan Endpoint)
+ in.acceptCh <- func() error {
+ ep := f()
+ done <- ep
+ return nil
+ }
+ return <-done
+}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4afe30d8/proton/wrappers.go
----------------------------------------------------------------------
diff --cc proton/wrappers.go
index 4d55e4f,0000000..b6386b8
mode 100644,000000..100644
--- a/proton/wrappers.go
+++ b/proton/wrappers.go
@@@ -1,431 -1,0 +1,431 @@@
+/*
+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 file contains special-case wrapper functions or wrappers that don't follow
+// the pattern of genwrap.go.
+
+package proton
+
+//#include <proton/codec.h>
+//#include <proton/connection.h>
+//#include <proton/delivery.h>
+//#include <proton/event.h>
+//#include <proton/link.h>
+//#include <proton/link.h>
+//#include <proton/object.h>
+//#include <proton/sasl.h>
+//#include <proton/session.h>
+//#include <proton/transport.h>
+//#include <stdlib.h>
+import "C"
+
+import (
+ "fmt"
+ "qpid.apache.org/amqp"
+ "reflect"
+ "time"
+ "unsafe"
+)
+
+// TODO aconway 2015-05-05: Documentation for generated types.
+
+// CHandle holds an unsafe.Pointer to a proton C struct, the C type depends on the
+// Go type implementing this interface. For low level, at-your-own-risk use only.
+type CHandle interface {
+ // CPtr returns the unsafe C pointer, equivalent to a C void*.
+ CPtr() unsafe.Pointer
+}
+
+// Incref increases the refcount of a proton value, which prevents the
+// underlying C struct being freed until you call Decref().
+//
+// It can be useful to "pin" a proton value in memory while it is in use by
+// goroutines other than the event loop goroutine. For example if you Incref() a
+// Link, the underlying object is not freed when the link is closed, so means
+// other goroutines can continue to safely use it as an index in a map or inject
+// it into the event loop goroutine. There will of course be an error if you try
+// to use a link after it is closed, but not a segmentation fault.
+func Incref(c CHandle) {
+ if p := c.CPtr(); p != nil {
+ C.pn_incref(p)
+ }
+}
+
+// Decref decreases the refcount of a proton value, freeing the underlying C
+// struct if this is the last reference. Only call this if you previously
+// called Incref() for this value.
+func Decref(c CHandle) {
+ if p := c.CPtr(); p != nil {
+ C.pn_decref(p)
+ }
+}
+
+// Event is an AMQP protocol event.
+type Event struct {
+ pn *C.pn_event_t
+ eventType EventType
+ connection Connection
+ transport Transport
+ session Session
+ link Link
+ delivery Delivery
+ injecter Injecter
+}
+
+func makeEvent(pn *C.pn_event_t, injecter Injecter) Event {
+ return Event{
+ pn: pn,
+ eventType: EventType(C.pn_event_type(pn)),
+ connection: Connection{C.pn_event_connection(pn)},
+ transport: Transport{C.pn_event_transport(pn)},
+ session: Session{C.pn_event_session(pn)},
+ link: Link{C.pn_event_link(pn)},
+ delivery: Delivery{C.pn_event_delivery(pn)},
+ injecter: injecter,
+ }
+}
+func (e Event) IsNil() bool { return e.eventType == EventType(0) }
+func (e Event) Type() EventType { return e.eventType }
+func (e Event) Connection() Connection { return e.connection }
+func (e Event) Transport() Transport { return e.transport }
+func (e Event) Session() Session { return e.session }
+func (e Event) Link() Link { return e.link }
+func (e Event) Delivery() Delivery { return e.delivery }
+func (e Event) String() string { return e.Type().String() }
+
+// Injecter should not be used in a handler function, but it can be passed to
+// other goroutines (via a channel or to a goroutine started by handler
+// functions) to let them inject functions back into the handlers goroutine.
+func (e Event) Injecter() Injecter { return e.injecter }
+
+// Data holds a pointer to decoded AMQP data.
+// Use amqp.marshal/unmarshal to access it as Go data types.
+//
+type Data struct{ pn *C.pn_data_t }
+
+func NewData(p unsafe.Pointer) Data { return Data{(*C.pn_data_t)(p)} }
+
+func (d Data) Free() { C.pn_data_free(d.pn) }
+func (d Data) Pointer() unsafe.Pointer { return unsafe.Pointer(d.pn) }
+func (d Data) Clear() { C.pn_data_clear(d.pn) }
+func (d Data) Rewind() { C.pn_data_rewind(d.pn) }
+func (d Data) Error() error { return PnError(C.pn_data_error(d.pn)) }
+
+// State holds the state flags for an AMQP endpoint.
+type State byte
+
+const (
+ SLocalUninit State = C.PN_LOCAL_UNINIT
+ SLocalActive = C.PN_LOCAL_ACTIVE
+ SLocalClosed = C.PN_LOCAL_CLOSED
+ SRemoteUninit = C.PN_REMOTE_UNINIT
+ SRemoteActive = C.PN_REMOTE_ACTIVE
+ SRemoteClosed = C.PN_REMOTE_CLOSED
+)
+
+// Has is True if bits & state is non 0.
+func (s State) Has(bits State) bool { return s&bits != 0 }
+
+func (s State) LocalUninit() bool { return s.Has(SLocalUninit) }
+func (s State) LocalActive() bool { return s.Has(SLocalActive) }
+func (s State) LocalClosed() bool { return s.Has(SLocalClosed) }
+func (s State) RemoteUninit() bool { return s.Has(SRemoteUninit) }
+func (s State) RemoteActive() bool { return s.Has(SRemoteActive) }
+func (s State) RemoteClosed() bool { return s.Has(SRemoteClosed) }
+
+// Return a State containig just the local flags
+func (s State) Local() State { return State(s & C.PN_LOCAL_MASK) }
+
+// Return a State containig just the remote flags
+func (s State) Remote() State { return State(s & C.PN_REMOTE_MASK) }
+
+// Endpoint is the common interface for Connection, Link and Session.
+type Endpoint interface {
+ // State is the open/closed state.
+ State() State
+ // Open an endpoint.
+ Open()
+ // Close an endpoint.
+ Close()
+ // Condition holds a local error condition.
+ Condition() Condition
+ // RemoteCondition holds a remote error condition.
+ RemoteCondition() Condition
+ // Human readable name
+ String() string
- // Human readable endpoint type "link", "session" etc.
++ // Human readable endpoint type "sender-link", "session" etc.
+ Type() string
+}
+
+// CloseError sets an error condition (if err != nil) on an endpoint and closes
+// the endpoint if not already closed
+func CloseError(e Endpoint, err error) {
- if err != nil {
++ if err != nil && !e.Condition().IsSet() {
+ e.Condition().SetError(err)
+ }
+ e.Close()
+}
+
+// EndpointError returns the remote error if there is one, the local error if not
+// nil if there is no error.
+func EndpointError(e Endpoint) error {
+ err := e.RemoteCondition().Error()
+ if err == nil {
+ err = e.Condition().Error()
+ }
+ return err
+}
+
+const (
+ Received uint64 = C.PN_RECEIVED
+ Accepted = C.PN_ACCEPTED
+ Rejected = C.PN_REJECTED
+ Released = C.PN_RELEASED
+ Modified = C.PN_MODIFIED
+)
+
+// SettleAs is equivalent to d.Update(disposition); d.Settle()
+func (d Delivery) SettleAs(disposition uint64) {
+ d.Update(disposition)
+ d.Settle()
+}
+
+// Accept accepts and settles a delivery.
+func (d Delivery) Accept() { d.SettleAs(Accepted) }
+
+// Reject rejects and settles a delivery
+func (d Delivery) Reject() { d.SettleAs(Rejected) }
+
+// Release releases and settles a delivery
+// If delivered is true the delivery count for the message will be increased.
+func (d Delivery) Release(delivered bool) {
+ if delivered {
+ d.SettleAs(Modified)
+ } else {
+ d.SettleAs(Released)
+ }
+}
+
+type DeliveryTag struct{ pn C.pn_delivery_tag_t }
+
+func (t DeliveryTag) String() string { return C.GoStringN(t.pn.start, C.int(t.pn.size)) }
+
+func (l Link) Recv(buf []byte) int {
+ if len(buf) == 0 {
+ return 0
+ }
+ return int(C.pn_link_recv(l.pn, (*C.char)(unsafe.Pointer(&buf[0])), C.size_t(len(buf))))
+}
+
+func (l Link) SendBytes(bytes []byte) int {
+ return int(C.pn_link_send(l.pn, cPtr(bytes), cLen(bytes)))
+}
+
+func pnTag(tag string) C.pn_delivery_tag_t {
+ bytes := []byte(tag)
+ return C.pn_dtag(cPtr(bytes), cLen(bytes))
+}
+
+func (l Link) Delivery(tag string) Delivery {
+ return Delivery{C.pn_delivery(l.pn, pnTag(tag))}
+}
+
+func (l Link) Connection() Connection { return l.Session().Connection() }
+
+// Human-readable link description including name, source, target and direction.
+func (l Link) String() string {
+ switch {
+ case l.IsNil():
+ return fmt.Sprintf("<nil-link>")
+ case l.IsSender():
+ return fmt.Sprintf("%s(%s->%s)", l.Name(), l.Source().Address(), l.Target().Address())
+ default:
+ return fmt.Sprintf("%s(%s<-%s)", l.Name(), l.Target().Address(), l.Source().Address())
+ }
+}
+
+func (l Link) Type() string {
+ if l.IsSender() {
- return "link(sender)"
++ return "sender-link"
+ } else {
- return "link(receiver)"
++ return "receiver-link"
+ }
+}
+
+// IsDrain calls pn_link_get_drain(), it conflicts with pn_link_drain() under the normal mapping.
+func (l Link) IsDrain() bool {
+ return bool(C.pn_link_get_drain(l.pn))
+}
+
+func cPtr(b []byte) *C.char {
+ if len(b) == 0 {
+ return nil
+ }
+ return (*C.char)(unsafe.Pointer(&b[0]))
+}
+
+func cLen(b []byte) C.size_t {
+ return C.size_t(len(b))
+}
+
+func (s Session) Sender(name string) Link {
+ cname := C.CString(name)
+ defer C.free(unsafe.Pointer(cname))
+ return Link{C.pn_sender(s.pn, cname)}
+}
+
+func (s Session) Receiver(name string) Link {
+ cname := C.CString(name)
+ defer C.free(unsafe.Pointer(cname))
+ return Link{C.pn_receiver(s.pn, cname)}
+}
+
+func (t Transport) String() string {
+ return fmt.Sprintf("(Transport)(%p)", t.CPtr())
+}
+
+// Unique (per process) string identifier for a connection, useful for debugging.
+func (c Connection) String() string {
+ // Use the transport address to match the default transport logs from PN_TRACE.
+ return fmt.Sprintf("(Connection)(%p)", c.Transport().CPtr())
+}
+
+func (c Connection) Type() string {
+ return "connection"
+}
+
+// Head functions don't follow the normal naming conventions so missed by the generator.
+
+func (c Connection) LinkHead(s State) Link {
+ return Link{C.pn_link_head(c.pn, C.pn_state_t(s))}
+}
+
+func (c Connection) SessionHead(s State) Session {
+ return Session{C.pn_session_head(c.pn, C.pn_state_t(s))}
+}
+
+func (c Connection) Links(state State) (links []Link) {
+ for l := c.LinkHead(state); !l.IsNil(); l = l.Next(state) {
+ links = append(links, l)
+ }
+ return
+}
+
+func (c Connection) Sessions(state State) (sessions []Session) {
+ for s := c.SessionHead(state); !s.IsNil(); s = s.Next(state) {
+ sessions = append(sessions, s)
+ }
+ return
+}
+
+// SetPassword takes []byte not string because it is impossible to erase a string
+// from memory reliably. Proton will not keep the password in memory longer than
+// needed, the caller should overwrite their copy on return.
+//
+// The password must not contain embedded nul characters, a trailing nul is ignored.
+func (c Connection) SetPassword(password []byte) {
+ if len(password) == 0 || password[len(password)-1] != 0 {
+ password = append(password, 0) // Proton requires a terminating null.
+ }
+ C.pn_connection_set_password(c.pn, (*C.char)(unsafe.Pointer(&password[0])))
+}
+
+func (s Session) String() string {
+ return fmt.Sprintf("(Session)(%p)", s.pn) // TODO aconway 2016-09-12: should print channel number.
+}
+
+func (s Session) Type() string { return "session" }
+
+// Error returns an instance of amqp.Error or nil.
+func (c Condition) Error() error {
+ if c.IsNil() || !c.IsSet() {
+ return nil
+ }
+ return amqp.Error{Name: c.Name(), Description: c.Description()}
+}
+
+// Set a Go error into a condition.
+// If it is not an amqp.Condition use the error type as name, error string as description.
+func (c Condition) SetError(err error) {
+ if err != nil {
+ if cond, ok := err.(amqp.Error); ok {
+ c.SetName(cond.Name)
+ c.SetDescription(cond.Description)
+ } else {
+ c.SetName(reflect.TypeOf(err).Name())
+ c.SetDescription(err.Error())
+ }
+ }
+}
+
+func (c Connection) Session() (Session, error) {
+ s := Session{C.pn_session(c.pn)}
+ if s.IsNil() {
+ return s, Connection(c).Error()
+ }
+ return s, nil
+}
+
+// pnTime converts Go time.Time to Proton millisecond Unix time.
+//
+// Note: t.isZero() is converted to C.pn_timestamp_t(0) and vice-versa. These
+// are used as "not set" sentinel values by the Go and Proton APIs, so it is
+// better to conserve the "zeroness" even though they don't represent the same
+// time instant.
+//
+func pnTime(t time.Time) (pnt C.pn_timestamp_t) {
+ if !t.IsZero() {
+ pnt = C.pn_timestamp_t(t.Unix()*1000 + int64(t.Nanosecond())/int64(time.Millisecond))
+ }
+ return
+}
+
+// goTime converts a pn_timestamp_t to a Go time.Time.
+//
+// Note: C.pn_timestamp_t(0) is converted to a zero time.Time and
+// vice-versa. These are used as "not set" sentinel values by the Go and Proton
+// APIs, so it is better to conserve the "zeroness" even though they don't
+// represent the same time instant.
+//
+func goTime(pnt C.pn_timestamp_t) (t time.Time) {
+ if pnt != 0 {
+ t = time.Unix(int64(pnt/1000), int64(pnt%1000)*int64(time.Millisecond))
+ }
+ return
+}
+
+// Special treatment for Transport.Head, return value is unsafe.Pointer not string
+func (t Transport) Head() unsafe.Pointer {
+ return unsafe.Pointer(C.pn_transport_head(t.pn))
+}
+
+// Special treatment for Transport.Tail, return value is unsafe.Pointer not string
+func (t Transport) Tail() unsafe.Pointer {
+ return unsafe.Pointer(C.pn_transport_tail(t.pn))
+}
+
+// Special treatment for Transport.Push, takes []byte instead of char*, size
+func (t Transport) Push(bytes []byte) int {
+ return int(C.pn_transport_push(t.pn, (*C.char)(unsafe.Pointer(&bytes[0])), C.size_t(len(bytes))))
+}
+
+// Get the SASL object for the transport.
+func (t Transport) SASL() SASL {
+ return SASL{C.pn_sasl(t.pn)}
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[11/30] qpid-proton git commit: PROTON-1371: [C++ binding] Large
header file cleanup - Introduce header to forward declare
types - Remove a lot of unnecessary includes in C++ header files
Posted by ac...@apache.org.
PROTON-1371: [C++ binding] Large header file cleanup
- Introduce <proton/fwd.hpp> header to forward declare types
- Remove a lot of unnecessary includes in C++ header files
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/5147ed30
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/5147ed30
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/5147ed30
Branch: refs/heads/go1
Commit: 5147ed30303a4ef8510a78b0e214fd954811193c
Parents: 0a2d28e
Author: Andrew Stitcher <as...@apache.org>
Authored: Mon Dec 5 12:59:21 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Wed Dec 7 03:54:13 2016 -0500
----------------------------------------------------------------------
examples/cpp/broker.cpp | 4 ++
examples/cpp/client.cpp | 8 ++-
examples/cpp/connection_options.cpp | 2 +
examples/cpp/direct_recv.cpp | 4 ++
examples/cpp/direct_send.cpp | 5 ++
examples/cpp/flow_control.cpp | 8 ++-
examples/cpp/helloworld.cpp | 4 ++
examples/cpp/helloworld_direct.cpp | 4 ++
examples/cpp/mt/broker.cpp | 8 +++
examples/cpp/queue_browser.cpp | 3 +
examples/cpp/scheduled_send.cpp | 5 ++
examples/cpp/scheduled_send_03.cpp | 8 +++
examples/cpp/selected_recv.cpp | 3 +
examples/cpp/server.cpp | 4 ++
examples/cpp/server_direct.cpp | 5 ++
examples/cpp/service_bus.cpp | 10 ++-
examples/cpp/simple_recv.cpp | 6 +-
examples/cpp/simple_send.cpp | 7 +-
examples/cpp/ssl.cpp | 5 ++
examples/cpp/ssl_client_cert.cpp | 4 ++
.../cpp/include/proton/annotation_key.hpp | 2 +
proton-c/bindings/cpp/include/proton/binary.hpp | 2 +
.../bindings/cpp/include/proton/byte_array.hpp | 2 +
.../cpp/include/proton/codec/decoder.hpp | 2 +
.../cpp/include/proton/codec/encoder.hpp | 2 +
.../bindings/cpp/include/proton/connection.hpp | 14 +---
.../cpp/include/proton/connection_options.hpp | 15 ++---
.../bindings/cpp/include/proton/container.hpp | 12 +---
.../bindings/cpp/include/proton/decimal.hpp | 2 -
.../cpp/include/proton/default_container.hpp | 2 +-
.../bindings/cpp/include/proton/delivery.hpp | 6 +-
.../bindings/cpp/include/proton/duration.hpp | 2 +
.../bindings/cpp/include/proton/endpoint.hpp | 3 +-
.../cpp/include/proton/error_condition.hpp | 2 +-
.../bindings/cpp/include/proton/event_loop.hpp | 8 +--
proton-c/bindings/cpp/include/proton/fwd.hpp | 70 ++++++++++++++++++++
.../cpp/include/proton/internal/type_traits.hpp | 3 +
.../include/proton/io/container_impl_base.hpp | 1 +
proton-c/bindings/cpp/include/proton/link.hpp | 26 ++------
.../cpp/include/proton/listen_handler.hpp | 2 +
.../bindings/cpp/include/proton/listener.hpp | 3 +-
.../bindings/cpp/include/proton/message.hpp | 14 ++--
.../bindings/cpp/include/proton/message_id.hpp | 2 +
.../cpp/include/proton/messaging_handler.hpp | 17 +----
.../bindings/cpp/include/proton/receiver.hpp | 10 ++-
.../cpp/include/proton/receiver_options.hpp | 12 +---
.../cpp/include/proton/reconnect_timer.hpp | 3 +-
proton-c/bindings/cpp/include/proton/scalar.hpp | 7 +-
.../bindings/cpp/include/proton/scalar_base.hpp | 6 +-
proton-c/bindings/cpp/include/proton/sender.hpp | 11 +--
.../cpp/include/proton/sender_options.hpp | 12 +---
.../bindings/cpp/include/proton/session.hpp | 10 +--
.../cpp/include/proton/session_options.hpp | 6 +-
proton-c/bindings/cpp/include/proton/source.hpp | 16 ++---
.../cpp/include/proton/source_options.hpp | 7 +-
proton-c/bindings/cpp/include/proton/ssl.hpp | 5 +-
proton-c/bindings/cpp/include/proton/target.hpp | 10 +--
.../cpp/include/proton/target_options.hpp | 9 +--
.../bindings/cpp/include/proton/terminus.hpp | 13 +++-
.../bindings/cpp/include/proton/thread_safe.hpp | 8 +--
.../bindings/cpp/include/proton/timestamp.hpp | 2 +
.../bindings/cpp/include/proton/transfer.hpp | 4 +-
.../bindings/cpp/include/proton/transport.hpp | 12 +---
proton-c/bindings/cpp/include/proton/types.hpp | 4 +-
.../bindings/cpp/include/proton/types_fwd.hpp | 7 +-
proton-c/bindings/cpp/include/proton/url.hpp | 3 +-
proton-c/bindings/cpp/include/proton/uuid.hpp | 2 +-
proton-c/bindings/cpp/include/proton/value.hpp | 2 +
proton-c/bindings/cpp/src/connection.cpp | 3 +
proton-c/bindings/cpp/src/container.cpp | 1 +
proton-c/bindings/cpp/src/container_test.cpp | 2 +
proton-c/bindings/cpp/src/delivery.cpp | 2 +
proton-c/bindings/cpp/src/handler.cpp | 1 +
.../bindings/cpp/src/include/container_impl.hpp | 5 +-
.../bindings/cpp/src/include/proton_event.hpp | 2 +-
proton-c/bindings/cpp/src/include/reactor.hpp | 5 +-
proton-c/bindings/cpp/src/message.cpp | 5 +-
proton-c/bindings/cpp/src/messaging_adapter.cpp | 4 +-
proton-c/bindings/cpp/src/receiver.cpp | 6 +-
proton-c/bindings/cpp/src/sender.cpp | 6 +-
proton-c/bindings/cpp/src/session.cpp | 8 ++-
proton-c/bindings/cpp/src/terminus.cpp | 6 +-
proton-c/bindings/cpp/src/tracker.cpp | 2 +
tests/tools/apps/cpp/reactor_send.cpp | 8 ++-
84 files changed, 327 insertions(+), 241 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/broker.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/broker.cpp b/examples/cpp/broker.cpp
index 232839b..97ef206 100644
--- a/examples/cpp/broker.cpp
+++ b/examples/cpp/broker.cpp
@@ -22,8 +22,11 @@
#include "options.hpp"
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
+#include <proton/error_condition.hpp>
+#include <proton/listener.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/message.hpp>
#include <proton/receiver_options.hpp>
@@ -31,6 +34,7 @@
#include <proton/sender_options.hpp>
#include <proton/source_options.hpp>
#include <proton/target_options.hpp>
+#include <proton/tracker.hpp>
#include <proton/transport.hpp>
#include <proton/url.hpp>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/client.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/client.cpp b/examples/cpp/client.cpp
index dd22ccd..7139155 100644
--- a/examples/cpp/client.cpp
+++ b/examples/cpp/client.cpp
@@ -20,12 +20,16 @@
*/
#include "options.hpp"
+#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
-#include <proton/connection.hpp>
-#include <proton/tracker.hpp>
+#include <proton/receiver_options.hpp>
#include <proton/source_options.hpp>
+#include <proton/thread_safe.hpp>
+#include <proton/tracker.hpp>
#include <iostream>
#include <vector>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/connection_options.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/connection_options.cpp b/examples/cpp/connection_options.cpp
index f9935a8..f718060 100644
--- a/examples/cpp/connection_options.cpp
+++ b/examples/cpp/connection_options.cpp
@@ -21,8 +21,10 @@
#include <proton/connection.hpp>
#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/transport.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/direct_recv.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/direct_recv.cpp b/examples/cpp/direct_recv.cpp
index d2d3939..705b480 100644
--- a/examples/cpp/direct_recv.cpp
+++ b/examples/cpp/direct_recv.cpp
@@ -22,10 +22,14 @@
#include "options.hpp"
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
+#include <proton/message.hpp>
+#include <proton/message_id.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/link.hpp>
+#include <proton/listener.hpp>
#include <proton/value.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/direct_send.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/direct_send.cpp b/examples/cpp/direct_send.cpp
index d8427b7..7de762d 100644
--- a/examples/cpp/direct_send.cpp
+++ b/examples/cpp/direct_send.cpp
@@ -22,10 +22,15 @@
#include "options.hpp"
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
+#include <proton/message_id.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/value.hpp>
#include <proton/tracker.hpp>
+#include <proton/types.hpp>
#include <iostream>
#include <map>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/flow_control.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/flow_control.cpp b/examples/cpp/flow_control.cpp
index 99f832d..c0b8739 100644
--- a/examples/cpp/flow_control.cpp
+++ b/examples/cpp/flow_control.cpp
@@ -21,14 +21,18 @@
#include "options.hpp"
-#include <proton/listener.hpp>
#include <proton/connection.hpp>
#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/delivery.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/receiver_options.hpp>
#include <proton/sender.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
-#include <proton/delivery.hpp>
#include <iostream>
#include <sstream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/helloworld.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/helloworld.cpp b/examples/cpp/helloworld.cpp
index fa95af0..4aa5cdd 100644
--- a/examples/cpp/helloworld.cpp
+++ b/examples/cpp/helloworld.cpp
@@ -20,9 +20,13 @@
*/
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/thread_safe.hpp>
+#include <proton/tracker.hpp>
#include <proton/url.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/helloworld_direct.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/helloworld_direct.cpp b/examples/cpp/helloworld_direct.cpp
index 5421e62..b3a1af8 100644
--- a/examples/cpp/helloworld_direct.cpp
+++ b/examples/cpp/helloworld_direct.cpp
@@ -20,9 +20,13 @@
*/
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/sender.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/mt/broker.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/mt/broker.cpp b/examples/cpp/mt/broker.cpp
index 7ef90c3..83b7005 100644
--- a/examples/cpp/mt/broker.cpp
+++ b/examples/cpp/mt/broker.cpp
@@ -21,18 +21,26 @@
#include "mt_container.hpp"
#include <proton/connection.hpp>
+#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
#include <proton/error_condition.hpp>
#include <proton/listen_handler.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/sender_options.hpp>
#include <proton/source_options.hpp>
+#include <proton/target.hpp>
#include <proton/thread_safe.hpp>
+#include <proton/tracker.hpp>
#include <atomic>
+#include <deque>
#include <functional>
#include <iostream>
+#include <map>
#include <mutex>
#include <thread>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/queue_browser.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/queue_browser.cpp b/examples/cpp/queue_browser.cpp
index 649716b..583277e 100644
--- a/examples/cpp/queue_browser.cpp
+++ b/examples/cpp/queue_browser.cpp
@@ -20,11 +20,14 @@
*/
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/receiver_options.hpp>
#include <proton/source_options.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/url.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/scheduled_send.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/scheduled_send.cpp b/examples/cpp/scheduled_send.cpp
index 280c737..ef6cd27 100644
--- a/examples/cpp/scheduled_send.cpp
+++ b/examples/cpp/scheduled_send.cpp
@@ -21,8 +21,13 @@
#include "options.hpp"
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/sender.hpp>
+#include <proton/thread_safe.hpp>
+#include <proton/tracker.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/scheduled_send_03.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/scheduled_send_03.cpp b/examples/cpp/scheduled_send_03.cpp
index 5d3aaac..92e5767 100644
--- a/examples/cpp/scheduled_send_03.cpp
+++ b/examples/cpp/scheduled_send_03.cpp
@@ -21,8 +21,16 @@
#include "options.hpp"
+#include <proton/container.hpp>
+#include <proton/connection.hpp>
#include <proton/default_container.hpp>
+#include <proton/duration.hpp>
+#include <proton/function.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/sender.hpp>
+#include <proton/thread_safe.hpp>
+#include <proton/tracker.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/selected_recv.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/selected_recv.cpp b/examples/cpp/selected_recv.cpp
index 2c1a6b6..a48ef0e 100644
--- a/examples/cpp/selected_recv.cpp
+++ b/examples/cpp/selected_recv.cpp
@@ -20,10 +20,13 @@
*/
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/receiver_options.hpp>
#include <proton/source_options.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/url.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/server.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/server.cpp b/examples/cpp/server.cpp
index ec24f9f..449ce6e 100644
--- a/examples/cpp/server.cpp
+++ b/examples/cpp/server.cpp
@@ -22,8 +22,12 @@
#include "options.hpp"
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/message.hpp>
+#include <proton/message_id.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
#include <proton/url.hpp>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/server_direct.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/server_direct.cpp b/examples/cpp/server_direct.cpp
index 220934f..22d519a 100644
--- a/examples/cpp/server_direct.cpp
+++ b/examples/cpp/server_direct.cpp
@@ -21,9 +21,14 @@
#include "options.hpp"
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
+#include <proton/message_id.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/sender.hpp>
+#include <proton/sender_options.hpp>
#include <proton/source_options.hpp>
#include <proton/tracker.hpp>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/service_bus.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/service_bus.cpp b/examples/cpp/service_bus.cpp
index 73eaadb..6b57f8d 100644
--- a/examples/cpp/service_bus.cpp
+++ b/examples/cpp/service_bus.cpp
@@ -84,13 +84,19 @@ Done. No more messages.
#include <proton/connection.hpp>
#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/delivery.hpp>
+#include <proton/function.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/receiver_options.hpp>
#include <proton/sender.hpp>
+#include <proton/sender_options.hpp>
+#include <proton/source_options.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
-#include <proton/delivery.hpp>
#include <proton/url.hpp>
-#include <proton/source_options.hpp>
#include <iostream>
#include <sstream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/simple_recv.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/simple_recv.cpp b/examples/cpp/simple_recv.cpp
index 1f077d6..145eef9 100644
--- a/examples/cpp/simple_recv.cpp
+++ b/examples/cpp/simple_recv.cpp
@@ -22,11 +22,15 @@
#include "options.hpp"
#include <proton/connection.hpp>
+#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
#include <proton/delivery.hpp>
-#include <proton/messaging_handler.hpp>
#include <proton/link.hpp>
+#include <proton/message.hpp>
#include <proton/message_id.hpp>
+#include <proton/messaging_handler.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/value.hpp>
#include <iostream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/simple_send.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/simple_send.cpp b/examples/cpp/simple_send.cpp
index 9e11588..358bbec 100644
--- a/examples/cpp/simple_send.cpp
+++ b/examples/cpp/simple_send.cpp
@@ -22,10 +22,15 @@
#include "options.hpp"
#include <proton/connection.hpp>
+#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/message.hpp>
+#include <proton/message_id.hpp>
#include <proton/messaging_handler.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
-#include <proton/value.hpp>
+#include <proton/types.hpp>
#include <iostream>
#include <map>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/ssl.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/ssl.cpp b/examples/cpp/ssl.cpp
index 67394b5..2e901c2 100644
--- a/examples/cpp/ssl.cpp
+++ b/examples/cpp/ssl.cpp
@@ -23,9 +23,14 @@
#include <proton/connection_options.hpp>
#include <proton/connection.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/error_condition.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/ssl.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
#include <proton/transport.hpp>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/examples/cpp/ssl_client_cert.cpp
----------------------------------------------------------------------
diff --git a/examples/cpp/ssl_client_cert.cpp b/examples/cpp/ssl_client_cert.cpp
index 42b6593..630e74b 100644
--- a/examples/cpp/ssl_client_cert.cpp
+++ b/examples/cpp/ssl_client_cert.cpp
@@ -21,10 +21,14 @@
#include <proton/connection.hpp>
#include <proton/connection_options.hpp>
+#include <proton/container.hpp>
#include <proton/default_container.hpp>
+#include <proton/listener.hpp>
+#include <proton/message.hpp>
#include <proton/messaging_handler.hpp>
#include <proton/sasl.hpp>
#include <proton/ssl.hpp>
+#include <proton/thread_safe.hpp>
#include <proton/tracker.hpp>
#include <proton/transport.hpp>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/annotation_key.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/annotation_key.hpp b/proton-c/bindings/cpp/include/proton/annotation_key.hpp
index 23d789b..4995141 100644
--- a/proton-c/bindings/cpp/include/proton/annotation_key.hpp
+++ b/proton-c/bindings/cpp/include/proton/annotation_key.hpp
@@ -25,6 +25,8 @@
#include "./scalar_base.hpp"
#include "./symbol.hpp"
+#include <proton/type_compat.h>
+
namespace proton {
/// A key for use with AMQP annotation maps.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/binary.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/binary.hpp b/proton-c/bindings/cpp/include/proton/binary.hpp
index d2f5b97..cf4c7a2 100644
--- a/proton-c/bindings/cpp/include/proton/binary.hpp
+++ b/proton-c/bindings/cpp/include/proton/binary.hpp
@@ -25,6 +25,8 @@
#include "./internal/export.hpp"
#include "./types_fwd.hpp"
+#include <proton/type_compat.h>
+
#include <iosfwd>
#include <string>
#include <vector>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/byte_array.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/byte_array.hpp b/proton-c/bindings/cpp/include/proton/byte_array.hpp
index d69861a..9040133 100644
--- a/proton-c/bindings/cpp/include/proton/byte_array.hpp
+++ b/proton-c/bindings/cpp/include/proton/byte_array.hpp
@@ -24,6 +24,8 @@
#include "./internal/comparable.hpp"
#include "./types_fwd.hpp"
+#include <proton/type_compat.h>
+
#include <algorithm>
#include <iterator>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/decoder.hpp b/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
index 7acae9d..3dc6d57 100644
--- a/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
+++ b/proton-c/bindings/cpp/include/proton/codec/decoder.hpp
@@ -27,6 +27,8 @@
#include "../types_fwd.hpp"
#include "./common.hpp"
+#include <proton/type_compat.h>
+
#include <utility>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/encoder.hpp b/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
index 9183c07..24de309 100644
--- a/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
+++ b/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
@@ -27,6 +27,8 @@
#include "../types_fwd.hpp"
#include "./common.hpp"
+#include <proton/type_compat.h>
+
namespace proton {
class scalar_base;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/connection.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/connection.hpp b/proton-c/bindings/cpp/include/proton/connection.hpp
index 062805f..aac3bb7 100644
--- a/proton-c/bindings/cpp/include/proton/connection.hpp
+++ b/proton-c/bindings/cpp/include/proton/connection.hpp
@@ -22,12 +22,13 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
-#include "./endpoint.hpp"
#include "./internal/object.hpp"
+#include "./endpoint.hpp"
#include "./session.hpp"
-#include <proton/types.h>
+#include <proton/type_compat.h>
#include <string>
@@ -35,15 +36,6 @@ struct pn_connection_t;
namespace proton {
-class messaging_handler;
-class connection_options;
-class sender;
-class sender_options;
-class receiver;
-class receiver_options;
-class container;
-template <class T> class thread_safe;
-
/// A connection to a remote AMQP peer.
class
PN_CPP_CLASS_EXTERN connection : public internal::object<pn_connection_t>, public endpoint {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/connection_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/connection_options.hpp b/proton-c/bindings/cpp/include/proton/connection_options.hpp
index d2deebf..6957fad 100644
--- a/proton-c/bindings/cpp/include/proton/connection_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/connection_options.hpp
@@ -22,12 +22,14 @@
*
*/
+#include "./fwd.hpp"
+#include "./types_fwd.hpp"
#include "./internal/config.hpp"
#include "./internal/export.hpp"
-#include "./duration.hpp"
#include "./internal/pn_unique_ptr.hpp"
-#include "./reconnect_timer.hpp"
-#include "./types_fwd.hpp"
+#include "./duration.hpp"
+
+#include <proton/type_compat.h>
#include <vector>
#include <string>
@@ -36,13 +38,6 @@ struct pn_connection_t;
namespace proton {
-class proton_handler;
-class connection;
-
-namespace io {
-class connection_driver;
-}
-
/// Options for creating a connection.
///
/// Options can be "chained" like this:
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/container.hpp b/proton-c/bindings/cpp/include/proton/container.hpp
index 7d2d34c..6fe81dc 100644
--- a/proton-c/bindings/cpp/include/proton/container.hpp
+++ b/proton-c/bindings/cpp/include/proton/container.hpp
@@ -22,6 +22,7 @@
*
*/
+#include "./fwd.hpp"
#include "./connection_options.hpp"
#include "./function.hpp"
#include "./listener.hpp"
@@ -36,17 +37,6 @@
namespace proton {
-class connection;
-class connection_options;
-class container_impl;
-class messaging_handler;
-class listen_handler;
-class listener;
-class receiver;
-class receiver_options;
-class sender;
-class sender_options;
-
/// A top-level container of connections, sessions, senders, and
/// receivers.
///
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/decimal.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/decimal.hpp b/proton-c/bindings/cpp/include/proton/decimal.hpp
index 873931b..efca029 100644
--- a/proton-c/bindings/cpp/include/proton/decimal.hpp
+++ b/proton-c/bindings/cpp/include/proton/decimal.hpp
@@ -26,8 +26,6 @@
#include "./internal/export.hpp"
#include "./internal/comparable.hpp"
-#include <proton/types.h>
-
#include <iosfwd>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/default_container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/default_container.hpp b/proton-c/bindings/cpp/include/proton/default_container.hpp
index 0214490..3213c02 100644
--- a/proton-c/bindings/cpp/include/proton/default_container.hpp
+++ b/proton-c/bindings/cpp/include/proton/default_container.hpp
@@ -22,6 +22,7 @@
*
*/
+#include "./fwd.hpp"
#include "./container.hpp"
#include "./internal/config.hpp"
@@ -31,7 +32,6 @@
#include <string>
namespace proton {
-class messaging_handler;
// Avoid deprecated diagnostics from auto_ptr
#if defined(__GNUC__) && __GNUC__*100 + __GNUC_MINOR__ >= 406 || defined(__clang__)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/delivery.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/delivery.hpp b/proton-c/bindings/cpp/include/proton/delivery.hpp
index 91fd143..7c89f0c 100644
--- a/proton-c/bindings/cpp/include/proton/delivery.hpp
+++ b/proton-c/bindings/cpp/include/proton/delivery.hpp
@@ -22,17 +22,13 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./internal/object.hpp"
#include "./transfer.hpp"
-#include <proton/delivery.h>
-#include <proton/disposition.h>
-
namespace proton {
-class receiver;
-
/// A received message.
///
/// A delivery attempt can fail. As a result, a particular message may
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/duration.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/duration.hpp b/proton-c/bindings/cpp/include/proton/duration.hpp
index 7110051..a190cf9 100644
--- a/proton-c/bindings/cpp/include/proton/duration.hpp
+++ b/proton-c/bindings/cpp/include/proton/duration.hpp
@@ -26,6 +26,8 @@
#include "./internal/comparable.hpp"
#include "./types_fwd.hpp"
+#include <proton/type_compat.h>
+
#include <iosfwd>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/endpoint.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/endpoint.hpp b/proton-c/bindings/cpp/include/proton/endpoint.hpp
index 4628d35..36ac981 100644
--- a/proton-c/bindings/cpp/include/proton/endpoint.hpp
+++ b/proton-c/bindings/cpp/include/proton/endpoint.hpp
@@ -22,10 +22,9 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/config.hpp"
-#include "./error_condition.hpp"
#include "./internal/export.hpp"
-#include "./internal/comparable.hpp"
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/error_condition.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/error_condition.hpp b/proton-c/bindings/cpp/include/proton/error_condition.hpp
index e75e5d0..fb39332 100644
--- a/proton-c/bindings/cpp/include/proton/error_condition.hpp
+++ b/proton-c/bindings/cpp/include/proton/error_condition.hpp
@@ -23,8 +23,8 @@
*/
#include "./internal/export.hpp"
-#include "./value.hpp"
#include "./internal/config.hpp"
+#include "./value.hpp"
#include <string>
#include <iosfwd>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/event_loop.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/event_loop.hpp b/proton-c/bindings/cpp/include/proton/event_loop.hpp
index 8288de9..d43ba4f 100644
--- a/proton-c/bindings/cpp/include/proton/event_loop.hpp
+++ b/proton-c/bindings/cpp/include/proton/event_loop.hpp
@@ -22,16 +22,12 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/config.hpp"
-#include "./function.hpp"
+#include "./internal/export.hpp"
#include <functional>
-#if PN_CPP_HAS_CPP11
-#include <future>
-#include <type_traits>
-#endif
-
struct pn_connection_t;
struct pn_session_t;
struct pn_link_t;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/fwd.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/fwd.hpp b/proton-c/bindings/cpp/include/proton/fwd.hpp
new file mode 100644
index 0000000..c494ad3
--- /dev/null
+++ b/proton-c/bindings/cpp/include/proton/fwd.hpp
@@ -0,0 +1,70 @@
+#ifndef PROTON_FWD_HPP
+#define PROTON_FWD_HPP
+
+/*
+ *
+ * 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.
+ *
+ */
+
+namespace proton {
+
+class annotation_key;
+class connection;
+class connection_options;
+class container;
+class container_impl;
+class delivery;
+class error_condition;
+class event;
+class message;
+class message_id;
+class messaging_handler;
+class listen_handler;
+class listener;
+class receiver;
+class receiver_iterator;
+class receiver_options;
+class reconnect_timer;
+class sasl;
+class sender;
+class sender_iterator;
+class sender_options;
+class session;
+class session_options;
+class source_options;
+class ssl;
+class target_options;
+class tracker;
+class transport;
+class url;
+class void_function0;
+
+
+namespace io {
+
+class connection_driver;
+
+}
+
+template <class T> class returned;
+template <class T> class thread_safe;
+
+}
+
+#endif // PROTON_FWD_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp b/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
index 3d66f94..4c4c7d6 100644
--- a/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
+++ b/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
@@ -30,6 +30,9 @@
#include "./config.hpp"
#include "../types_fwd.hpp"
#include "../type_id.hpp"
+
+#include <proton/type_compat.h>
+
#include <limits>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp b/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
index 123f00a..0aeed78 100644
--- a/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
+++ b/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
@@ -24,6 +24,7 @@
#include "../container.hpp"
+#include <future>
#include <mutex>
#include <sstream>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/link.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/link.hpp b/proton-c/bindings/cpp/include/proton/link.hpp
index 40200e8..8534f21 100644
--- a/proton-c/bindings/cpp/include/proton/link.hpp
+++ b/proton-c/bindings/cpp/include/proton/link.hpp
@@ -22,34 +22,16 @@
*
*/
-#include "./endpoint.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
-#include "./message.hpp"
-#include "./source.hpp"
-#include "./target.hpp"
+#include "./endpoint.hpp"
#include "./internal/object.hpp"
-#include "./sender_options.hpp"
-#include "./receiver_options.hpp"
-
-#include <proton/types.h>
#include <string>
-namespace proton {
+struct pn_link_t;
-class sender;
-class receiver;
-class error_condition;
-class link_context;
-class proton_event;
-class messaging_adapter;
-class proton_handler;
-class delivery;
-class connection;
-class container;
-class session;
-class sender_iterator;
-class receiver_iterator;
+namespace proton {
/// A named channel for sending or receiving messages. It is the base
/// class for sender and receiver.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/listen_handler.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/listen_handler.hpp b/proton-c/bindings/cpp/include/proton/listen_handler.hpp
index acd7d4c..99f7558 100644
--- a/proton-c/bindings/cpp/include/proton/listen_handler.hpp
+++ b/proton-c/bindings/cpp/include/proton/listen_handler.hpp
@@ -22,6 +22,8 @@
*
*/
+#include "./fwd.hpp"
+
namespace proton {
// XXX Discuss more
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/listener.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/listener.hpp b/proton-c/bindings/cpp/include/proton/listener.hpp
index 2cdf121..4b4ca24 100644
--- a/proton-c/bindings/cpp/include/proton/listener.hpp
+++ b/proton-c/bindings/cpp/include/proton/listener.hpp
@@ -20,14 +20,13 @@
* under the License.
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include <string>
namespace proton {
-class container;
-
/// A listener for incoming connections.
class PN_CPP_CLASS_EXTERN listener {
public:
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/message.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/message.hpp b/proton-c/bindings/cpp/include/proton/message.hpp
index e9f1da4..85ccff6 100644
--- a/proton-c/bindings/cpp/include/proton/message.hpp
+++ b/proton-c/bindings/cpp/include/proton/message.hpp
@@ -22,28 +22,24 @@
*
*/
-#include "./annotation_key.hpp"
-#include "./codec/map.hpp"
-#include "./duration.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
-#include "./message_id.hpp"
+#include "./duration.hpp"
+#include "./timestamp.hpp"
#include "./value.hpp"
#include "./internal/cached_map.hpp"
#include "./internal/pn_unique_ptr.hpp"
+#include <proton/type_compat.h>
+
#include <string>
#include <vector>
-#include <utility>
struct pn_message_t;
namespace proton {
-class delivery;
-class message_id;
-class annotation_key;
-
/// An AMQP message.
///
/// Value semantics: A message can be copied or assigned to make a new
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/message_id.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/message_id.hpp b/proton-c/bindings/cpp/include/proton/message_id.hpp
index 5e0de90..ee12a17 100644
--- a/proton-c/bindings/cpp/include/proton/message_id.hpp
+++ b/proton-c/bindings/cpp/include/proton/message_id.hpp
@@ -26,6 +26,8 @@
#include "./scalar_base.hpp"
#include "./uuid.hpp"
+#include <proton/type_compat.h>
+
#include <string>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/messaging_handler.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/messaging_handler.hpp b/proton-c/bindings/cpp/include/proton/messaging_handler.hpp
index acdcd30..6653c43 100644
--- a/proton-c/bindings/cpp/include/proton/messaging_handler.hpp
+++ b/proton-c/bindings/cpp/include/proton/messaging_handler.hpp
@@ -22,26 +22,11 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
namespace proton {
-class error_condition;
-class container;
-class event;
-class transport;
-class connection;
-class session;
-class sender;
-class receiver;
-class tracker;
-class delivery;
-class message;
-class messaging_adapter;
-
-namespace io {
-class connection_driver;
-}
/// A handler for Proton messaging events.
///
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/receiver.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/receiver.hpp b/proton-c/bindings/cpp/include/proton/receiver.hpp
index 986765e..f92ac96 100644
--- a/proton-c/bindings/cpp/include/proton/receiver.hpp
+++ b/proton-c/bindings/cpp/include/proton/receiver.hpp
@@ -22,18 +22,16 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
-#include "./endpoint.hpp"
#include "./link.hpp"
-#include <proton/types.h>
+#include <proton/type_compat.h>
-#include <string>
-
-struct pn_connection_t;
+struct pn_link_t;
+struct pn_session_t;
namespace proton {
-template <class T> class thread_safe;
/// A channel for receiving messages.
class
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/receiver_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/receiver_options.hpp b/proton-c/bindings/cpp/include/proton/receiver_options.hpp
index 7b1b511..413e4d4 100644
--- a/proton-c/bindings/cpp/include/proton/receiver_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/receiver_options.hpp
@@ -22,23 +22,13 @@
*
*/
-#include "./internal/config.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
-#include "./types.hpp"
#include "./delivery_mode.hpp"
-#include "./terminus.hpp"
-
-#include <vector>
-#include <string>
namespace proton {
-class proton_handler;
-class receiver;
-class source_options;
-class target_options;
-
/// Options for creating a receiver.
///
/// Options can be "chained" like this:
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/reconnect_timer.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/reconnect_timer.hpp b/proton-c/bindings/cpp/include/proton/reconnect_timer.hpp
index 66ec6b0..766feb7 100644
--- a/proton-c/bindings/cpp/include/proton/reconnect_timer.hpp
+++ b/proton-c/bindings/cpp/include/proton/reconnect_timer.hpp
@@ -28,9 +28,8 @@
#include "./internal/export.hpp"
#include "./duration.hpp"
#include "./timestamp.hpp"
-#include "./types.hpp"
-#include <string>
+#include <proton/type_compat.h>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/scalar.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/scalar.hpp b/proton-c/bindings/cpp/include/proton/scalar.hpp
index 27de576..0559dd9 100644
--- a/proton-c/bindings/cpp/include/proton/scalar.hpp
+++ b/proton-c/bindings/cpp/include/proton/scalar.hpp
@@ -22,12 +22,9 @@
#include "./scalar_base.hpp"
-namespace proton {
+#include <proton/type_compat.h>
-namespace codec {
-class decoder;
-class encoder;
-}
+namespace proton {
/// A holder for an instance of any scalar AMQP type.
///
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/scalar_base.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/scalar_base.hpp b/proton-c/bindings/cpp/include/proton/scalar_base.hpp
index ba594c3..ca3161a 100644
--- a/proton-c/bindings/cpp/include/proton/scalar_base.hpp
+++ b/proton-c/bindings/cpp/include/proton/scalar_base.hpp
@@ -34,12 +34,14 @@
#include "./types_fwd.hpp"
#include "./uuid.hpp"
+#include <proton/type_compat.h>
+
#include <iosfwd>
#include <string>
#include <typeinfo>
namespace proton {
-class message;
+
class scalar_base;
namespace codec {
@@ -150,7 +152,7 @@ class scalar_base : private internal::comparable<scalar_base> {
binary bytes_; // Hold binary data.
/// @cond INTERNAL
- friend class proton::message;
+ friend class message;
friend class codec::encoder;
friend class codec::decoder;
template<class T> friend T internal::get(const scalar_base& s);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/sender.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/sender.hpp b/proton-c/bindings/cpp/include/proton/sender.hpp
index 5d34b23..8979bb4 100644
--- a/proton-c/bindings/cpp/include/proton/sender.hpp
+++ b/proton-c/bindings/cpp/include/proton/sender.hpp
@@ -22,19 +22,14 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./link.hpp"
-#include "./message.hpp"
-#include "./tracker.hpp"
-#include <proton/types.h>
-
-#include <string>
-
-struct pn_connection_t;
+struct pn_link_t;
+struct pn_session_t;
namespace proton {
-template <class T> class thread_safe;
/// A channel for sending messages.
class
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/sender_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/sender_options.hpp b/proton-c/bindings/cpp/include/proton/sender_options.hpp
index 0a618ff..9d7bb42 100644
--- a/proton-c/bindings/cpp/include/proton/sender_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/sender_options.hpp
@@ -22,23 +22,13 @@
*
*/
-#include "./internal/config.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
-#include "./types.hpp"
#include "./delivery_mode.hpp"
-#include "./terminus.hpp"
-
-#include <vector>
-#include <string>
namespace proton {
-class proton_handler;
-class sender;
-class source_options;
-class target_options;
-
/// Options for creating a sender.
///
/// Options can be "chained" like this:
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/session.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/session.hpp b/proton-c/bindings/cpp/include/proton/session.hpp
index 5053f4c..cbdf1b9 100644
--- a/proton-c/bindings/cpp/include/proton/session.hpp
+++ b/proton-c/bindings/cpp/include/proton/session.hpp
@@ -22,26 +22,18 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./endpoint.hpp"
#include "./receiver.hpp"
#include "./sender.hpp"
-#include "./session_options.hpp"
-
-#include <proton/types.h>
-#include <proton/link.h>
#include <string>
-struct pn_connection_t;
struct pn_session_t;
namespace proton {
-class container;
-class messaging_handler;
-template <class T> class thread_safe;
-
/// A container of senders and receivers.
class
PN_CPP_CLASS_EXTERN session : public internal::object<pn_session_t>, public endpoint {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/session_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/session_options.hpp b/proton-c/bindings/cpp/include/proton/session_options.hpp
index 8bef3e8..eb47a89 100644
--- a/proton-c/bindings/cpp/include/proton/session_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/session_options.hpp
@@ -22,16 +22,12 @@
*
*/
-#include "./internal/config.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
-#include "./types.hpp"
namespace proton {
-class messaging_handler;
-class session;
-
/// Options for creating a session.
///
/// Options can be "chained" (see proton::connection_options).
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/source.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/source.hpp b/proton-c/bindings/cpp/include/proton/source.hpp
index 05485c3..321af9a 100644
--- a/proton-c/bindings/cpp/include/proton/source.hpp
+++ b/proton-c/bindings/cpp/include/proton/source.hpp
@@ -22,20 +22,18 @@
*
*/
-#include "./value.hpp"
-#include "./terminus.hpp"
-#include "./codec/map.hpp"
-
-#include "./internal/cached_map.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
-#include "./internal/object.hpp"
+#include "./internal/cached_map.hpp"
+#include "./symbol.hpp"
+#include "./terminus.hpp"
+#include "./value.hpp"
#include <string>
-namespace proton {
+struct pn_terminus_t;
-class sender;
-class receiver;
+namespace proton {
/// A point of origin for messages.
///
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/source_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/source_options.hpp b/proton-c/bindings/cpp/include/proton/source_options.hpp
index d530990..f7dde48 100644
--- a/proton-c/bindings/cpp/include/proton/source_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/source_options.hpp
@@ -22,20 +22,15 @@
*
*/
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
-#include "./types.hpp"
-#include "./delivery_mode.hpp"
+#include "./duration.hpp"
#include "./source.hpp"
-#include <vector>
#include <string>
namespace proton {
-class proton_handler;
-
/// Options for creating a source node for a sender or receiver.
///
/// Options can be "chained" (@see proton::connection_options).
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/ssl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/ssl.hpp b/proton-c/bindings/cpp/include/proton/ssl.hpp
index 82087e2..c6c4c93 100644
--- a/proton-c/bindings/cpp/include/proton/ssl.hpp
+++ b/proton-c/bindings/cpp/include/proton/ssl.hpp
@@ -23,7 +23,6 @@
*/
#include "./internal/export.hpp"
-#include "./internal/object.hpp"
#include <proton/ssl.h>
@@ -31,7 +30,9 @@
namespace proton {
-class connection_options;
+namespace internal {
+template <class T> class factory;
+}
/// SSL information.
class ssl {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/target.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/target.hpp b/proton-c/bindings/cpp/include/proton/target.hpp
index 5ba5281..746133a 100644
--- a/proton-c/bindings/cpp/include/proton/target.hpp
+++ b/proton-c/bindings/cpp/include/proton/target.hpp
@@ -22,17 +22,19 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
-#include "./internal/object.hpp"
-#include "./value.hpp"
#include "./terminus.hpp"
#include <string>
+struct pn_terminus_t;
+
namespace proton {
-class sender;
-class receiver;
+namespace internal {
+template <class T> class factory;
+}
/// A destination for messages.
///
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/target_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/target_options.hpp b/proton-c/bindings/cpp/include/proton/target_options.hpp
index e4fa2f6..547dbbe 100644
--- a/proton-c/bindings/cpp/include/proton/target_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/target_options.hpp
@@ -22,22 +22,15 @@
*
*/
-#include "./internal/config.hpp"
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
-#include "./types.hpp"
-#include "./delivery_mode.hpp"
+#include "./duration.hpp"
#include "./target.hpp"
-#include "./terminus.hpp"
-#include <vector>
#include <string>
namespace proton {
-class proton_handler;
-class target;
-
/// Options for creating a target node for a sender or receiver.
///
/// Options can be "chained" (see proton::connection_options).
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/terminus.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/terminus.hpp b/proton-c/bindings/cpp/include/proton/terminus.hpp
index 6c10486..b63a8ad 100644
--- a/proton-c/bindings/cpp/include/proton/terminus.hpp
+++ b/proton-c/bindings/cpp/include/proton/terminus.hpp
@@ -22,15 +22,22 @@
*
*/
+#include "./types_fwd.hpp"
#include "./internal/export.hpp"
-#include "./internal/object.hpp"
-#include "./value.hpp"
-#include <proton/link.h>
+#include <proton/terminus.h>
+
#include <string>
+struct pn_link_t;
+struct pn_terminus_t;
+
namespace proton {
+namespace internal {
+template <class T> class factory;
+}
+
/// One end of a link, either a source or a target.
///
/// The source terminus is where messages originate; the target
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/thread_safe.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/thread_safe.hpp b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
index edd7af4..7851245 100644
--- a/proton-c/bindings/cpp/include/proton/thread_safe.hpp
+++ b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
@@ -22,9 +22,11 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/config.hpp"
#include "./connection.hpp"
#include "./event_loop.hpp"
+#include "./function.hpp"
#include "./internal/object.hpp"
#include "./internal/type_traits.hpp"
@@ -32,12 +34,6 @@
namespace proton {
-class connection;
-class session;
-class link;
-class sender;
-class receiver;
-
namespace internal {
template <class T> struct endpoint_traits;
template<> struct endpoint_traits<connection> {};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/timestamp.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/timestamp.hpp b/proton-c/bindings/cpp/include/proton/timestamp.hpp
index c0de3e5..6e4281b 100644
--- a/proton-c/bindings/cpp/include/proton/timestamp.hpp
+++ b/proton-c/bindings/cpp/include/proton/timestamp.hpp
@@ -22,6 +22,8 @@
#include "./duration.hpp"
+#include <proton/type_compat.h>
+
namespace proton {
/// A 64-bit timestamp in milliseconds since the Unix epoch.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/transfer.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/transfer.hpp b/proton-c/bindings/cpp/include/proton/transfer.hpp
index c4f984a..ea073f6 100644
--- a/proton-c/bindings/cpp/include/proton/transfer.hpp
+++ b/proton-c/bindings/cpp/include/proton/transfer.hpp
@@ -22,12 +22,14 @@
*
*/
+#include "./fwd.hpp"
#include "./internal/export.hpp"
#include "./internal/object.hpp"
-#include <proton/delivery.h>
#include <proton/disposition.h>
+struct pn_delivery_t;
+
namespace proton {
/// The base class for delivery and tracker.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/transport.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/transport.hpp b/proton-c/bindings/cpp/include/proton/transport.hpp
index 10641e0..614eff2 100644
--- a/proton-c/bindings/cpp/include/proton/transport.hpp
+++ b/proton-c/bindings/cpp/include/proton/transport.hpp
@@ -22,22 +22,14 @@
*
*/
-#include "./internal/object.hpp"
-#include "./types.hpp"
+#include "./fwd.hpp"
#include "./internal/export.hpp"
+#include "./internal/object.hpp"
struct pn_transport_t;
namespace proton {
-class connection;
-class error_condition;
-class sasl;
-
-namespace io {
-class connection_driver;
-}
-
/// A network channel supporting an AMQP connection.
class transport : public internal::object<pn_transport_t> {
/// @cond INTERNAL
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/types.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/types.hpp b/proton-c/bindings/cpp/include/proton/types.hpp
index 5aa52fd..d21cb8f 100644
--- a/proton-c/bindings/cpp/include/proton/types.hpp
+++ b/proton-c/bindings/cpp/include/proton/types.hpp
@@ -29,13 +29,14 @@
// TODO aconway 2016-03-15: described types, described arrays.
+#include "./internal/config.hpp"
+
#include "./annotation_key.hpp"
#include "./binary.hpp"
#include "./codec/deque.hpp"
#include "./codec/list.hpp"
#include "./codec/map.hpp"
#include "./codec/vector.hpp"
-#include "./internal/config.hpp"
#include "./decimal.hpp"
#include "./duration.hpp"
#include "./message_id.hpp"
@@ -45,7 +46,6 @@
#include "./types_fwd.hpp"
#include "./uuid.hpp"
#include "./value.hpp"
-#include "./internal/config.hpp"
#if PN_CPP_HAS_CPP11
#include "./codec/forward_list.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/types_fwd.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/types_fwd.hpp b/proton-c/bindings/cpp/include/proton/types_fwd.hpp
index ec35c87..ff53b0c 100644
--- a/proton-c/bindings/cpp/include/proton/types_fwd.hpp
+++ b/proton-c/bindings/cpp/include/proton/types_fwd.hpp
@@ -29,9 +29,9 @@
#include "./internal/config.hpp"
-#include <proton/type_compat.h>
-
-#include <string>
+#if PN_CPP_HAS_NULLPTR
+#include <cstddef>
+#endif
namespace proton {
@@ -44,7 +44,6 @@ class symbol;
class timestamp;
class duration;
class uuid;
-class uuid;
class value;
struct null {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/url.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/url.hpp b/proton-c/bindings/cpp/include/proton/url.hpp
index 78271b6..52e8d43 100644
--- a/proton-c/bindings/cpp/include/proton/url.hpp
+++ b/proton-c/bindings/cpp/include/proton/url.hpp
@@ -23,9 +23,10 @@
*/
#include "./internal/pn_unique_ptr.hpp"
-#include "./types_fwd.hpp"
#include "./error.hpp"
+#include <proton/type_compat.h>
+
#include <iosfwd>
#include <string>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/uuid.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/uuid.hpp b/proton-c/bindings/cpp/include/proton/uuid.hpp
index 6f3bb1c..a60c944 100644
--- a/proton-c/bindings/cpp/include/proton/uuid.hpp
+++ b/proton-c/bindings/cpp/include/proton/uuid.hpp
@@ -22,8 +22,8 @@
*
*/
-#include "./byte_array.hpp"
#include "./internal/export.hpp"
+#include "./byte_array.hpp"
#include <string>
#include <iosfwd>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/include/proton/value.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/value.hpp b/proton-c/bindings/cpp/include/proton/value.hpp
index b24f02e..3ac1763 100644
--- a/proton-c/bindings/cpp/include/proton/value.hpp
+++ b/proton-c/bindings/cpp/include/proton/value.hpp
@@ -28,6 +28,8 @@
#include "./scalar.hpp"
#include "./types_fwd.hpp"
+#include <proton/type_compat.h>
+
#include <iosfwd>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/connection.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connection.cpp b/proton-c/bindings/cpp/src/connection.cpp
index dcc1ad5..113932c 100644
--- a/proton-c/bindings/cpp/src/connection.cpp
+++ b/proton-c/bindings/cpp/src/connection.cpp
@@ -25,7 +25,10 @@
#include "proton/container.hpp"
#include "proton/error.hpp"
#include "proton/event_loop.hpp"
+#include "proton/receiver_options.hpp"
+#include "proton/sender_options.hpp"
#include "proton/session.hpp"
+#include "proton/session_options.hpp"
#include "proton/transport.hpp"
#include "connector.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/container.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container.cpp b/proton-c/bindings/cpp/src/container.cpp
index 0e64a58..914ee56 100644
--- a/proton-c/bindings/cpp/src/container.cpp
+++ b/proton-c/bindings/cpp/src/container.cpp
@@ -20,6 +20,7 @@
*/
#include "proton/container.hpp"
+#include "proton/error_condition.hpp"
#include "proton/listen_handler.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/container_test.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container_test.cpp b/proton-c/bindings/cpp/src/container_test.cpp
index 062bb94..564a4ba 100644
--- a/proton-c/bindings/cpp/src/container_test.cpp
+++ b/proton-c/bindings/cpp/src/container_test.cpp
@@ -21,10 +21,12 @@
#include "test_bits.hpp"
#include "proton/connection.hpp"
#include "proton/connection_options.hpp"
+#include "proton/container.hpp"
#include "proton/default_container.hpp"
#include "proton/messaging_handler.hpp"
#include "proton/listener.hpp"
#include "proton/listen_handler.hpp"
+#include "proton/thread_safe.hpp"
#include <cstdlib>
#include <ctime>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/delivery.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/delivery.cpp b/proton-c/bindings/cpp/src/delivery.cpp
index cae2bf0..0562304 100644
--- a/proton-c/bindings/cpp/src/delivery.cpp
+++ b/proton-c/bindings/cpp/src/delivery.cpp
@@ -25,6 +25,8 @@
#include "proton_bits.hpp"
+#include <proton/delivery.h>
+
namespace {
void settle_delivery(pn_delivery_t* o, uint64_t state) {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/handler.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/handler.cpp b/proton-c/bindings/cpp/src/handler.cpp
index 453aa42..5cf6208 100644
--- a/proton-c/bindings/cpp/src/handler.cpp
+++ b/proton-c/bindings/cpp/src/handler.cpp
@@ -21,6 +21,7 @@
#include "proton/messaging_handler.hpp"
#include "proton/connection.hpp"
+#include "proton/error_condition.hpp"
#include "proton/receiver.hpp"
#include "proton/sender.hpp"
#include "proton/session.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/include/container_impl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/container_impl.hpp b/proton-c/bindings/cpp/src/include/container_impl.hpp
index 0ffc2eb..b0d9634 100644
--- a/proton-c/bindings/cpp/src/include/container_impl.hpp
+++ b/proton-c/bindings/cpp/src/include/container_impl.hpp
@@ -22,12 +22,15 @@
*
*/
+#include "proton/fwd.hpp"
#include "proton/container.hpp"
#include "proton/connection.hpp"
#include "proton/connection_options.hpp"
#include "proton/duration.hpp"
#include "proton/sender.hpp"
+#include "proton/sender_options.hpp"
#include "proton/receiver.hpp"
+#include "proton/receiver_options.hpp"
#include "messaging_adapter.hpp"
#include "reactor.hpp"
@@ -41,10 +44,8 @@
namespace proton {
class dispatch_helper;
-class connection;
class connector;
class acceptor;
-class container;
class url;
class listen_handler;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/include/proton_event.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/proton_event.hpp b/proton-c/bindings/cpp/src/include/proton_event.hpp
index 9b33701..00fdadf 100644
--- a/proton-c/bindings/cpp/src/include/proton_event.hpp
+++ b/proton-c/bindings/cpp/src/include/proton_event.hpp
@@ -22,6 +22,7 @@
*
*/
+#include "proton/fwd.hpp"
#include "proton/error.hpp"
#include <proton/event.h>
@@ -29,7 +30,6 @@
namespace proton {
class proton_handler;
-class container;
/** Event information for a proton::proton_handler */
class proton_event
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/include/reactor.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/reactor.hpp b/proton-c/bindings/cpp/src/include/reactor.hpp
index 21df5ce..7aba5f0 100644
--- a/proton-c/bindings/cpp/src/include/reactor.hpp
+++ b/proton-c/bindings/cpp/src/include/reactor.hpp
@@ -23,6 +23,7 @@
/// @cond INTERNAL
/// XXX remove
+#include "proton/fwd.hpp"
#include "proton/internal/object.hpp"
#include "proton/duration.hpp"
#include "proton/timestamp.hpp"
@@ -33,11 +34,7 @@ struct pn_io_t;
namespace proton {
-class connection;
-class container;
class acceptor;
-class url;
-class messaging_handler;
class reactor : public internal::object<pn_reactor_t> {
public:
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/message.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/message.cpp b/proton-c/bindings/cpp/src/message.cpp
index 9a9634c..eecfa3b 100644
--- a/proton-c/bindings/cpp/src/message.cpp
+++ b/proton-c/bindings/cpp/src/message.cpp
@@ -28,12 +28,13 @@
#include "proton/sender.hpp"
#include "proton/timestamp.hpp"
-#include <proton/message.h>
-
#include "msg.hpp"
#include "proton_bits.hpp"
#include "types_internal.hpp"
+#include <proton/delivery.h>
+#include <proton/message.h>
+
#include <string>
#include <algorithm>
#include <assert.h>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/messaging_adapter.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/messaging_adapter.cpp b/proton-c/bindings/cpp/src/messaging_adapter.cpp
index 928c3be..17c84cd 100644
--- a/proton-c/bindings/cpp/src/messaging_adapter.cpp
+++ b/proton-c/bindings/cpp/src/messaging_adapter.cpp
@@ -22,8 +22,10 @@
#include "messaging_adapter.hpp"
#include "proton/delivery.hpp"
-#include "proton/sender.hpp"
#include "proton/error.hpp"
+#include "proton/receiver_options.hpp"
+#include "proton/sender.hpp"
+#include "proton/sender_options.hpp"
#include "proton/tracker.hpp"
#include "proton/transport.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/receiver.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/receiver.cpp b/proton-c/bindings/cpp/src/receiver.cpp
index 2c417f0..68d55d0 100644
--- a/proton-c/bindings/cpp/src/receiver.cpp
+++ b/proton-c/bindings/cpp/src/receiver.cpp
@@ -18,9 +18,13 @@
* under the License.
*
*/
-#include "proton/link.hpp"
#include "proton/receiver.hpp"
+
#include "proton/error.hpp"
+#include "proton/link.hpp"
+#include "proton/receiver_options.hpp"
+#include "proton/source.hpp"
+#include "proton/target.hpp"
#include "msg.hpp"
#include "proton_bits.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/sender.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/sender.cpp b/proton-c/bindings/cpp/src/sender.cpp
index f7ec686..70e9fa6 100644
--- a/proton-c/bindings/cpp/src/sender.cpp
+++ b/proton-c/bindings/cpp/src/sender.cpp
@@ -19,8 +19,12 @@
*
*/
-#include "proton/link.hpp"
#include "proton/sender.hpp"
+
+#include "proton/link.hpp"
+#include "proton/sender_options.hpp"
+#include "proton/source.hpp"
+#include "proton/target.hpp"
#include "proton/tracker.hpp"
#include <proton/delivery.h>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/session.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/session.cpp b/proton-c/bindings/cpp/src/session.cpp
index 03d8cd1..de152d6 100644
--- a/proton-c/bindings/cpp/src/session.cpp
+++ b/proton-c/bindings/cpp/src/session.cpp
@@ -20,15 +20,17 @@
*/
#include "proton/session.hpp"
-#include <proton/connection.h>
-#include <proton/session.h>
-#include "proton/session.hpp"
#include "proton/connection.hpp"
+#include "proton/receiver_options.hpp"
+#include "proton/sender_options.hpp"
#include "proton/session_options.hpp"
#include "contexts.hpp"
#include "proton_bits.hpp"
+#include <proton/connection.h>
+#include <proton/session.h>
+
#include <string>
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/terminus.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/terminus.cpp b/proton-c/bindings/cpp/src/terminus.cpp
index 2c8da03..8065fe4 100644
--- a/proton-c/bindings/cpp/src/terminus.cpp
+++ b/proton-c/bindings/cpp/src/terminus.cpp
@@ -21,10 +21,10 @@
#include "proton/terminus.hpp"
-#include "proton_bits.hpp"
+#include "proton/duration.hpp"
+#include "proton/value.hpp"
-#include "proton/link.hpp"
-#include <proton/link.h>
+#include "proton_bits.hpp"
namespace proton {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/proton-c/bindings/cpp/src/tracker.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/tracker.cpp b/proton-c/bindings/cpp/src/tracker.cpp
index 1d309a5..3b15ed5 100644
--- a/proton-c/bindings/cpp/src/tracker.cpp
+++ b/proton-c/bindings/cpp/src/tracker.cpp
@@ -25,6 +25,8 @@
#include "proton_bits.hpp"
+#include <proton/delivery.h>
+
namespace proton {
tracker::tracker(pn_delivery_t *d): transfer(make_wrapper(d)) {}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/5147ed30/tests/tools/apps/cpp/reactor_send.cpp
----------------------------------------------------------------------
diff --git a/tests/tools/apps/cpp/reactor_send.cpp b/tests/tools/apps/cpp/reactor_send.cpp
index 481a305..7841a5e 100644
--- a/tests/tools/apps/cpp/reactor_send.cpp
+++ b/tests/tools/apps/cpp/reactor_send.cpp
@@ -22,11 +22,17 @@
#include "options.hpp"
#include "proton/binary.hpp"
+#include "proton/codec/decoder.hpp"
#include "proton/connection.hpp"
+#include "proton/container.hpp"
#include "proton/default_container.hpp"
-#include "proton/codec/decoder.hpp"
#include "proton/delivery.hpp"
+#include "proton/message.hpp"
+#include "proton/message_id.hpp"
#include "proton/messaging_handler.hpp"
+#include "proton/receiver_options.hpp"
+#include "proton/sender.hpp"
+#include "proton/thread_safe.hpp"
#include "proton/tracker.hpp"
#include "proton/value.hpp"
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[21/30] qpid-proton git commit: PROTON-1374: update versions to
0.17.0-SNAPSHOT on master
Posted by ac...@apache.org.
PROTON-1374: update versions to 0.17.0-SNAPSHOT on master
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/a2465276
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/a2465276
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/a2465276
Branch: refs/heads/go1
Commit: a2465276f1e115d8a516b3b725ab57bcc2aed6b2
Parents: 6a6511d
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 15:17:31 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 15:17:31 2016 +0000
----------------------------------------------------------------------
examples/engine/java/pom.xml | 2 +-
examples/java/messenger/pom.xml | 2 +-
examples/java/reactor/pom.xml | 2 +-
pom.xml | 2 +-
proton-c/bindings/python/docs/conf.py | 4 ++--
proton-j/pom.xml | 2 +-
tests/pom.xml | 2 +-
version.txt | 2 +-
8 files changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/examples/engine/java/pom.xml
----------------------------------------------------------------------
diff --git a/examples/engine/java/pom.xml b/examples/engine/java/pom.xml
index 5218f2b..bf334b0 100644
--- a/examples/engine/java/pom.xml
+++ b/examples/engine/java/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-project</artifactId>
- <version>0.16.0-SNAPSHOT</version>
+ <version>0.17.0-SNAPSHOT</version>
<relativePath>../../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/examples/java/messenger/pom.xml
----------------------------------------------------------------------
diff --git a/examples/java/messenger/pom.xml b/examples/java/messenger/pom.xml
index 0d50bf8..a23a4a3 100644
--- a/examples/java/messenger/pom.xml
+++ b/examples/java/messenger/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-project</artifactId>
- <version>0.16.0-SNAPSHOT</version>
+ <version>0.17.0-SNAPSHOT</version>
<relativePath>../../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/examples/java/reactor/pom.xml
----------------------------------------------------------------------
diff --git a/examples/java/reactor/pom.xml b/examples/java/reactor/pom.xml
index aa5c47f..3ca3ec3 100644
--- a/examples/java/reactor/pom.xml
+++ b/examples/java/reactor/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-project</artifactId>
- <version>0.16.0-SNAPSHOT</version>
+ <version>0.17.0-SNAPSHOT</version>
<relativePath>../../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 1f2e8af..7391713 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
<groupId>org.apache.qpid</groupId>
<artifactId>proton-project</artifactId>
- <version>0.16.0-SNAPSHOT</version>
+ <version>0.17.0-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/proton-c/bindings/python/docs/conf.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/docs/conf.py b/proton-c/bindings/python/docs/conf.py
index 9e51595..cae646c 100644
--- a/proton-c/bindings/python/docs/conf.py
+++ b/proton-c/bindings/python/docs/conf.py
@@ -48,9 +48,9 @@ copyright = u'2015, Apache Qpid'
# built documents.
#
# The short X.Y version.
-version = '0.16.0'
+version = '0.17.0'
# The full version, including alpha/beta/rc tags.
-release = '0.16.0-SNAPSHOT'
+release = '0.17.0-SNAPSHOT'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/proton-j/pom.xml
----------------------------------------------------------------------
diff --git a/proton-j/pom.xml b/proton-j/pom.xml
index da7fb38..167bf6e 100644
--- a/proton-j/pom.xml
+++ b/proton-j/pom.xml
@@ -19,7 +19,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-project</artifactId>
- <version>0.16.0-SNAPSHOT</version>
+ <version>0.17.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/tests/pom.xml
----------------------------------------------------------------------
diff --git a/tests/pom.xml b/tests/pom.xml
index eb9d717..c01089f 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.qpid</groupId>
<artifactId>proton-project</artifactId>
- <version>0.16.0-SNAPSHOT</version>
+ <version>0.17.0-SNAPSHOT</version>
</parent>
<description>The Proton python system tests execute against the Java or C implementation, using Maven (via this pom) and CMake/CTest respectively.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a2465276/version.txt
----------------------------------------------------------------------
diff --git a/version.txt b/version.txt
index e466c4e..636e47c 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-0.16.0-SNAPSHOT
+0.17.0-SNAPSHOT
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[13/30] qpid-proton git commit: PROTON-1373: C++ API doc improvements
Posted by ac...@apache.org.
PROTON-1373: C++ API doc improvements
- Fix all warnings
- Expose C++11 API elements
- Improve presentation in class list
- Some simple corrections
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/bea61733
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/bea61733
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/bea61733
Branch: refs/heads/go1
Commit: bea617333ec36a97fc3079375d2574ea28de6b7e
Parents: 1c7e70a
Author: Justin Ross <jr...@apache.org>
Authored: Wed Dec 7 18:29:35 2016 -0800
Committer: Justin Ross <jr...@apache.org>
Committed: Wed Dec 7 18:29:35 2016 -0800
----------------------------------------------------------------------
proton-c/bindings/cpp/docs/user.doxygen.in | 2 +-
.../cpp/include/proton/codec/encoder.hpp | 4 ++--
.../bindings/cpp/include/proton/container.hpp | 9 +++++++--
.../cpp/include/proton/default_container.hpp | 4 ++++
.../bindings/cpp/include/proton/endpoint.hpp | 5 +++--
.../cpp/include/proton/error_condition.hpp | 4 +++-
.../bindings/cpp/include/proton/function.hpp | 14 ++++++++------
.../cpp/include/proton/internal/type_traits.hpp | 8 ++++----
.../include/proton/io/container_impl_base.hpp | 20 ++++++++++----------
proton-c/bindings/cpp/include/proton/sasl.hpp | 2 ++
.../bindings/cpp/include/proton/thread_safe.hpp | 7 ++++++-
proton-c/bindings/cpp/include/proton/url.hpp | 2 +-
12 files changed, 51 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/docs/user.doxygen.in
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/docs/user.doxygen.in b/proton-c/bindings/cpp/docs/user.doxygen.in
index 8ec4e47..a56eb98 100644
--- a/proton-c/bindings/cpp/docs/user.doxygen.in
+++ b/proton-c/bindings/cpp/docs/user.doxygen.in
@@ -43,7 +43,7 @@ ALPHABETICAL_INDEX = NO
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
-PREDEFINED = protected=private PN_CPP_EXTERN= PN_CPP_OVERRIDE=
+PREDEFINED = protected=private PN_CPP_EXTERN= PN_CPP_OVERRIDE= PN_CPP_HAS_CPP11=1 PN_CPP_HAS_SHARED_PTR=1 PN_CPP_HAS_UNIQUE_PTR=1 PN_CPP_HAS_LONG_LONG=1 PN_CPP_HAS_NULLPTR=1 PN_CPP_HAS_RVALUE_REFERENCES=1 PN_CPP_HAS_OVERRIDE=override PN_CPP_HAS_EXPLICIT_CONVERSIONS=1 PN_CPP_HAS_DEFAULTED_FUNCTIONS=1 PN_CPP_HAS_DELETED_FUNCTIONS=1 PN_CPP_HAS_STD_FUNCTION=1 PN_CPP_HAS_CHRONO=1
EXCLUDE_SYMBOLS = internal internal::*
# Configuration options related to warning and progress messages
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/codec/encoder.hpp b/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
index 24de309..222e95b 100644
--- a/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
+++ b/proton-c/bindings/cpp/include/proton/codec/encoder.hpp
@@ -38,8 +38,8 @@ class value_base;
namespace codec {
-/// **Experimental** - Stream-like encoder from AMQP bytes to C++
-/// values.
+/// **Experimental** - Stream-like encoder from C++ values to AMQP
+/// bytes.
///
/// For internal use only.
///
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/container.hpp b/proton-c/bindings/cpp/include/proton/container.hpp
index bc3a104..0c40f3d 100644
--- a/proton-c/bindings/cpp/include/proton/container.hpp
+++ b/proton-c/bindings/cpp/include/proton/container.hpp
@@ -46,8 +46,12 @@ namespace proton {
/// messages.
class PN_CPP_CLASS_EXTERN container {
public:
+ /// Create a container.
PN_CPP_EXTERN container(messaging_handler& h, const std::string& id="");
+
+ /// Create a container.
PN_CPP_EXTERN container(const std::string& id="");
+
PN_CPP_EXTERN ~container();
/// Connect to `url` and send an open request to the remote peer.
@@ -205,8 +209,9 @@ class PN_CPP_CLASS_EXTERN container {
/// @copydoc receiver_options
PN_CPP_EXTERN class receiver_options receiver_options() const;
- /// Schedule a function to be called after the duration.
- /// C++03 compatible, for C++11 use the schedule(duration, std::function<void()>)
+ /// Schedule a function to be called after the duration. C++03
+ /// compatible, for C++11 use schedule(duration,
+ /// std::function<void()>)
PN_CPP_EXTERN void schedule(duration, void_function0&);
#if PN_CPP_HAS_STD_FUNCTION
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/default_container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/default_container.hpp b/proton-c/bindings/cpp/include/proton/default_container.hpp
index 3b3fce9..0f245a0 100644
--- a/proton-c/bindings/cpp/include/proton/default_container.hpp
+++ b/proton-c/bindings/cpp/include/proton/default_container.hpp
@@ -23,7 +23,11 @@
*/
namespace proton {
+
+/// @cond INTERNAL
typedef class container default_container;
+/// @endcond
+
} // proton
#endif // PROTON_DEFAULT_CONTAINER_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/endpoint.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/endpoint.hpp b/proton-c/bindings/cpp/include/proton/endpoint.hpp
index 36ac981..b041906 100644
--- a/proton-c/bindings/cpp/include/proton/endpoint.hpp
+++ b/proton-c/bindings/cpp/include/proton/endpoint.hpp
@@ -62,13 +62,14 @@ PN_CPP_CLASS_EXTERN endpoint {
#if PN_CPP_HAS_DEFAULTED_FUNCTIONS
// Make everything explicit for C++11 compilers
-
+
+ /// @cond INTERNAL
endpoint() = default;
endpoint& operator=(const endpoint&) = default;
endpoint& operator=(endpoint&&) = default;
-
endpoint(const endpoint&) = default;
endpoint(endpoint&&) = default;
+ /// @endcond
#endif
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/error_condition.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/error_condition.hpp b/proton-c/bindings/cpp/include/proton/error_condition.hpp
index fb39332..fb0d461 100644
--- a/proton-c/bindings/cpp/include/proton/error_condition.hpp
+++ b/proton-c/bindings/cpp/include/proton/error_condition.hpp
@@ -55,16 +55,18 @@ class error_condition {
PN_CPP_EXTERN error_condition(std::string name, std::string description, proton::value properties);
#if PN_CPP_HAS_DEFAULTED_FUNCTIONS
+ /// @cond INTERNAL
error_condition(const error_condition&) = default;
error_condition(error_condition&&) = default;
error_condition& operator=(const error_condition&) = default;
error_condition& operator=(error_condition&&) = default;
+ /// @endcond
#endif
+#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
/// If you are using a C++11 compiler, you may use an
/// error_condition in boolean contexts. The expression will be
/// true if the error_condition is set.
-#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
PN_CPP_EXTERN explicit operator bool() const;
#endif
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/function.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/function.hpp b/proton-c/bindings/cpp/include/proton/function.hpp
index 4fbbe16..ac756c7 100644
--- a/proton-c/bindings/cpp/include/proton/function.hpp
+++ b/proton-c/bindings/cpp/include/proton/function.hpp
@@ -22,14 +22,16 @@
namespace proton {
-/// A C++03 compatible void no-argument callback function object, used by
-/// container::schedule() and event_loop::inject()
-/// In C++11 you can use std::bind, std::function or a void-no-argument lambda instead.
+/// A C++03 compatible void no-argument callback function object.
///
-/// void_function0 is passed by reference, so instances of sub-classes do not
-/// have to be heap allocated. Once passed, the instance must not be deleted until
-/// its operator() is called or the container has stopped.
+/// Used by container::schedule() and event_loop::inject(). In C++11
+/// you can use std::bind, std::function or a void-no-argument lambda
+/// instead.
///
+/// void_function0 is passed by reference, so instances of sub-classes
+/// do not have to be heap allocated. Once passed, the instance must
+/// not be deleted until its operator() is called or the container has
+/// stopped.
class void_function0 {
public:
virtual ~void_function0() {}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp b/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
index 4c4c7d6..8abba55 100644
--- a/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
+++ b/proton-c/bindings/cpp/include/proton/internal/type_traits.hpp
@@ -22,10 +22,10 @@
*
*/
-/// Type traits for mapping between AMQP and C++ types.
-///
-/// Also provides workarounds for missing type_traits classes on older
-/// C++ compilers.
+// Type traits for mapping between AMQP and C++ types.
+//
+// Also provides workarounds for missing type_traits classes on older
+// C++ compilers.
#include "./config.hpp"
#include "../types_fwd.hpp"
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp b/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
index 0aeed78..a04b4ff 100644
--- a/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
+++ b/proton-c/bindings/cpp/include/proton/io/container_impl_base.hpp
@@ -45,54 +45,54 @@ class container_impl_base : public standard_container {
using standard_container::open_receiver;
using standard_container::open_sender;
- /// @copydoc container::client_connection_options
+ /// @see proton::container::client_connection_options
void client_connection_options(const connection_options & opts) {
store(client_copts_, opts);
}
- /// @copydoc container::client_connection_options
+ /// @see proton::container::client_connection_options
connection_options client_connection_options() const {
return load(client_copts_);
}
- /// @copydoc container::server_connection_options
+ /// @see proton::container::server_connection_options
void server_connection_options(const connection_options & opts) {
store(server_copts_, opts);
}
- /// @copydoc container::server_connection_options
+ /// @see proton::container::server_connection_options
connection_options server_connection_options() const {
return load(server_copts_);
}
- /// @copydoc container::sender_options
+ /// @see proton::container::sender_options
void sender_options(const class sender_options & opts) {
store(sender_opts_, opts);
}
- /// @copydoc container::sender_options
+ /// @see proton::container::sender_options
class sender_options sender_options() const {
return load(sender_opts_);
}
- /// @copydoc container::receiver_options
+ /// @see proton::container::receiver_options
void receiver_options(const class receiver_options & opts) {
store(receiver_opts_, opts);
}
- /// @copydoc container::receiver_options
+ /// @see proton::container::receiver_options
class receiver_options receiver_options() const {
return load(receiver_opts_);
}
- /// @copydoc container::open_sender
+ /// @see proton::container::open_sender
returned<sender> open_sender(
const std::string &url, const class sender_options &opts, const connection_options &copts)
{
return open_link<sender, class sender_options>(url, opts, copts, &connection::open_sender);
}
- /// @copydoc container::open_receiver
+ /// @see proton::container::open_receiver
returned<receiver> open_receiver(
const std::string &url, const class receiver_options &opts, const connection_options &copts)
{
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/sasl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/sasl.hpp b/proton-c/bindings/cpp/include/proton/sasl.hpp
index 137aa28..3857f06 100644
--- a/proton-c/bindings/cpp/include/proton/sasl.hpp
+++ b/proton-c/bindings/cpp/include/proton/sasl.hpp
@@ -46,7 +46,9 @@ class sasl {
sasl& operator=(sasl&&) = delete;
#endif
#if PN_CPP_HAS_DEFAULTED_FUNCTIONS
+ /// @cond INTERNAL
sasl(sasl&&) = default;
+ /// @endcond
#endif
/// The result of the SASL negotiation.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/thread_safe.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/thread_safe.hpp b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
index 7851245..28aa3a6 100644
--- a/proton-c/bindings/cpp/include/proton/thread_safe.hpp
+++ b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
@@ -113,7 +113,7 @@ class thread_safe : private internal::pn_ptr_base, private internal::endpoint_tr
/// @endcond
};
-// return value for functions returning a thread_safe<> object.
+// A return value for functions returning a thread_safe<> object.
//
// Temporary return value only, you should release() to get a plain pointer or
// assign to a smart pointer type.
@@ -161,12 +161,17 @@ class returned : private internal::endpoint_traits<T>
template <class T> returned<T> make_thread_safe(const T& obj) { return returned<T>(obj); }
#if PN_CPP_HAS_CPP11
+
+/// Create a thread-safe shared_ptr to `obj`.
template <class T> std::shared_ptr<thread_safe<T> > make_shared_thread_safe(const T& obj) {
return make_thread_safe(obj);
}
+
+/// Create a thread-safe unique_ptr to `obj`.
template <class T> std::unique_ptr<thread_safe<T> > make_unique_thread_safe(const T& obj) {
return make_thread_safe(obj);
}
+
#endif
} // proton
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/bea61733/proton-c/bindings/cpp/include/proton/url.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/url.hpp b/proton-c/bindings/cpp/include/proton/url.hpp
index 52e8d43..b94b24d 100644
--- a/proton-c/bindings/cpp/include/proton/url.hpp
+++ b/proton-c/bindings/cpp/include/proton/url.hpp
@@ -41,7 +41,7 @@ PN_CPP_CLASS_EXTERN url_error : public error {
/// @endcond
};
-/// A Proton URL.
+/// A URL parser.
///
/// Proton URLs take the form
/// `<scheme>://<username>:<password>@<host>:<port>/<path>`.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[29/30] qpid-proton git commit: NO-JIRA: Go example error handling
and logging improvements
Posted by ac...@apache.org.
NO-JIRA: Go example error handling and logging improvements
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/4abf23af
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/4abf23af
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/4abf23af
Branch: refs/heads/go1
Commit: 4abf23afa65fea25efa5d56e11d58af9d1ec98bc
Parents: cd6ecc5
Author: Alan Conway <ac...@redhat.com>
Authored: Tue Jan 3 16:52:44 2017 -0500
Committer: Alan Conway <ac...@redhat.com>
Committed: Tue Jan 3 16:52:44 2017 -0500
----------------------------------------------------------------------
examples/go/electron/broker.go | 23 ++++++++------------
examples/go/electron/receive.go | 12 +++++-----
examples/go/electron/send.go | 4 ++--
.../go/src/qpid.apache.org/electron/endpoint.go | 4 ++++
.../go/src/qpid.apache.org/proton/wrappers.go | 8 +++----
5 files changed, 26 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4abf23af/examples/go/electron/broker.go
----------------------------------------------------------------------
diff --git a/examples/go/electron/broker.go b/examples/go/electron/broker.go
index d698838..2078d1e 100644
--- a/examples/go/electron/broker.go
+++ b/examples/go/electron/broker.go
@@ -55,7 +55,7 @@ func main() {
flag.Parse()
b := &broker{
queues: util.MakeQueues(*qsize),
- container: electron.NewContainer(fmt.Sprintf("broker[%s]", os.Getpid())),
+ container: electron.NewContainer(fmt.Sprintf("broker[%v]", os.Getpid())),
acks: make(chan electron.Outcome),
sent: make(chan sentMessage),
}
@@ -113,28 +113,23 @@ type connection struct {
// and start goroutines to service them.
func (c *connection) run() {
for in := range c.connection.Incoming() {
+ util.Debugf("incoming %v", in)
+
switch in := in.(type) {
case *electron.IncomingSender:
- if in.Source() == "" {
- in.Reject(fmt.Errorf("no source"))
- } else {
- go c.sender(in.Accept().(electron.Sender))
- }
+ s := in.Accept().(electron.Sender)
+ go c.sender(s)
case *electron.IncomingReceiver:
- if in.Target() == "" {
- in.Reject(fmt.Errorf("no target"))
- } else {
- in.SetPrefetch(true)
- in.SetCapacity(*credit) // Pre-fetch up to credit window.
- go c.receiver(in.Accept().(electron.Receiver))
- }
+ in.SetPrefetch(true)
+ in.SetCapacity(*credit) // Pre-fetch up to credit window.
+ r := in.Accept().(electron.Receiver)
+ go c.receiver(r)
default:
in.Accept() // Accept sessions unconditionally
}
- util.Debugf("incoming: %v", in)
}
util.Debugf("incoming closed: %v", c.connection)
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4abf23af/examples/go/electron/receive.go
----------------------------------------------------------------------
diff --git a/examples/go/electron/receive.go b/examples/go/electron/receive.go
index 7a505d8..3bbe327 100644
--- a/examples/go/electron/receive.go
+++ b/examples/go/electron/receive.go
@@ -57,7 +57,7 @@ func main() {
var wait sync.WaitGroup // Used by main() to wait for all goroutines to end.
wait.Add(len(urls)) // Wait for one goroutine per URL.
- container := electron.NewContainer(fmt.Sprintf("receive[%s]", os.Getpid()))
+ container := electron.NewContainer(fmt.Sprintf("receive[%v]", os.Getpid()))
connections := make(chan electron.Connection, len(urls)) // Connections to close on exit
// Start a goroutine to for each URL to receive messages and send them to the messages channel.
@@ -81,12 +81,13 @@ func main() {
// Loop receiving messages and sending them to the main() goroutine
for {
- if rm, err := r.Receive(); err != nil {
- util.Debugf("closed %v: %v", urlStr, err)
- return
- } else {
+ if rm, err := r.Receive(); err == nil {
rm.Accept()
messages <- rm.Message
+ } else if err == electron.Closed {
+ return
+ } else {
+ log.Fatalf("receive error %v: %v", urlStr, err)
}
}
}(urlStr)
@@ -103,6 +104,7 @@ func main() {
fmt.Printf("Received %d messages\n", *count)
// Close all connections, this will interrupt goroutines blocked in Receiver.Receive()
+ // with electron.Closed.
for i := 0; i < len(urls); i++ {
c := <-connections
util.Debugf("close %s", c)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4abf23af/examples/go/electron/send.go
----------------------------------------------------------------------
diff --git a/examples/go/electron/send.go b/examples/go/electron/send.go
index 4ea93ec..68b8b2e 100644
--- a/examples/go/electron/send.go
+++ b/examples/go/electron/send.go
@@ -56,7 +56,7 @@ func main() {
var wait sync.WaitGroup
wait.Add(len(urls)) // Wait for one goroutine per URL.
- container := electron.NewContainer(fmt.Sprintf("send[%s]", os.Getpid()))
+ container := electron.NewContainer(fmt.Sprintf("send[%v]", os.Getpid()))
connections := make(chan electron.Connection, len(urls)) // Connctions to close on exit
// Start a goroutine for each URL to send messages.
@@ -93,7 +93,7 @@ func main() {
for i := 0; i < expect; i++ {
out := <-sentChan // Outcome of async sends.
if out.Error != nil {
- util.Debugf("acknowledgement[%v] %v error: %v\n", i, out.Value, out.Error)
+ log.Fatalf("acknowledgement[%v] %v error: %v\n", i, out.Value, out.Error)
} else {
util.Debugf("acknowledgement[%v] %v (%v)\n", i, out.Value, out.Status)
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4abf23af/proton-c/bindings/go/src/qpid.apache.org/electron/endpoint.go
----------------------------------------------------------------------
diff --git a/proton-c/bindings/go/src/qpid.apache.org/electron/endpoint.go b/proton-c/bindings/go/src/qpid.apache.org/electron/endpoint.go
index ca93e5b..a6ce6c8 100644
--- a/proton-c/bindings/go/src/qpid.apache.org/electron/endpoint.go
+++ b/proton-c/bindings/go/src/qpid.apache.org/electron/endpoint.go
@@ -29,6 +29,10 @@ import (
// was closed cleanly.
var Closed = io.EOF
+// EOF is an alias for io.EOF. It is returned as an error when an endpoint
+// was closed cleanly.
+var EOF = io.EOF
+
// Endpoint is the local end of a communications channel to the remote peer
// process. The following interface implement Endpoint: Connection, Session,
// Sender and Receiver.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/4abf23af/proton-c/bindings/go/src/qpid.apache.org/proton/wrappers.go
----------------------------------------------------------------------
diff --git a/proton-c/bindings/go/src/qpid.apache.org/proton/wrappers.go b/proton-c/bindings/go/src/qpid.apache.org/proton/wrappers.go
index 4d55e4f..b6386b8 100644
--- a/proton-c/bindings/go/src/qpid.apache.org/proton/wrappers.go
+++ b/proton-c/bindings/go/src/qpid.apache.org/proton/wrappers.go
@@ -169,14 +169,14 @@ type Endpoint interface {
RemoteCondition() Condition
// Human readable name
String() string
- // Human readable endpoint type "link", "session" etc.
+ // Human readable endpoint type "sender-link", "session" etc.
Type() string
}
// CloseError sets an error condition (if err != nil) on an endpoint and closes
// the endpoint if not already closed
func CloseError(e Endpoint, err error) {
- if err != nil {
+ if err != nil && !e.Condition().IsSet() {
e.Condition().SetError(err)
}
e.Close()
@@ -262,9 +262,9 @@ func (l Link) String() string {
func (l Link) Type() string {
if l.IsSender() {
- return "link(sender)"
+ return "sender-link"
} else {
- return "link(receiver)"
+ return "receiver-link"
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[25/30] qpid-proton git commit: PROTON-1375: Don't use default
promoted parameter to va_start
Posted by ac...@apache.org.
PROTON-1375: Don't use default promoted parameter to va_start
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/79d06f07
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/79d06f07
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/79d06f07
Branch: refs/heads/go1
Commit: 79d06f0705a973a00fc66283462fa12ad729a708
Parents: ce8db5a
Author: Andrew Stitcher <as...@apache.org>
Authored: Wed Dec 14 15:12:23 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Wed Dec 14 15:12:23 2016 -0500
----------------------------------------------------------------------
proton-c/src/tests/object.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/79d06f07/proton-c/src/tests/object.c
----------------------------------------------------------------------
diff --git a/proton-c/src/tests/object.c b/proton-c/src/tests/object.c
index 4008fc6..8a1d00e 100644
--- a/proton-c/src/tests/object.c
+++ b/proton-c/src/tests/object.c
@@ -50,14 +50,14 @@ static pn_list_t *build_list(size_t capacity, ...)
return result;
}
-static pn_map_t *build_map(size_t capacity, float load_factor, ...)
+static pn_map_t *build_map(float load_factor, size_t capacity, ...)
{
pn_map_t *result = pn_map(PN_OBJECT, PN_OBJECT, capacity, load_factor);
va_list ap;
void *prev = NULL;
- va_start(ap, load_factor);
+ va_start(ap, capacity);
int count = 0;
while (true) {
void *arg = va_arg(ap, void *);
@@ -397,7 +397,7 @@ static void test_build_list(void)
static void test_build_map(void)
{
- pn_map_t *m = build_map(0, 0.75,
+ pn_map_t *m = build_map(0.75, 0,
pn_string("key"),
pn_string("value"),
pn_string("key2"),
@@ -421,7 +421,7 @@ static void test_build_map(void)
static void test_build_map_odd(void)
{
- pn_map_t *m = build_map(0, 0.75,
+ pn_map_t *m = build_map(0.75, 0,
pn_string("key"),
pn_string("value"),
pn_string("key2"),
@@ -767,24 +767,24 @@ void test_map_inspect(void)
// note that when there is more than one entry in a map, the order
// of the entries is dependent on the hashes involved, it will be
// deterministic though
- pn_map_t *m = build_map(0, 0.75, END);
+ pn_map_t *m = build_map(0.75, 0, END);
test_inspect(m, "{}");
pn_free(m);
- m = build_map(0, 0.75,
+ m = build_map(0.75, 0,
pn_string("key"), pn_string("value"),
END);
test_inspect(m, "{\"key\": \"value\"}");
pn_free(m);
- m = build_map(0, 0.75,
+ m = build_map(0.75, 0,
pn_string("k1"), pn_string("v1"),
pn_string("k2"), pn_string("v2"),
END);
test_inspect(m, "{\"k1\": \"v1\", \"k2\": \"v2\"}");
pn_free(m);
- m = build_map(0, 0.75,
+ m = build_map(0.75, 0,
pn_string("k1"), pn_string("v1"),
pn_string("k2"), pn_string("v2"),
pn_string("k3"), pn_string("v3"),
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[22/30] qpid-proton git commit: PROTON-1374: update the .so version
to 11 on master for 0.17.0
Posted by ac...@apache.org.
PROTON-1374: update the .so version to 11 on master for 0.17.0
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/2389a217
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/2389a217
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/2389a217
Branch: refs/heads/go1
Commit: 2389a2179e39fd53912a3e28369b1b409d94c996
Parents: a246527
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 15:18:28 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 15:18:28 2016 +0000
----------------------------------------------------------------------
proton-c/soversion.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/2389a217/proton-c/soversion.cmake
----------------------------------------------------------------------
diff --git a/proton-c/soversion.cmake b/proton-c/soversion.cmake
index 58cc6f5..665edca 100644
--- a/proton-c/soversion.cmake
+++ b/proton-c/soversion.cmake
@@ -1,2 +1,2 @@
-set (PN_LIB_SOMAJOR 10)
+set (PN_LIB_SOMAJOR 11)
set (PN_LIB_SOMINOR "0.0")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[26/30] qpid-proton git commit: PROTON-1376: Serialize
re-construction of generated files for Windows
Posted by ac...@apache.org.
PROTON-1376: Serialize re-construction of generated files for Windows
Windows builds wrongly regenerate files for libraries qpid-proton and
qpid-proton-core. Regeneration creates file churn that sometimes
breaks builds. This patch introduces a phony dependency so that
the generated file reconstruction does not cause a problem.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/9377d859
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/9377d859
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/9377d859
Branch: refs/heads/go1
Commit: 9377d859b5096dfeb3e00c935610784ecbc3c04f
Parents: 79d06f0
Author: Chuck Rolke <cr...@redhat.com>
Authored: Tue Dec 20 13:48:39 2016 -0500
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Tue Dec 20 13:48:39 2016 -0500
----------------------------------------------------------------------
proton-c/CMakeLists.txt | 8 ++++++++
1 file changed, 8 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9377d859/proton-c/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
index 5f26d43..f674eee 100644
--- a/proton-c/CMakeLists.txt
+++ b/proton-c/CMakeLists.txt
@@ -538,6 +538,14 @@ add_library(
)
add_dependencies(qpid-proton generated_c_files)
+if (MSVC)
+ # Add a phony dependency for Windows builds to serialize creation
+ # of generated files. See issue PROTON-1376.
+ # When a Windows build creates src/encodings.h and src/protocol.h
+ # only once then this can be removed.
+ add_dependencies(qpid-proton qpid-proton-core)
+endif (MSVC)
+
target_link_libraries (qpid-proton ${UUID_LIB} ${SSL_LIB} ${SASL_LIB} ${TIME_LIB} ${PLATFORM_LIBS})
set_target_properties (
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[23/30] qpid-proton git commit: PROTON-1350: Install proton-c core
library - This was missed from the initial PROTON-1350 commit
Posted by ac...@apache.org.
PROTON-1350: Install proton-c core library
- This was missed from the initial PROTON-1350 commit
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/16da86eb
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/16da86eb
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/16da86eb
Branch: refs/heads/go1
Commit: 16da86ebbe08d64e32408c97cc5016ca458351af
Parents: 2389a21
Author: Andrew Stitcher <as...@apache.org>
Authored: Thu Dec 8 15:17:46 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Thu Dec 8 15:17:46 2016 -0500
----------------------------------------------------------------------
proton-c/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/16da86eb/proton-c/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
index ffc6e10..5f26d43 100644
--- a/proton-c/CMakeLists.txt
+++ b/proton-c/CMakeLists.txt
@@ -554,7 +554,7 @@ if (MSVC)
endif(MSVC)
# Install executables and libraries
-install (TARGETS qpid-proton
+install (TARGETS qpid-proton qpid-proton-core
EXPORT proton
RUNTIME DESTINATION bin
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[06/30] qpid-proton git commit: PROTON-1367: Clean up and reorganize
the C API docs
Posted by ac...@apache.org.
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/connection_driver.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/connection_driver.h b/proton-c/include/proton/connection_driver.h
index af08160..9db8233 100644
--- a/proton-c/include/proton/connection_driver.h
+++ b/proton-c/include/proton/connection_driver.h
@@ -1,5 +1,5 @@
#ifndef PROTON_CONNECTION_DRIVER_H
-#define PROTON_CONNECTION_DRIVER_H
+#define PROTON_CONNECTION_DRIVER_H 1
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,51 +22,55 @@
/**
* @file
- * **Experimental**: Low-level IO integration
*
- * @defgroup connection_driver Connection Driver
+ * **Experimental** - Low-level IO integration
*
- * **Experimental**: Low-level IO integration
- *
- * Associate an @ref engine with AMQP byte-streams from any source.
+ * Associate a @ref connection and @ref transport with AMQP byte
+ * streams from any source.
*
* - process AMQP-encoded bytes from some input byte stream
* - generate ::pn_event_t events for your application to handle
* - encode resulting AMQP output bytes for some output byte stream
*
- * The pn_connection_driver_() functions provide a simplified API and extra
- * logic to use ::pn_connection_t and ::pn_transport_t as a unit. You can also
- * access them directly for features that do not have pn_connection_driver_()
- * functions
+ * The pn_connection_driver_() functions provide a simplified API and
+ * extra logic to use ::pn_connection_t and ::pn_transport_t as a
+ * unit. You can also access them directly for features that do not
+ * have pn_connection_driver_() functions.
*
* The driver buffers events and data, you should run it until
- * pn_connection_driver_finished() is true, to ensure all reading, writing and
- * event handling (including ERROR and FINAL events) is finished.
+ * pn_connection_driver_finished() is true, to ensure all reading,
+ * writing and event handling (including ERROR and FINAL events) is
+ * finished.
*
* ## Error handling
*
- * The pn_connection_driver_*() functions do not return an error code. IO errors set
- * the transport condition and are returned as a PN_TRANSPORT_ERROR. The integration
- * code can set errors using pn_connection_driver_errorf()
+ * The pn_connection_driver_*() functions do not return an error
+ * code. IO errors set the transport condition and are returned as a
+ * PN_TRANSPORT_ERROR. The integration code can set errors using
+ * pn_connection_driver_errorf().
*
* ## IO patterns
*
- * This API supports asynchronous, proactive, non-blocking and reactive IO. An
- * integration does not have to follow the dispatch-read-write sequence above,
- * but note that you should handle all available events before calling
- * pn_connection_driver_read_buffer() and check that `size` is non-zero before
- * starting a blocking or asynchronous read call. A `read` started while there
- * are unprocessed CLOSE events in the buffer may never complete.
+ * This API supports asynchronous, proactive, non-blocking and
+ * reactive IO. An integration does not have to follow the
+ * dispatch-read-write sequence above, but note that you should handle
+ * all available events before calling
+ * pn_connection_driver_read_buffer() and check that `size` is
+ * non-zero before starting a blocking or asynchronous read call. A
+ * `read` started while there are unprocessed CLOSE events in the
+ * buffer may never complete.
*
- * AMQP is a full-duplex, asynchronous protocol. The "read" and "write" sides of
- * an AMQP connection can close separately
+ * AMQP is a full-duplex, asynchronous protocol. The "read" and
+ * "write" sides of an AMQP connection can close separately.
*
* ## Thread safety
*
- * The @ref connection_driver types are not thread safe, but each connection and its
- * associated types forms an independent unit. Different connections can be
- * processed concurrently by different threads.
+ * The @ref connection_driver types are not thread safe, but each
+ * connection and its associated types forms an independent
+ * unit. Different connections can be processed concurrently by
+ * different threads.
*
+ * @addtogroup connection_driver
* @{
*/
@@ -81,7 +85,7 @@ extern "C" {
#endif
/**
- * Struct containing the 3 elements needed to driver AMQP IO and events, aggregated as a unit.
+ * The elements needed to drive AMQP IO and events.
*/
typedef struct pn_connection_driver_t {
pn_connection_t *connection;
@@ -235,10 +239,13 @@ PN_EXTERN void pn_connection_driver_vlogf(pn_connection_driver_t *d, const char
* else return NULL
*/
PN_EXTERN pn_connection_driver_t* pn_event_batch_connection_driver(pn_event_batch_t *batch);
-///@}
+
+/**
+ * @}
+ */
#ifdef __cplusplus
}
#endif
-#endif // PROTON_CONNECTION_DRIVER_H
+#endif /* connection_driver.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/delivery.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/delivery.h b/proton-c/include/proton/delivery.h
index 4225352..dbb73bf 100644
--- a/proton-c/include/proton/delivery.h
+++ b/proton-c/include/proton/delivery.h
@@ -33,11 +33,8 @@ extern "C" {
/**
* @file
- * Track message delivery
*
- * @defgroup delivery Delivery
- * Track message delivery
- * @ingroup engine
+ * @addtogroup delivery
* @{
*/
@@ -70,6 +67,7 @@ PN_EXTERN pn_delivery_t *pn_delivery(pn_link_t *link, pn_delivery_tag_t tag);
/**
* @deprecated
+ *
* Get the application context that is associated with a delivery object.
*
* The application context for a delivery may be set using
@@ -82,6 +80,7 @@ PN_EXTERN void *pn_delivery_get_context(pn_delivery_t *delivery);
/**
* @deprecated
+ *
* Set a new application context for a delivery object.
*
* The application context for a delivery object may be retrieved using
@@ -245,7 +244,7 @@ PN_EXTERN bool pn_delivery_current(pn_delivery_t *delivery);
*
* A settled delivery can never be used again.
*
- * NOTE: if pn_delivery_current(delivery) is true before the call then
+ * @note If pn_delivery_current(delivery) is true before the call then
* pn_link_advance(pn_delivery_link(deliver)) is called automatically.
*
* @param[in] delivery a delivery object
@@ -302,7 +301,8 @@ PN_EXTERN pn_delivery_t *pn_work_head(pn_connection_t *connection);
*/
PN_EXTERN pn_delivery_t *pn_work_next(pn_delivery_t *delivery);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/disposition.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/disposition.h b/proton-c/include/proton/disposition.h
index 530b738..95bfe51 100644
--- a/proton-c/include/proton/disposition.h
+++ b/proton-c/include/proton/disposition.h
@@ -33,11 +33,8 @@ extern "C" {
/**
* @file
- * Outcome of message delivery
*
- * @defgroup disposition Disposition
- * Outcome of message delivery
- * @ingroup delivery
+ * @addtogroup delivery
* @{
*/
@@ -221,7 +218,8 @@ PN_EXTERN void pn_disposition_set_undeliverable(pn_disposition_t *disposition, b
*/
PN_EXTERN pn_data_t *pn_disposition_annotations(pn_disposition_t *disposition);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/engine.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/engine.h b/proton-c/include/proton/engine.h
index b24265e..9763e07 100644
--- a/proton-c/include/proton/engine.h
+++ b/proton-c/include/proton/engine.h
@@ -23,13 +23,7 @@
*/
/**
- * @file
- *
- * The AMQP protocol engine
- *
- * @defgroup engine Engine
- *
- * Types and functions that implement the AMQP protocol
+ * @cond INTERNAL
*/
#include <proton/condition.h>
@@ -41,4 +35,8 @@
#include <proton/event.h>
#include <proton/transport.h>
+/**
+ * @endcond
+ */
+
#endif /* engine.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/error.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/error.h b/proton-c/include/proton/error.h
index 122e4b6..2986850 100644
--- a/proton-c/include/proton/error.h
+++ b/proton-c/include/proton/error.h
@@ -29,52 +29,99 @@
extern "C" {
#endif
-/** A pn_error_t has an int error `code` and some string `text` to describe the error */
+/**
+ * @file
+ *
+ * @addtogroup error
+ * @{
+ */
+
+/**
+ * An int error `code` and some string `text` to describe the error.
+ */
typedef struct pn_error_t pn_error_t;
-#define PN_OK (0)
-#define PN_EOS (-1)
-#define PN_ERR (-2)
-#define PN_OVERFLOW (-3)
-#define PN_UNDERFLOW (-4)
-#define PN_STATE_ERR (-5)
-#define PN_ARG_ERR (-6)
-#define PN_TIMEOUT (-7)
-#define PN_INTR (-8)
-#define PN_INPROGRESS (-9)
-#define PN_OUT_OF_MEMORY (-10)
-
-/** @return name of the error code. Returned pointer is to a static constant, do not delete.*/
+#define PN_OK (0) /**< No error */
+#define PN_EOS (-1) /**< End of stream */
+#define PN_ERR (-2) /**< General error */
+#define PN_OVERFLOW (-3) /**< Overflow error */
+#define PN_UNDERFLOW (-4) /**< Underflow error */
+#define PN_STATE_ERR (-5) /**< State error */
+#define PN_ARG_ERR (-6) /**< Argument error */
+#define PN_TIMEOUT (-7) /**< Timeout */
+#define PN_INTR (-8) /**< Interrupt */
+#define PN_INPROGRESS (-9) /**< In-progress */
+#define PN_OUT_OF_MEMORY (-10) /**< Out-of-momory error */
+
+/**
+ * Get the name of the error code. Returned pointer is to a static
+ * constant, do not delete.
+ */
PN_EXTERN const char *pn_code(int code);
+/**
+ * Create an error object.
+ */
PN_EXTERN pn_error_t *pn_error(void);
+
+/**
+ * Free an error object.
+ */
PN_EXTERN void pn_error_free(pn_error_t *error);
-/** Reset the error to a "no error" state with code == 0. */
+/**
+ * Reset the error to a "no error" state with code == 0.
+ */
PN_EXTERN void pn_error_clear(pn_error_t *error);
-/** Set the error code and text. Makes a copy of text. */
+/**
+ * Set the error code and text. Makes a copy of text.
+ */
PN_EXTERN int pn_error_set(pn_error_t *error, int code, const char *text);
-/** Set the code and set the text using a printf-style formatted string. */
+/**
+ * Set the code and set the text using a printf-style formatted
+ * string.
+ */
PN_EXTERN int pn_error_vformat(pn_error_t *error, int code, const char *fmt, va_list ap);
-/** Set the code and set the text using a printf-style formatted string. */
+/**
+ * Set the code and set the text using a printf-style formatted
+ * string.
+ */
PN_EXTERN int pn_error_format(pn_error_t *error, int code, const char *fmt, ...);
-/** @return the error code. */
+/**
+ * Get the the error code.
+ */
PN_EXTERN int pn_error_code(pn_error_t *error);
-/** @return the error text. Returned pointer is owned by the pn_error_t. */
+/**
+ * Get the error text. The returned pointer is owned by the
+ * pn_error_t.
+ */
PN_EXTERN const char *pn_error_text(pn_error_t *error);
+/**
+ * Copy the src error.
+ */
PN_EXTERN int pn_error_copy(pn_error_t *error, pn_error_t *src);
+/**
+ * @cond INTERNAL
+ */
#define PN_RETURN_IF_ERROR(x) \
do {\
int r = (x);\
if (r < 0) return r; \
} while (0)
+/**
+ * @endcond
+ */
+
+/**
+ * @}
+ */
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/event.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/event.h b/proton-c/include/proton/event.h
index 2280dc8..fad221b 100644
--- a/proton-c/include/proton/event.h
+++ b/proton-c/include/proton/event.h
@@ -33,17 +33,13 @@ extern "C" {
/**
* @file
- * AMQP and transport events
*
- * @defgroup event Event
- * AMQP and transport events
- * @ingroup engine
+ * @addtogroup event
* @{
*/
/**
- * An event provides notification of a state change within the
- * protocol engine's object model.
+ * Notification of a state change in the protocol engine.
*
* The AMQP endpoint state modeled by the protocol engine is captured
* by the following object types: @link pn_delivery_t Deliveries
@@ -539,8 +535,9 @@ PN_EXTERN pn_transport_t *pn_event_transport(pn_event_t *event);
PN_EXTERN pn_record_t *pn_event_attachments(pn_event_t *event);
/**
- * **Experimental**: A batch of events to handle. Call pn_event_batch_next() in
- * a loop until it returns NULL to handle them.
+ * **Experimental** - A batch of events to handle. Call
+ * pn_event_batch_next() in a loop until it returns NULL to handle
+ * them.
*/
typedef struct pn_event_batch_t pn_event_batch_t;
@@ -550,29 +547,31 @@ typedef struct pn_event_batch_t pn_event_batch_t;
*/
/**
- * **Experimental**: Remove the next event from the batch and return it. NULL
- * means the batch is empty. The returned event pointer is valid until
- * pn_event_batch_next() is called again on the same batch.
+ * **Experimental** - Remove the next event from the batch and return
+ * it. NULL means the batch is empty. The returned event pointer is
+ * valid until pn_event_batch_next() is called again on the same
+ * batch.
*/
PN_EXTERN pn_event_t *pn_event_batch_next(pn_event_batch_t *batch);
/**
- *@cond INTERNAL
+ * @cond INTERNAL
+ *
* pn_event_batch_next() can be re-implemented for different behaviors in different contextxs.
*/
struct pn_event_batch_t {
pn_event_t *(*next_event)(pn_event_batch_t *batch);
};
-
/**
- *@endcond
+ * @endcond
*/
#ifdef __cplusplus
}
#endif
-/** @}
+/**
+ * @}
*/
#endif /* event.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/handlers.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/handlers.h b/proton-c/include/proton/handlers.h
index bfa68fc..6518e87 100644
--- a/proton-c/include/proton/handlers.h
+++ b/proton-c/include/proton/handlers.h
@@ -33,11 +33,7 @@ extern "C" {
/**
* @file
*
- * Reactor API for proton.
- *
- * @defgroup handlers Handlers
- * Reactor API for proton.
- * @{
+ * @cond INTERNAL
*/
typedef pn_handler_t pn_handshaker_t;
@@ -48,7 +44,8 @@ PNX_EXTERN pn_handshaker_t *pn_handshaker(void);
PNX_EXTERN pn_iohandler_t *pn_iohandler(void);
PNX_EXTERN pn_flowcontroller_t *pn_flowcontroller(int window);
-/** @}
+/**
+ * @endcond
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/import_export.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/import_export.h b/proton-c/include/proton/import_export.h
index 0010126..6547a07 100644
--- a/proton-c/include/proton/import_export.h
+++ b/proton-c/include/proton/import_export.h
@@ -22,6 +22,10 @@
*
*/
+/**
+ * @cond INTERNAL
+ */
+
//
// Compiler specific mechanisms for managing the import and export of
// symbols between shared objects.
@@ -59,5 +63,8 @@
# define PNX_EXTERN PN_IMPORT
#endif
+/**
+ * @endcond
+ */
#endif /* import_export.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/link.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/link.h b/proton-c/include/proton/link.h
index 3ab811c..aeb3b36 100644
--- a/proton-c/include/proton/link.h
+++ b/proton-c/include/proton/link.h
@@ -36,11 +36,8 @@ extern "C" {
/**
* @file
- * One-way message link
*
- * @defgroup link Link
- * One-way message link
- * @ingroup engine
+ * @addtogroup link
* @{
*/
@@ -85,6 +82,7 @@ PN_EXTERN void pn_link_free(pn_link_t *link);
/**
* @deprecated
+ *
* Get the application context that is associated with a link object.
*
* The application context for a link may be set using
@@ -97,6 +95,7 @@ PN_EXTERN void *pn_link_get_context(pn_link_t *link);
/**
* @deprecated
+ *
* Set a new application context for a link object.
*
* The application context for a link object may be retrieved using
@@ -565,12 +564,6 @@ PN_EXTERN pn_delivery_t *pn_unsettled_head(pn_link_t *link);
PN_EXTERN pn_delivery_t *pn_unsettled_next(pn_delivery_t *delivery);
/**
- * @defgroup sender Sender
- * Sending link
- * @{
- */
-
-/**
* Signal the availability of deliveries for a link.
*
* @param[in] sender a sender link object
@@ -591,14 +584,6 @@ PN_EXTERN ssize_t pn_link_send(pn_link_t *sender, const char *bytes, size_t n);
//PN_EXTERN void pn_link_abort(pn_sender_t *sender);
-/** @} */
-
-/**
- * @defgroup receiver Receiver
- * Receiving link
- * @{
- */
-
/**
* Grant credit for incoming deliveries on a receiver.
*
@@ -657,9 +642,8 @@ PN_EXTERN ssize_t pn_link_recv(pn_link_t *receiver, char *bytes, size_t n);
*/
PN_EXTERN bool pn_link_draining(pn_link_t *receiver);
-/** @} */
-
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/listener.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/listener.h b/proton-c/include/proton/listener.h
index dda1638..8b70c9a 100644
--- a/proton-c/include/proton/listener.h
+++ b/proton-c/include/proton/listener.h
@@ -1,5 +1,5 @@
#ifndef PROTON_LISTENER_H
-#define PROTON_LISTENER_H
+#define PROTON_LISTENER_H 1
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -29,17 +29,21 @@ extern "C" {
/**
* @file
*
- * Listener for the @ref proactor
+ * **Experimental** - A listener for incoming connections for the @ref
+ * proactor.
*
- * @defgroup listener Listener
- * Listen for incoming connections with a @ref proactor
- *
- * @ingroup proactor
+ * @addtogroup proactor
* @{
*/
+/**
+ * @cond INTERNAL
+ */
typedef struct pn_proactor_t pn_proactor_t;
typedef struct pn_condition_t pn_condition_t;
+/**
+ * @endcond
+ */
/**
* A listener accepts connections.
@@ -70,16 +74,28 @@ PN_EXTERN int pn_listener_accept(pn_listener_t*, pn_connection_t *connection);
PN_EXTERN pn_condition_t *pn_listener_condition(pn_listener_t *l);
/**
+ * @cond INTERNAL
+ */
+
+/**
+ * @deprecated
+ *
* Get the application context that is associated with a listener.
*/
PN_EXTERN void *pn_listener_get_context(pn_listener_t *listener);
/**
+ * @deprecated
+ *
* Set a new application context for a listener.
*/
PN_EXTERN void pn_listener_set_context(pn_listener_t *listener, void *context);
/**
+ * @endcond
+ */
+
+/**
* Get the attachments that are associated with a listener object.
*/
PN_EXTERN pn_record_t *pn_listener_attachments(pn_listener_t *listener);
@@ -103,4 +119,4 @@ PN_EXTERN pn_proactor_t *pn_listener_proactor(pn_listener_t *c);
}
#endif
-#endif // PROTON_LISTENER_H
+#endif /* listener.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/log.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/log.h b/proton-c/include/proton/log.h
index 1387df5..35538f7 100644
--- a/proton-c/include/proton/log.h
+++ b/proton-c/include/proton/log.h
@@ -26,23 +26,32 @@
extern "C" {
#endif
-/**@file
+/**
+ * @cond INTERNAL
+ */
+
+/**
+ * @file
*
* Control log messages that are not associated with a transport.
* See pn_transport_trace for transport-related logging.
*/
-/** Callback for customized logging. */
+/**
+ * Callback for customized logging.
+ */
typedef void (*pn_logger_t)(const char *message);
-/** Enable/disable global logging.
+/**
+ * Enable/disable global logging.
*
* By default, logging is enabled by envionment variable PN_TRACE_LOG.
* Calling this function overrides the environment setting.
*/
PN_EXTERN void pn_log_enable(bool enabled);
-/** Set the logger.
+/**
+ * Set the logger.
*
* By default a logger that prints to stderr is installed.
*
@@ -51,6 +60,10 @@ PN_EXTERN void pn_log_enable(bool enabled);
*/
PN_EXTERN void pn_log_logger(pn_logger_t logger);
+/**
+ * @endcond
+ */
+
#ifdef __cplusplus
}
#endif
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/message.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/message.h b/proton-c/include/proton/message.h
index 8741996..b047a43 100644
--- a/proton-c/include/proton/message.h
+++ b/proton-c/include/proton/message.h
@@ -34,10 +34,8 @@ extern "C" {
/**
* @file
- * Encode/decode AMQP Messages
*
- * @defgroup message Message
- * Encode/decode AMQP Messages
+ * @addtogroup message
* @{
*/
@@ -729,7 +727,7 @@ PN_EXTERN int pn_message_decode(pn_message_t *msg, const char *bytes, size_t siz
*
* If the buffer space provided is insufficient to store the content
* held in the message, the operation will fail and return a
- * ::PN_OVERFLOW error code.
+ * PN_OVERFLOW error code.
*
* @param[in] msg a message object
* @param[in] bytes the start of empty buffer space
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/messenger.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/messenger.h b/proton-c/include/proton/messenger.h
index 198b6c6..c11e7a5 100644
--- a/proton-c/include/proton/messenger.h
+++ b/proton-c/include/proton/messenger.h
@@ -35,12 +35,12 @@ extern "C" {
/**
* @file
+ * @deprecated
*
* The messenger API provides a high level interface for sending and
* receiving AMQP messages.
*
- * @defgroup messenger Messenger
- * **Deprecated**
+ * @addtogroup messenger
* @{
*/
@@ -934,8 +934,7 @@ PNX_EXTERN int pn_messenger_rewrite(pn_messenger_t *messenger, const char *patte
const char *address);
/**
- * Extract @link pn_selectable_t selectables @endlink from a passive
- * messenger.
+ * Extract selectables from a passive messenger.
*
* A messenger that is in passive mode (see
* ::pn_messenger_is_passive()) will never attempt to perform any I/O
@@ -945,17 +944,16 @@ PNX_EXTERN int pn_messenger_rewrite(pn_messenger_t *messenger, const char *patte
*
* An application wishing to perform I/O on behalf of a passive
* messenger must extract all available selectables by calling this
- * operation until it returns NULL. The ::pn_selectable_t interface
- * may then be used by the application to perform I/O outside the
- * messenger.
+ * operation until it returns NULL. The selectable interface may then
+ * be used by the application to perform I/O outside the messenger.
*
* All selectables returned by this operation must be serviced until
* they reach a terminal state and then freed. See
- * ::pn_selectable_is_terminal() for more details.
+ * `pn_selectable_is_terminal()` for more details.
*
* By default any given selectable will only ever be returned once by
* this operation, however if the selectable's registered flag is set
- * to true (see ::pn_selectable_set_registered()), then the selectable
+ * to true (see `pn_selectable_set_registered()`), then the selectable
* will be returned whenever its interest set may have changed.
*
* @param[in] messenger a messenger object
@@ -971,21 +969,18 @@ PNX_EXTERN pn_selectable_t *pn_messenger_selectable(pn_messenger_t *messenger);
*/
PNX_EXTERN pn_timestamp_t pn_messenger_deadline(pn_messenger_t *messenger);
-/**
- * @}
- */
-
-#define PN_FLAGS_CHECK_ROUTES \
- (0x1) /** Messenger flag to indicate that a call \
- to pn_messenger_start should check that \
- any defined routes are valid */
+#define PN_FLAGS_CHECK_ROUTES \
+ (0x1) /**< Messenger flag to indicate that a call \
+ to pn_messenger_start should check that \
+ any defined routes are valid */
-#define PN_FLAGS_ALLOW_INSECURE_MECHS \
- (0x2) /** Messenger flag to indicate that the PLAIN \
- mechanism is allowed on an unencrypted \
- connection */
+#define PN_FLAGS_ALLOW_INSECURE_MECHS \
+ (0x2) /**< Messenger flag to indicate that the PLAIN \
+ mechanism is allowed on an unencrypted \
+ connection */
-/** Sets control flags to enable additional function for the Messenger.
+/**
+ * Sets control flags to enable additional function for the Messenger.
*
* @param[in] messenger the messenger
* @param[in] flags 0 or PN_FLAGS_CHECK_ROUTES
@@ -995,7 +990,8 @@ PNX_EXTERN pn_timestamp_t pn_messenger_deadline(pn_messenger_t *messenger);
PNX_EXTERN int pn_messenger_set_flags(pn_messenger_t *messenger,
const int flags);
-/** Gets the flags for a Messenger.
+/**
+ * Gets the flags for a Messenger.
*
* @param[in] messenger the messenger
* @return The flags set for the messenger
@@ -1053,6 +1049,10 @@ PNX_EXTERN int
pn_messenger_set_ssl_peer_authentication_mode(pn_messenger_t *messenger,
const pn_ssl_verify_mode_t mode);
+/**
+ * @}
+ */
+
#ifdef __cplusplus
}
#endif
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/object.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/object.h b/proton-c/include/proton/object.h
index 0433b58..e7efd94 100644
--- a/proton-c/include/proton/object.h
+++ b/proton-c/include/proton/object.h
@@ -33,6 +33,10 @@
extern "C" {
#endif
+/**
+ * @cond INTERNAL
+ */
+
typedef void* pn_handle_t;
typedef intptr_t pn_shandle_t;
@@ -330,6 +334,10 @@ PN_EXTERN void *pn_record_get(pn_record_t *record, pn_handle_t key);
PN_EXTERN void pn_record_set(pn_record_t *record, pn_handle_t key, void *value);
PN_EXTERN void pn_record_clear(pn_record_t *record);
+/**
+ * @endcond
+ */
+
#ifdef __cplusplus
}
#endif
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/parser.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/parser.h b/proton-c/include/proton/parser.h
index 369ba8f..a95ca86 100644
--- a/proton-c/include/proton/parser.h
+++ b/proton-c/include/proton/parser.h
@@ -29,6 +29,10 @@
extern "C" {
#endif
+/**
+ * @cond INTERNAL
+ */
+
typedef struct pn_parser_t pn_parser_t;
PN_EXTERN pn_parser_t *pn_parser(void);
@@ -37,6 +41,10 @@ PN_EXTERN int pn_parser_errno(pn_parser_t *parser);
PN_EXTERN const char *pn_parser_error(pn_parser_t *parser);
PN_EXTERN void pn_parser_free(pn_parser_t *parser);
+/**
+ * @endcond
+ */
+
#ifdef __cplusplus
}
#endif
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/proactor.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/proactor.h b/proton-c/include/proton/proactor.h
index fdb723b..b8fb16a 100644
--- a/proton-c/include/proton/proactor.h
+++ b/proton-c/include/proton/proactor.h
@@ -1,5 +1,5 @@
#ifndef PROTON_PROACTOR_H
-#define PROTON_PROACTOR_H
+#define PROTON_PROACTOR_H 1
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -28,26 +28,32 @@
extern "C" {
#endif
+/**
+ * @cond INTERNAL
+ */
typedef struct pn_condition_t pn_condition_t;
+/**
+ * @endcond
+ */
/**
* @file
*
- * **Experimental**: Multi-threaded IO
- * @defgroup proactor Proactor
+ * **Experimental** - Multithreaded IO
*
- * **Experimental**: Multi-threaded IO
+ * The proactor associates a @ref connection with a @ref transport,
+ * either by making an outgoing connection or accepting an incoming
+ * one. It delivers @ref event "events" to application threads for
+ * handling.
*
- * The proactor associates a @ref connection with a @ref transport, either
- * by making an outgoing connection or accepting an incoming one.
- * It delivers @ref event "events" to application threads for handling.
+ * ## Multi-threading
*
- * **Multi-threading**:
- * The @ref proactor is thread-safe, but the @ref engine is not. The proactor
- * ensures that each @ref connection and its associated values (@ref session,
- * @ref link etc.) is handle sequentially, even if there are multiple
- * application threads. See pn_proactor_wait()
+ * The @ref proactor is thread-safe, but the protocol engine is not.
+ * The proactor ensures that each @ref connection and its associated
+ * values (@ref session, @ref link etc.) is handle sequentially, even
+ * if there are multiple application threads. See pn_proactor_wait().
*
+ * @addtogroup proactor
* @{
*/
@@ -65,112 +71,123 @@ pn_proactor_t *pn_proactor(void);
* Free the proactor. Abort any open network connections and clean up all
* associated resources.
*/
-void pn_proactor_free(pn_proactor_t*);
+void pn_proactor_free(pn_proactor_t *proactor);
/**
* Connect connection to host/port. Connection and transport events will be
* returned by pn_proactor_wait()
*
+ * @param[in] proactor the proactor object
* @param[in] connection the proactor takes ownership, do not free
* @param[in] host address to connect on
* @param[in] port port to connect to
*
* @return error on immediate error, e.g. an allocation failure.
- * Other errors are indicated by connection or transport events via pn_proactor_wait()
+ * Other errors are indicated by connection or transport events via
+ * pn_proactor_wait()
*/
-int pn_proactor_connect(pn_proactor_t*, pn_connection_t *connection, const char *host, const char *port);
+int pn_proactor_connect(pn_proactor_t *proactor, pn_connection_t *connection,
+ const char *host, const char *port);
/**
- * Start listening with listener.
- * pn_proactor_wait() will return a PN_LISTENER_ACCEPT event when a connection can be accepted.
+ * Start listening with listener. pn_proactor_wait() will return a
+ * PN_LISTENER_ACCEPT event when a connection can be accepted.
*
+ * @param[in] proactor the proactor object
* @param[in] listener proactor takes ownership of listener, do not free
* @param[in] host address to listen on
* @param[in] port port to listen on
* @param[in] backlog number of connection requests to queue
*
* @return error on immediate error, e.g. an allocation failure.
- * Other errors are indicated by pn_listener_condition() on the PN_LISTENER_CLOSE event.
+ * Other errors are indicated by pn_listener_condition() on the
+ * PN_LISTENER_CLOSE event.
*/
-int pn_proactor_listen(pn_proactor_t *, pn_listener_t *listener, const char *host, const char *port, int backlog);
+int pn_proactor_listen(pn_proactor_t *proactor, pn_listener_t *listener,
+ const char *host, const char *port, int backlog);
/**
* Wait for events to handle.
*
- * Handle events in the returned batch by calling pn_event_batch_next() until it
- * returns NULL. You must call pn_proactor_done() when you are finished with the batch.
+ * Handle events in the returned batch by calling
+ * pn_event_batch_next() until it returns NULL. You must call
+ * pn_proactor_done() when you are finished with the batch.
*
- * If you call pn_proactor_done() before finishing the batch, the remaining
- * events will be returned again by another call pn_proactor_wait(). This is
- * less efficient, but allows you to handle part of a batch and then hand off
- * the rest to another thread.
+ * If you call pn_proactor_done() before finishing the batch, the
+ * remaining events will be returned again by another call
+ * pn_proactor_wait(). This is less efficient, but allows you to
+ * handle part of a batch and then hand off the rest to another
+ * thread.
*
- * Thread safe: can be called concurrently. Events in a single batch must be
- * handled in sequence, but batches returned by separate calls to
- * pn_proactor_wait() can be handled concurrently.
+ * @note Thread-safe: can be called concurrently. Events in a single
+ * batch must be handled in sequence, but batches returned by separate
+ * calls to pn_proactor_wait() can be handled concurrently.
*/
-pn_event_batch_t *pn_proactor_wait(pn_proactor_t *d);
+pn_event_batch_t *pn_proactor_wait(pn_proactor_t *proactor);
/**
* Call when done handling a batch of events.
*
- * Must be called exactly once to match each call to pn_proactor_wait().
+ * Must be called exactly once to match each call to
+ * pn_proactor_wait().
*
- * Thread safe: may be called from any thread provided the exactly once rule is
- * respected.
+ * @note Thread-safe: may be called from any thread provided the
+ * exactly once rule is respected.
*/
-void pn_proactor_done(pn_proactor_t *d, pn_event_batch_t *events);
+void pn_proactor_done(pn_proactor_t *proactor, pn_event_batch_t *events);
/**
* Cause PN_PROACTOR_INTERRUPT to be returned to exactly one call of
* pn_proactor_wait().
*
* If threads are blocked in pn_proactor_wait(), one of them will be
- * interrupted, otherwise the interrupt will be returned by a future call to
- * pn_proactor_wait(). Calling pn_proactor_interrupt() N times will return
- * PN_PROACTOR_INTERRUPT to N current or future calls of pn_proactor_wait()
+ * interrupted, otherwise the interrupt will be returned by a future
+ * call to pn_proactor_wait(). Calling pn_proactor_interrupt() N times
+ * will return PN_PROACTOR_INTERRUPT to N current or future calls of
+ * pn_proactor_wait()
*
- * Thread safe.
+ * @note Thread-safe.
*/
-void pn_proactor_interrupt(pn_proactor_t* d);
+void pn_proactor_interrupt(pn_proactor_t *proactor);
/**
- * Cause PN_PROACTOR_TIMEOUT to be returned to a thread calling wait() after
- * timeout milliseconds. Thread safe.
+ * Cause PN_PROACTOR_TIMEOUT to be returned to a thread calling wait()
+ * after timeout milliseconds. Thread-safe.
*
- * Note calling pn_proactor_set_timeout() again before the PN_PROACTOR_TIMEOUT is
- *delivered will cancel the previous timeout and deliver an event only after
- * the new timeout. ::pn_proactor_set_timeout(0) will cancel the timeout
+ * Note that calling pn_proactor_set_timeout() again before the
+ * PN_PROACTOR_TIMEOUT is delivered will cancel the previous timeout
+ * and deliver an event only after the new
+ * timeout. `pn_proactor_set_timeout(0)` will cancel the timeout
* without setting a new one.
*/
-void pn_proactor_set_timeout(pn_proactor_t* d, pn_millis_t timeout);
+void pn_proactor_set_timeout(pn_proactor_t *proactor, pn_millis_t timeout);
/**
* Cause a PN_CONNECTION_WAKE event to be returned by the proactor, even if
* there are no IO events pending for the connection.
*
- * **Thread safe**: this is the only pn_connection_ function that can be
- * called concurrently.
+ * @note Thread-safe: this is the only pn_connection_ function that
+ * can be called concurrently.
*
* Wakes can be "coalesced" - if several pn_connection_wake() calls happen
* concurrently, there may be only one PN_CONNECTION_WAKE event.
*/
-void pn_connection_wake(pn_connection_t *c);
+void pn_connection_wake(pn_connection_t *connection);
/**
- * Return the proactor associated with a connection or null
+ * Return the proactor associated with a connection or NULL.
*/
-pn_proactor_t *pn_connection_proactor(pn_connection_t *c);
+pn_proactor_t *pn_connection_proactor(pn_connection_t *connection);
/**
* Return the proactor associated with an event or NULL.
*/
-pn_proactor_t *pn_event_proactor(pn_event_t *);
+pn_proactor_t *pn_event_proactor(pn_event_t *event);
/**
* Return the listener associated with an event or NULL.
*/
-pn_listener_t *pn_event_listener(pn_event_t *);
+pn_listener_t *pn_event_listener(pn_event_t *event);
/**
* @}
@@ -180,4 +197,4 @@ pn_listener_t *pn_event_listener(pn_event_t *);
}
#endif
-#endif // PROTON_PROACTOR_H
+#endif /* proactor.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/reactor.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/reactor.h b/proton-c/include/proton/reactor.h
index b61ea7a..77d78e6 100644
--- a/proton-c/include/proton/reactor.h
+++ b/proton-c/include/proton/reactor.h
@@ -1,4 +1,3 @@
-
#ifndef PROTON_REACTOR_H
#define PROTON_REACTOR_H 1
@@ -37,11 +36,7 @@ extern "C" {
/**
* @file
*
- * Reactor API for proton.
- *
- * @defgroup reactor Reactor
- * Reactor API for proton.
- * @{
+ * @cond INTERNAL
*/
typedef struct pn_reactor_t pn_reactor_t;
@@ -184,7 +179,8 @@ PNX_EXTERN void pn_record_set_handler(pn_record_t *record, pn_handler_t *handler
*/
PNX_EXTERN pn_handler_t *pn_event_root(pn_event_t *event);
-/** @}
+/**
+ * @endcond
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/sasl.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/sasl.h b/proton-c/include/proton/sasl.h
index e8e0d96..f5d6f2a 100644
--- a/proton-c/include/proton/sasl.h
+++ b/proton-c/include/proton/sasl.h
@@ -32,33 +32,34 @@ extern "C" {
/**
* @file
- * SASL Secure Transport Layer.
*
- * @defgroup sasl SASL
- * SASL Secure Transport Layer.
+ * @addtogroup sasl
+ * @{
+ */
+
+/**
* The SASL layer is responsible for establishing an authenticated
* and/or encrypted tunnel over which AMQP frames are passed between
* peers. The peer acting as the SASL Client must provide
* authentication credentials. The peer acting as the SASL Server must
* provide authentication against the received credentials.
- *
- * @ingroup transport
- * @{
*/
-
typedef struct pn_sasl_t pn_sasl_t;
-/** The result of the SASL negotiation */
+/**
+ * The result of the SASL negotiation.
+ */
typedef enum {
- PN_SASL_NONE=-1, /** negotiation not completed */
- PN_SASL_OK=0, /** authentication succeeded */
- PN_SASL_AUTH=1, /** failed due to bad credentials */
- PN_SASL_SYS=2, /** failed due to a system error */
- PN_SASL_PERM=3, /** failed due to unrecoverable error */
- PN_SASL_TEMP=4 /** failed due to transient error */
+ PN_SASL_NONE = -1, /** negotiation not completed */
+ PN_SASL_OK = 0, /** authentication succeeded */
+ PN_SASL_AUTH = 1, /** failed due to bad credentials */
+ PN_SASL_SYS = 2, /** failed due to a system error */
+ PN_SASL_PERM = 3, /** failed due to unrecoverable error */
+ PN_SASL_TEMP = 4 /** failed due to transient error */
} pn_sasl_outcome_t;
-/** Construct an Authentication and Security Layer object
+/**
+ * Construct an Authentication and Security Layer object.
*
* This will return the SASL layer object for the supplied transport
* object. If there is currently no SASL layer one will be created.
@@ -70,7 +71,8 @@ typedef enum {
*/
PN_EXTERN pn_sasl_t *pn_sasl(pn_transport_t *transport);
-/** Do we support extended SASL negotiation
+/**
+ * Do we support extended SASL negotiation
*
* Do we support extended SASL negotiation?
* All implementations of Proton support ANONYMOUS and EXTERNAL on both
@@ -83,7 +85,8 @@ PN_EXTERN pn_sasl_t *pn_sasl(pn_transport_t *transport);
*/
PN_EXTERN bool pn_sasl_extended(void);
-/** Set the outcome of SASL negotiation
+/**
+ * Set the outcome of SASL negotiation
*
* Used by the server to set the result of the negotiation process.
*
@@ -91,13 +94,15 @@ PN_EXTERN bool pn_sasl_extended(void);
*/
PN_EXTERN void pn_sasl_done(pn_sasl_t *sasl, pn_sasl_outcome_t outcome);
-/** Retrieve the outcome of SASL negotiation.
+/**
+ * Retrieve the outcome of SASL negotiation.
*
* @todo
*/
PN_EXTERN pn_sasl_outcome_t pn_sasl_outcome(pn_sasl_t *sasl);
-/** Retrieve the authenticated user
+/**
+ * Retrieve the authenticated user
*
* This is usually used at the the server end to find the name of the authenticated user.
* On the client it will merely return whatever user was passed in to the
@@ -115,7 +120,8 @@ PN_EXTERN pn_sasl_outcome_t pn_sasl_outcome(pn_sasl_t *sasl);
*/
PN_EXTERN const char *pn_sasl_get_user(pn_sasl_t *sasl);
-/** Return the selected SASL mechanism
+/**
+ * Return the selected SASL mechanism
*
* The returned value is only reliable after the PN_TRANSPORT_AUTHENTICATED event has been received.
*
@@ -125,7 +131,8 @@ PN_EXTERN const char *pn_sasl_get_user(pn_sasl_t *sasl);
*/
PN_EXTERN const char *pn_sasl_get_mech(pn_sasl_t *sasl);
-/** SASL mechanisms that are to be considered for authentication
+/**
+ * SASL mechanisms that are to be considered for authentication
*
* This can be used on either the client or the server to restrict the SASL
* mechanisms that may be used to the mechanisms on the list.
@@ -135,7 +142,8 @@ PN_EXTERN const char *pn_sasl_get_mech(pn_sasl_t *sasl);
*/
PN_EXTERN void pn_sasl_allowed_mechs(pn_sasl_t *sasl, const char *mechs);
-/** Boolean to allow use of clear text authentication mechanisms
+/**
+ * Boolean to allow use of clear text authentication mechanisms
*
* By default the SASL layer is configured not to allow mechanisms that disclose
* the clear text of the password over an unencrypted AMQP connection. This specifically
@@ -153,7 +161,8 @@ PN_EXTERN void pn_sasl_allowed_mechs(pn_sasl_t *sasl, const char *mechs);
*/
PN_EXTERN void pn_sasl_set_allow_insecure_mechs(pn_sasl_t *sasl, bool insecure);
-/** Return the current value for allow_insecure_mechs
+/**
+ * Return the current value for allow_insecure_mechs
*
* @param[in] sasl the SASL layer
*/
@@ -190,7 +199,9 @@ PN_EXTERN void pn_sasl_config_name(pn_sasl_t *sasl, const char *name);
*/
PN_EXTERN void pn_sasl_config_path(pn_sasl_t *sasl, const char *path);
-/** @} */
+/**
+ * @}
+ */
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/selectable.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/selectable.h b/proton-c/include/proton/selectable.h
index c6e7489..56cccde 100644
--- a/proton-c/include/proton/selectable.h
+++ b/proton-c/include/proton/selectable.h
@@ -34,12 +34,7 @@ extern "C" {
/**
* @file
*
- * The selectable API provides an interface for integration with third
- * party event loops.
- *
- * @defgroup selectable Selectable
- * **Deprecated**
- * @{
+ * @cond INTERNAL
*/
/**
@@ -268,7 +263,7 @@ PNX_EXTERN void pn_selectable_free(pn_selectable_t *selectable);
PNX_EXTERN void pn_selectable_collect(pn_selectable_t *selectable, pn_collector_t *collector);
/**
- * @}
+ * @endcond
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/session.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/session.h b/proton-c/include/proton/session.h
index 34f0cfd..8cca7f6 100644
--- a/proton-c/include/proton/session.h
+++ b/proton-c/include/proton/session.h
@@ -35,12 +35,9 @@ extern "C" {
#endif
/**
- * @file
- * Serialized session
+ * @file
*
- * @defgroup session Session
- * Serialized session
- * @ingroup engine
+ * @addtogroup session
* @{
*/
@@ -63,12 +60,13 @@ PN_EXTERN pn_session_t *pn_session(pn_connection_t *connection);
* longer needed. Freeing a session will free all links on that
* session and settle any deliveries on those links.
*
- * @param[in] session a session object to free (or NULL)
+ * @param[in] session the session object to free (or NULL)
*/
PN_EXTERN void pn_session_free(pn_session_t *session);
/**
* @deprecated
+ *
* Get the application context that is associated with a session
* object.
*
@@ -82,6 +80,7 @@ PN_EXTERN void *pn_session_get_context(pn_session_t *session);
/**
* @deprecated
+ *
* Set a new application context for a session object.
*
* The application context for a session object may be retrieved
@@ -103,7 +102,7 @@ PN_EXTERN pn_record_t *pn_session_attachments(pn_session_t *session);
/**
* Get the endpoint state flags for a session.
*
- * @param[in] session the session
+ * @param[in] session the session object
* @return the session's state flags
*/
PN_EXTERN pn_state_t pn_session_state(pn_session_t *session);
@@ -119,7 +118,7 @@ PN_EXTERN pn_state_t pn_session_state(pn_session_t *session);
* The pointer returned by this operation is valid until the
* session object is freed.
*
- * @param[in] session the sesion object
+ * @param[in] session the session object
* @return the session's error object
*/
PN_EXTERN pn_error_t *pn_session_error(pn_session_t *session);
@@ -175,7 +174,7 @@ PN_EXTERN pn_connection_t *pn_session_connection(pn_session_t *session);
* Once this operation has completed, the PN_LOCAL_ACTIVE state flag
* will be set.
*
- * @param[in] session a session object
+ * @param[in] session the session object
*/
PN_EXTERN void pn_session_open(pn_session_t *session);
@@ -187,7 +186,7 @@ PN_EXTERN void pn_session_open(pn_session_t *session);
* ::pn_session_open, in this case it is equivalent to calling
* ::pn_session_open followed by ::pn_session_close.
*
- * @param[in] session a session object
+ * @param[in] session the session object
*/
PN_EXTERN void pn_session_close(pn_session_t *session);
@@ -236,7 +235,7 @@ PN_EXTERN void pn_session_set_outgoing_window(pn_session_t *session, size_t wind
/**
* Get the number of outgoing bytes currently buffered by a session.
*
- * @param[in] session a session object
+ * @param[in] session the session object
* @return the number of outgoing bytes currently buffered
*/
PN_EXTERN size_t pn_session_outgoing_bytes(pn_session_t *session);
@@ -244,7 +243,7 @@ PN_EXTERN size_t pn_session_outgoing_bytes(pn_session_t *session);
/**
* Get the number of incoming bytes currently buffered by a session.
*
- * @param[in] session a session object
+ * @param[in] session the session object
* @return the number of incoming bytes currently buffered
*/
PN_EXTERN size_t pn_session_incoming_bytes(pn_session_t *session);
@@ -283,7 +282,8 @@ PN_EXTERN pn_session_t *pn_session_head(pn_connection_t *connection, pn_state_t
*/
PN_EXTERN pn_session_t *pn_session_next(pn_session_t *session, pn_state_t state);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/ssl.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/ssl.h b/proton-c/include/proton/ssl.h
index 420459a..ee2997f 100644
--- a/proton-c/include/proton/ssl.h
+++ b/proton-c/include/proton/ssl.h
@@ -32,11 +32,12 @@ extern "C" {
/**
* @file
- * API for using SSL with the Transport Layer.
- *
- * @defgroup ssl SSL
- * @ingroup transport
*
+ * @addtogroup ssl
+ * @{
+ */
+
+/**
* API for using SSL with the Transport Layer.
*
* A Transport may be configured to use SSL for encryption and/or authentication. A
@@ -73,33 +74,40 @@ extern "C" {
*
* Support for SSL Client Session resume is provided (see ::pn_ssl_init,
* ::pn_ssl_resume_status).
- *
- * @{
*/
-
typedef struct pn_ssl_domain_t pn_ssl_domain_t;
+
+/**
+ * @see pn_ssl
+ */
typedef struct pn_ssl_t pn_ssl_t;
-/** Determines the type of SSL endpoint. */
+/**
+ * Determines the type of SSL endpoint.
+ */
typedef enum {
- PN_SSL_MODE_CLIENT=1, /**< Local connection endpoint is an SSL client */
- PN_SSL_MODE_SERVER /**< Local connection endpoint is an SSL server */
+ PN_SSL_MODE_CLIENT = 1, /**< Local connection endpoint is an SSL client */
+ PN_SSL_MODE_SERVER /**< Local connection endpoint is an SSL server */
} pn_ssl_mode_t;
-/** Indicates whether an SSL session has been resumed. */
+/**
+ * Indicates whether an SSL session has been resumed.
+ */
typedef enum {
PN_SSL_RESUME_UNKNOWN, /**< Session resume state unknown/not supported */
PN_SSL_RESUME_NEW, /**< Session renegotiated - not resumed */
PN_SSL_RESUME_REUSED /**< Session resumed from previous session. */
} pn_ssl_resume_status_t;
-/** Tests for SSL implementation present
+/**
+ * Tests for SSL implementation present
*
* @return true if we support SSL, false if not
*/
PN_EXTERN bool pn_ssl_present( void );
-/** Create an SSL configuration domain
+/**
+ * Create an SSL configuration domain
*
* This method allocates an SSL domain object. This object is used to hold the SSL
* configuration for one or more SSL sessions. The SSL session object (pn_ssl_t) is
@@ -109,16 +117,18 @@ PN_EXTERN bool pn_ssl_present( void );
* with this domain.
* @return a pointer to the SSL domain, if SSL support is present.
*/
-PN_EXTERN pn_ssl_domain_t *pn_ssl_domain( pn_ssl_mode_t mode);
+PN_EXTERN pn_ssl_domain_t *pn_ssl_domain(pn_ssl_mode_t mode);
-/** Release an SSL configuration domain
+/**
+ * Release an SSL configuration domain
*
* This method frees an SSL domain object allocated by ::pn_ssl_domain.
* @param[in] domain the domain to destroy.
*/
-PN_EXTERN void pn_ssl_domain_free( pn_ssl_domain_t *domain );
+PN_EXTERN void pn_ssl_domain_free(pn_ssl_domain_t *domain);
-/** Set the certificate that identifies the local node to the remote.
+/**
+ * Set the certificate that identifies the local node to the remote.
*
* This certificate establishes the identity for the local node for all SSL sessions
* created from this domain. It will be sent to the remote if the remote needs to verify
@@ -141,12 +151,13 @@ PN_EXTERN void pn_ssl_domain_free( pn_ssl_domain_t *domain );
* protected.
* @return 0 on success
*/
-PN_EXTERN int pn_ssl_domain_set_credentials( pn_ssl_domain_t *domain,
- const char *credential_1,
- const char *credential_2,
- const char *password);
+PN_EXTERN int pn_ssl_domain_set_credentials(pn_ssl_domain_t *domain,
+ const char *credential_1,
+ const char *credential_2,
+ const char *password);
-/** Configure the set of trusted CA certificates used by this domain to verify peers.
+/**
+ * Configure the set of trusted CA certificates used by this domain to verify peers.
*
* If the local SSL client/server needs to verify the identity of the remote, it must
* validate the signature of the remote's certificate. This function sets the database of
@@ -163,27 +174,31 @@ PN_EXTERN int pn_ssl_domain_set_credentials( pn_ssl_domain_t *domain,
PN_EXTERN int pn_ssl_domain_set_trusted_ca_db(pn_ssl_domain_t *domain,
const char *certificate_db);
-/** Determines the level of peer validation.
+/**
+ * Determines the level of peer validation.
*
- * ANONYMOUS_PEER does not require a valid certificate, and permits use of ciphers that
- * do not provide authentication.
+ * ANONYMOUS_PEER does not require a valid certificate, and permits
+ * use of ciphers that do not provide authentication.
*
- * VERIFY_PEER will only connect to those peers that provide a valid identifying
- * certificate signed by a trusted CA and are using an authenticated cipher.
+ * VERIFY_PEER will only connect to those peers that provide a valid
+ * identifying certificate signed by a trusted CA and are using an
+ * authenticated cipher.
*
- * VERIFY_PEER_NAME is like VERIFY_PEER, but also requires the peer's identity as
- * contained in the certificate to be valid (see ::pn_ssl_set_peer_hostname).
+ * VERIFY_PEER_NAME is like VERIFY_PEER, but also requires the peer's
+ * identity as contained in the certificate to be valid (see
+ * ::pn_ssl_set_peer_hostname).
*
- * ANONYMOUS_PEER is configured by default.
+ * ANONYMOUS_PEER is configured by default.
*/
typedef enum {
- PN_SSL_VERIFY_NULL=0, /**< internal use only */
- PN_SSL_VERIFY_PEER, /**< require peer to provide a valid identifying certificate */
- PN_SSL_ANONYMOUS_PEER, /**< do not require a certificate nor cipher authorization */
- PN_SSL_VERIFY_PEER_NAME /**< require valid certificate and matching name */
+ PN_SSL_VERIFY_NULL = 0, /**< internal use only */
+ PN_SSL_VERIFY_PEER, /**< require peer to provide a valid identifying certificate */
+ PN_SSL_ANONYMOUS_PEER, /**< do not require a certificate nor cipher authorization */
+ PN_SSL_VERIFY_PEER_NAME /**< require valid certificate and matching name */
} pn_ssl_verify_mode_t;
-/** Configure the level of verification used on the peer certificate.
+/**
+ * Configure the level of verification used on the peer certificate.
*
* This method controls how the peer's certificate is validated, if at all. By default,
* neither servers nor clients attempt to verify their peers (PN_SSL_ANONYMOUS_PEER).
@@ -206,10 +221,11 @@ typedef enum {
* @return 0 on success
*/
PN_EXTERN int pn_ssl_domain_set_peer_authentication(pn_ssl_domain_t *domain,
- const pn_ssl_verify_mode_t mode,
- const char *trusted_CAs);
+ const pn_ssl_verify_mode_t mode,
+ const char *trusted_CAs);
-/** Permit a server to accept connection requests from non-SSL clients.
+/**
+ * Permit a server to accept connection requests from non-SSL clients.
*
* This configures the server to "sniff" the incoming client data stream, and dynamically
* determine whether SSL/TLS is being used. This option is disabled by default: only
@@ -220,7 +236,8 @@ PN_EXTERN int pn_ssl_domain_set_peer_authentication(pn_ssl_domain_t *domain,
*/
PN_EXTERN int pn_ssl_domain_allow_unsecured_client(pn_ssl_domain_t *domain);
-/** Create a new SSL session object associated with a transport.
+/**
+ * Create a new SSL session object associated with a transport.
*
* A transport must have an SSL object in order to "speak" SSL over its connection. This
* method allocates an SSL object associates it with the transport.
@@ -231,7 +248,8 @@ PN_EXTERN int pn_ssl_domain_allow_unsecured_client(pn_ssl_domain_t *domain);
*/
PN_EXTERN pn_ssl_t *pn_ssl(pn_transport_t *transport);
-/** Initialize an SSL session.
+/**
+ * Initialize an SSL session.
*
* This method configures an SSL object using the configuration provided by the given
* domain.
@@ -244,15 +262,17 @@ PN_EXTERN pn_ssl_t *pn_ssl(pn_transport_t *transport);
* and stored for future session restore (see ::::pn_ssl_resume_status).
* @return 0 on success, else an error code.
*/
-PN_EXTERN int pn_ssl_init( pn_ssl_t *ssl,
- pn_ssl_domain_t *domain,
- const char *session_id);
+PN_EXTERN int pn_ssl_init(pn_ssl_t *ssl,
+ pn_ssl_domain_t *domain,
+ const char *session_id);
-/** Get the name of the Cipher that is currently in use.
+/**
+ * Get the name of the Cipher that is currently in use.
*
- * Gets a text description of the cipher that is currently active, or returns FALSE if SSL
- * is not active (no cipher). Note that the cipher in use may change over time due to
- * renegotiation or other changes to the SSL state.
+ * Gets a text description of the cipher that is currently active, or
+ * returns FALSE if SSL is not active (no cipher). Note that the
+ * cipher in use may change over time due to renegotiation or other
+ * changes to the SSL state.
*
* @param[in] ssl the ssl client/server to query.
* @param[in,out] buffer buffer of size bytes to hold cipher name
@@ -261,14 +281,16 @@ PN_EXTERN int pn_ssl_init( pn_ssl_t *ssl,
*/
PN_EXTERN bool pn_ssl_get_cipher_name(pn_ssl_t *ssl, char *buffer, size_t size);
-/** Get the SSF (security strength factor) of the Cipher that is currently in use.
+/**
+ * Get the SSF (security strength factor) of the Cipher that is currently in use.
*
* @param[in] ssl the ssl client/server to query.
* @return the ssf, note that 0 means no security.
*/
PN_EXTERN int pn_ssl_get_ssf(pn_ssl_t *ssl);
-/** Get the name of the SSL protocol that is currently in use.
+/**
+ * Get the name of the SSL protocol that is currently in use.
*
* Gets a text description of the SSL protocol that is currently active, or returns FALSE if SSL
* is not active. Note that the protocol may change over time due to renegotiation.
@@ -281,7 +303,8 @@ PN_EXTERN int pn_ssl_get_ssf(pn_ssl_t *ssl);
*/
PN_EXTERN bool pn_ssl_get_protocol_name(pn_ssl_t *ssl, char *buffer, size_t size);
-/** Check whether the state has been resumed.
+/**
+ * Check whether the state has been resumed.
*
* Used for client session resume. When called on an active session, indicates whether
* the state has been resumed from a previous session.
@@ -293,9 +316,10 @@ PN_EXTERN bool pn_ssl_get_protocol_name(pn_ssl_t *ssl, char *buffer, size_t size
* @param[in] ssl the ssl session to check
* @return status code indicating whether or not the session has been resumed.
*/
-PN_EXTERN pn_ssl_resume_status_t pn_ssl_resume_status( pn_ssl_t *ssl );
+PN_EXTERN pn_ssl_resume_status_t pn_ssl_resume_status(pn_ssl_t *ssl);
-/** Set the expected identity of the remote peer.
+/**
+ * Set the expected identity of the remote peer.
*
* By default, SSL will use the hostname associated with the connection that
* the transport is bound to (see ::pn_connection_set_hostname). This method
@@ -316,10 +340,10 @@ PN_EXTERN pn_ssl_resume_status_t pn_ssl_resume_status( pn_ssl_t *ssl );
* given in RFC1034, Section 3.5.
* @return 0 on success.
*/
-PN_EXTERN int pn_ssl_set_peer_hostname( pn_ssl_t *ssl, const char *hostname);
+PN_EXTERN int pn_ssl_set_peer_hostname(pn_ssl_t *ssl, const char *hostname);
-
-/** Access the configured peer identity.
+/**
+ * Access the configured peer identity.
*
* Return the expected identity of the remote peer, as set by ::pn_ssl_set_peer_hostname.
*
@@ -331,9 +355,10 @@ PN_EXTERN int pn_ssl_set_peer_hostname( pn_ssl_t *ssl, const char *hostname);
* no hostname set.
* @return 0 on success.
*/
-PN_EXTERN int pn_ssl_get_peer_hostname( pn_ssl_t *ssl, char *hostname, size_t *bufsize );
+PN_EXTERN int pn_ssl_get_peer_hostname(pn_ssl_t *ssl, char *hostname, size_t *bufsize);
-/** Get the subject from the peers certificate.
+/**
+ * Get the subject from the peers certificate.
*
* @param[in] ssl the ssl client/server to query.
* @return A null terminated string representing the full subject,
@@ -353,7 +378,6 @@ typedef enum {
PN_SSL_CERT_SUBJECT_COMMON_NAME
} pn_ssl_cert_subject_subfield;
-
/**
* Enumeration identifying hashing algorithm.
*/
@@ -396,7 +420,9 @@ PN_EXTERN int pn_ssl_get_cert_fingerprint(pn_ssl_t *ssl0,
*/
PN_EXTERN const char* pn_ssl_get_remote_subject_subfield(pn_ssl_t *ssl0, pn_ssl_cert_subject_subfield field);
-/** @} */
+/**
+ * @}
+ */
#ifdef __cplusplus
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/terminus.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/terminus.h b/proton-c/include/proton/terminus.h
index 43d4d98..345bdda 100644
--- a/proton-c/include/proton/terminus.h
+++ b/proton-c/include/proton/terminus.h
@@ -33,11 +33,8 @@ extern "C" {
/**
* @file
- * Message terminus (source or target)
*
- * @defgroup terminus Terminus
- * Message terminus (source or target)
- * @ingroup link
+ * @addtogroup terminus
* @{
*/
@@ -299,7 +296,8 @@ PN_EXTERN pn_data_t *pn_terminus_filter(pn_terminus_t *terminus);
*/
PN_EXTERN int pn_terminus_copy(pn_terminus_t *terminus, pn_terminus_t *src);
-/** @}
+/**
+ * @}
*/
#ifdef __cplusplus
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/transport.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/transport.h b/proton-c/include/proton/transport.h
index 9683a42..adb74bd 100644
--- a/proton-c/include/proton/transport.h
+++ b/proton-c/include/proton/transport.h
@@ -33,13 +33,8 @@ extern "C" {
/**
* @file
- * Network transport
*
- * @defgroup transport Transport
- * Network transport
- *
- * State of a network connection being used as a transport for an AMQP connection.
- * @ingroup engine
+ * @addtogroup transport
* @{
*/
@@ -128,29 +123,38 @@ PN_EXTERN void pn_transport_set_server(pn_transport_t *transport);
*/
PN_EXTERN void pn_transport_free(pn_transport_t *transport);
-/** Retrieve the authenticated user
+/**
+ * @deprecated
*
- * This is usually used at the the server end to find the name of the authenticated user.
- * On the client it will merely return whatever user was passed in to the
- * pn_connection_set_user() API of the bound connection.
+ * Retrieve the authenticated user.
*
- * The returned value is only reliable after the PN_TRANSPORT_AUTHENTICATED event has been received.
+ * This is usually used at the the server end to find the name of the
+ * authenticated user. On the client it will merely return whatever
+ * user was passed in to the pn_connection_set_user() API of the bound
+ * connection.
+ *
+ * The returned value is only reliable after the
+ * PN_TRANSPORT_AUTHENTICATED event has been received.
*
* @param[in] transport the transport
*
- * @return
- * If a the user is anonymous (either no SASL layer is negotiated or the SASL ANONYMOUS mechanism is used)
- * then the user will be "anonymous"
- * Otherwise a string containing the user is returned.
+ * @return If a the user is anonymous (either no SASL layer is
+ * negotiated or the SASL ANONYMOUS mechanism is used) then the user
+ * will be "anonymous" Otherwise a string containing the user is
+ * returned.
*/
PN_EXTERN const char *pn_transport_get_user(pn_transport_t *transport);
/**
- * Set whether a non authenticated transport connection is allowed
+ * @deprecated
+ *
+ * Set whether a non-authenticated transport connection is allowed.
+ *
+ * There are several ways within the AMQP protocol suite to get
+ * unauthenticated connections:
*
- * There are several ways within the AMQP protocol suite to get unauthenticated connections:
* - Use no SASL layer (with either no TLS or TLS without client certificates)
- * - Use an SASL layer but the ANONYMOUS mechanism
+ * - Use a SASL layer but the ANONYMOUS mechanism
*
* The default if this option is not set is to allow unauthenticated connections.
*
@@ -160,6 +164,8 @@ PN_EXTERN const char *pn_transport_get_user(pn_transport_t *transport);
PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool required);
/**
+ * @deprecated
+ *
* Tell whether the transport connection is authenticated
*
* Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN
@@ -171,11 +177,13 @@ PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool require
PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Set whether a non encrypted transport connection is allowed
*
* There are several ways within the AMQP protocol suite to get encrypted connections:
- * - Use TLS/SSL
- * - Use an SASL with a mechanism that supports saecurity layers
+ * - Use TLS
+ * - Use a SASL with a mechanism that supports saecurity layers
*
* The default if this option is not set is to allow unencrypted connections.
*
@@ -185,6 +193,8 @@ PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport);
PN_EXTERN void pn_transport_require_encryption(pn_transport_t *transport, bool required);
/**
+ * @deprecated
+ *
* Tell whether the transport connection is encrypted
*
* Note that this property may not be stable until the PN_CONNECTION_REMOTE_OPEN
@@ -212,7 +222,7 @@ PN_EXTERN pn_condition_t *pn_transport_condition(pn_transport_t *transport);
/**
* @deprecated
*/
-PN_EXTERN pn_error_t *pn_transport_error(pn_transport_t *transport);
+PN_EXTERN pn_error_t *pn_transport_error(pn_transport_t *transport);
/**
* Binds the transport to an AMQP connection.
@@ -252,7 +262,7 @@ PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tracer);
/**
- * Get the tracning function used by a transport.
+ * Get the tracing function used by a transport.
*
* @param[in] transport a transport object
* @return the tracing function used by a transport
@@ -260,6 +270,8 @@ PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tr
PN_EXTERN pn_tracer_t pn_transport_get_tracer(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Get the application context that is associated with a transport object.
*
* The application context for a transport may be set using
@@ -272,6 +284,7 @@ PN_EXTERN void *pn_transport_get_context(pn_transport_t *transport);
/**
* @deprecated
+ *
* Set a new application context for a transport object.
*
* The application context for a transport object may be retrieved using
@@ -291,6 +304,8 @@ PN_EXTERN void pn_transport_set_context(pn_transport_t *transport, void *context
PN_EXTERN pn_record_t *pn_transport_attachments(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Log a message using a transport's logging mechanism.
*
* This can be useful in a debugging context as the log message will
@@ -302,6 +317,8 @@ PN_EXTERN pn_record_t *pn_transport_attachments(pn_transport_t *transport);
PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message);
/**
+ * @deprecated
+ *
* Log a printf formatted message using a transport's logging
* mechanism.
*
@@ -315,6 +332,8 @@ PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message);
PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va_list ap);
/**
+ * @deprecated
+ *
* Log a printf formatted message using a transport's logging
* mechanism.
*
@@ -327,6 +346,8 @@ PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va
PN_EXTERN void pn_transport_logf(pn_transport_t *transport, const char *fmt, ...);
/**
+ * @deprecated
+ *
* Get the maximum allowed channel for a transport.
* This will be the minimum of
* 1. limit imposed by this proton implementation
@@ -339,6 +360,8 @@ PN_EXTERN void pn_transport_logf(pn_transport_t *transport, const char *fmt, ...
PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Set the maximum allowed channel number for a transport.
* Note that this is the maximum channel number allowed, giving a
* valid channel number range of [0..channel_max]. Therefore the
@@ -358,6 +381,8 @@ PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport);
PN_EXTERN int pn_transport_set_channel_max(pn_transport_t *transport, uint16_t channel_max);
/**
+ * @deprecated
+ *
* Get the maximum allowed channel of a transport's remote peer.
*
* @param[in] transport a transport object
@@ -366,6 +391,8 @@ PN_EXTERN int pn_transport_set_channel_max(pn_transport_t *transport, uint16_t c
PN_EXTERN uint16_t pn_transport_remote_channel_max(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Get the maximum frame size of a transport.
*
* @param[in] transport a transport object
@@ -374,6 +401,8 @@ PN_EXTERN uint16_t pn_transport_remote_channel_max(pn_transport_t *transport);
PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Set the maximum frame size of a transport.
*
* @param[in] transport a transport object
@@ -382,6 +411,8 @@ PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size);
/**
+ * @deprecated
+ *
* Get the maximum frame size of a transport's remote peer.
*
* @param[in] transport a transport object
@@ -390,6 +421,8 @@ PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t si
PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Get the idle timeout for a transport.
*
* A zero idle timeout means heartbeats are disabled.
@@ -400,6 +433,8 @@ PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
/**
+ * @deprecated
+ *
* Set the idle timeout for a transport.
*
* A zero idle timeout means heartbeats are disabled.
@@ -410,6 +445,8 @@ PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
PN_EXTERN void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout);
/**
+ * @deprecated
+ *
* Get the idle timeout for a transport's remote peer.
*
* A zero idle timeout means heartbeats are disabled.
@@ -423,6 +460,7 @@ PN_EXTERN pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *trans
* @deprecated
*/
PN_EXTERN ssize_t pn_transport_input(pn_transport_t *transport, const char *bytes, size_t available);
+
/**
* @deprecated
*/
@@ -618,7 +656,8 @@ PN_EXTERN uint64_t pn_transport_get_frames_output(const pn_transport_t *transpor
*/
PN_EXTERN uint64_t pn_transport_get_frames_input(const pn_transport_t *transport);
-/** Access the AMQP Connection associated with the transport.
+/**
+ * Access the AMQP Connection associated with the transport.
*
* @param[in] transport a transport object
* @return the connection context for the transport, or NULL if
@@ -630,7 +669,8 @@ PN_EXTERN pn_connection_t *pn_transport_connection(pn_transport_t *transport);
}
#endif
-/** @}
+/**
+ * @}
*/
#endif /* transport.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/type_compat.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/type_compat.h b/proton-c/include/proton/type_compat.h
index 9a7422c..fe96994 100644
--- a/proton-c/include/proton/type_compat.h
+++ b/proton-c/include/proton/type_compat.h
@@ -22,6 +22,10 @@
*
*/
+/**
+ * @cond INTERNAL
+ */
+
// Get Boolean
#if !defined(__cplusplus) && !defined(__bool_true_false_are_defined)
# if __STDC_VERSION__ >= 199901L || __GNUC__ >= 3 || _MSC_VER >=1800
@@ -139,4 +143,8 @@ typedef unsigned __int64 uint64_t;
# endif
#endif // PNI_DEFINE_SSIZE_T
+/**
+ * @endcond
+ */
+
#endif /* type_compat.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/types.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/types.h b/proton-c/include/proton/types.h
index 190f089..2ceadd3 100644
--- a/proton-c/include/proton/types.h
+++ b/proton-c/include/proton/types.h
@@ -1,7 +1,6 @@
#ifndef PROTON_TYPES_H
#define PROTON_TYPES_H 1
-
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -29,11 +28,90 @@
/**
* @file
- * AMQP type system
+ *
+ * @defgroup core Core
+ * @brief Core protocol entities and event handling
+ *
+ * @defgroup connection Connection
+ * @brief A channel for communication between two peers on a network
+ * @ingroup core
+ *
+ * @defgroup session Session
+ * @brief A container of links
+ * @ingroup core
+ *
+ * @defgroup link Link
+ * @brief A channel for transferring messages
+ * @ingroup core
+ *
+ * @defgroup terminus Terminus
+ * @brief A source or target for messages
+ * @ingroup core
+ *
+ * @defgroup message Message
+ * @brief A mutable holder of application content
+ * @ingroup core
+ *
+ * @defgroup delivery Delivery
+ * @brief A message transfer
+ * @ingroup core
+ *
+ * @defgroup condition Condition
+ * @brief An endpoint error state
+ * @ingroup core
+ *
+ * @defgroup event Event
+ * @brief Protocol and transport events
+ * @ingroup core
+ *
+ * @defgroup transport Transport
+ * @brief A network channel supporting an AMQP connection
+ * @ingroup core
+ *
+ * @defgroup sasl SASL
+ * @brief SASL secure transport layer
+ * @ingroup core
+ *
+ * @defgroup ssl SSL
+ * @brief SSL secure transport layer
+ * @ingroup core
+ *
+ * @defgroup error Error
+ * @brief A Proton error
+ * @ingroup core
*
* @defgroup types Types
- * AMQP type system
- * @{
+ * @brief Protocol and API data types
+ *
+ * @defgroup amqp_types AMQP types
+ * @brief AMQP data types
+ * @ingroup types
+ *
+ * @defgroup api_types API types
+ * @brief Additional data types used in the API
+ * @ingroup types
+ *
+ * @defgroup codec Codec
+ * @brief AMQP data encoding and decoding
+ *
+ * @defgroup io IO
+ * @brief IO integration interfaces
+ *
+ * @defgroup connection_driver Connection Driver
+ * @brief **Experimental** - Low-level IO integration
+ * @ingroup io
+ *
+ * @defgroup proactor Proactor
+ * @brief **Experimental** - Multithreaded IO
+ * @ingroup io
+ *
+ * @defgroup messenger Messenger
+ * @deprecated
+ * @brief **Deprecated** - The Messenger API
+ *
+ * @defgroup url URL
+ * @deprecated
+ * @brief **Deprecated** - A URL parser
*/
#ifdef __cplusplus
@@ -41,54 +119,116 @@ extern "C" {
#endif
/**
- * @defgroup primitives Primitive Types
- * Primitive types
- * @{
+ * A sequence number.
+ *
+ * @ingroup api_types
*/
-
typedef int32_t pn_sequence_t;
+
+/**
+ * A span of time in milliseconds.
+ *
+ * @ingroup api_types
+ */
typedef uint32_t pn_millis_t;
+
+/**
+ * The maximum value for @ref pn_millis_t.
+ *
+ * @ingroup api_types
+ */
#define PN_MILLIS_MAX (~0U)
+
+/**
+ * A span of time in seconds.
+ *
+ * @ingroup api_types
+ */
typedef uint32_t pn_seconds_t;
-typedef int64_t pn_timestamp_t;
+/**
+ * A 64-bit timestamp in milliseconds since the Unix epoch.
+ *
+ * @ingroup amqp_types
+ */
+typedef int64_t pn_timestamp_t;
+/**
+ * A 32-bit Unicode code point.
+ *
+ * @ingroup amqp_types
+ */
typedef uint32_t pn_char_t;
+
+/**
+ * A 32-bit decimal floating-point number.
+ *
+ * @ingroup amqp_types
+ */
typedef uint32_t pn_decimal32_t;
+
+/**
+ * A 64-bit decimal floating-point number.
+ *
+ * @ingroup amqp_types
+ */
typedef uint64_t pn_decimal64_t;
+
+/**
+ * A 128-bit decimal floating-point number.
+ *
+ * @ingroup amqp_types
+ */
typedef struct {
char bytes[16];
} pn_decimal128_t;
+
+/**
+ * A 16-byte universally unique identifier.
+ *
+ * @ingroup amqp_types
+ */
typedef struct {
char bytes[16];
} pn_uuid_t;
-/** A const byte buffer. */
+/**
+ * A const byte buffer.
+ *
+ * @ingroup api_types
+ */
typedef struct pn_bytes_t {
size_t size;
const char *start;
} pn_bytes_t;
+/**
+ * Create a @ref pn_bytes_t
+ *
+ * @ingroup api_types
+ */
PN_EXTERN pn_bytes_t pn_bytes(size_t size, const char *start);
+
static const pn_bytes_t pn_bytes_null = { 0, NULL };
-/** A non-const byte buffer. */
+/**
+ * A non-const byte buffer.
+ *
+ * @ingroup api_types
+ */
typedef struct pn_rwbytes_t {
size_t size;
char *start;
} pn_rwbytes_t;
-PN_EXTERN pn_rwbytes_t pn_rwbytes(size_t size, char *start);
-static const pn_bytes_t pn_rwbytes_null = { 0, NULL };
-
-/** @}
- */
-
/**
- * @defgroup abstract Abstract Types
- * Abstract types
- * @{
+ * Create a @ref pn_rwbytes_t
+ *
+ * @ingroup api_types
*/
+PN_EXTERN pn_rwbytes_t pn_rwbytes(size_t size, char *start);
+
+static const pn_bytes_t pn_rwbytes_null = { 0, NULL };
/**
* Holds the state flags for an AMQP endpoint.
@@ -122,8 +262,7 @@ typedef int pn_state_t;
* contains zero or more ::pn_session_t objects, which in turn contain
* zero or more ::pn_link_t objects. Each ::pn_link_t object contains
* an ordered sequence of ::pn_delivery_t objects. A link is either a
- * @link sender Sender @endlink, or a @link receiver Receiver
- * @endlink, but never both.
+ * sender or a receiver but never both.
*
* @ingroup connection
*/
@@ -146,8 +285,8 @@ typedef struct pn_session_t pn_session_t;
* A pn_link_t object encapsulates all of the endpoint state
* associated with an AMQP Link. A pn_link_t object contains an
* ordered sequence of ::pn_delivery_t objects representing in-flight
- * deliveries. A pn_link_t may be either a @link sender Sender
- * @endlink, or a @link receiver Receiver @endlink, but never both.
+ * deliveries. A pn_link_t may be either sender or a receiver but
+ * never both.
*
* A pn_link_t object maintains a pointer to the *current* delivery
* within the ordered sequence of deliveries contained by the link
@@ -274,21 +413,19 @@ typedef struct pn_collector_t pn_collector_t;
typedef struct pn_transport_t pn_transport_t;
/**
- * An event handler
+ * @cond INTERNAL
*
- * A pn_handler_t is target of ::pn_event_t dispatched by the ::pn_reactor_t
+ * An event handler
*
- * @ingroup reactor
+ * A pn_handler_t is target of ::pn_event_t dispatched by the pn_reactor_t
*/
typedef struct pn_handler_t pn_handler_t;
-
-/** @}
+/**
+ * @endcond
*/
+
#ifdef __cplusplus
}
#endif
-/** @}
- */
-
#endif /* types.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/7bae4756/proton-c/include/proton/url.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/url.h b/proton-c/include/proton/url.h
index 4ff9536..49faa30 100644
--- a/proton-c/include/proton/url.h
+++ b/proton-c/include/proton/url.h
@@ -1,5 +1,6 @@
#ifndef PROTON_URL_H
-#define PROTON_URL_H
+#define PROTON_URL_H 1
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -25,23 +26,29 @@
extern "C" {
#endif
-
/**
* @file
- * Parsing URLs.
*
- * @defgroup url URL
- * Parsing URLs.
-! * @{
+ * **Deprecated**
+ *
+ * @deprecated
+ *
+ * @addtogroup url
+ * @{
*/
-/** A parsed URL */
+/**
+ * A parsed URL
+ */
typedef struct pn_url_t pn_url_t;
-/** Create an empty URL */
+/**
+ * Create an empty URL
+ */
PNX_EXTERN pn_url_t *pn_url(void);
-/** Parse a string URL as a pn_url_t.
+/**
+ * Parse a string URL as a pn_url_t.
*
* URL syntax:
*
@@ -55,31 +62,34 @@ PNX_EXTERN pn_url_t *pn_url(void);
*
* `path` can contain any character
*
- *@param[in] url A URL string.
- *@return The parsed pn_url_t or NULL if url is not a valid URL string.
+ * @param[in] url A URL string.
+ * @return The parsed pn_url_t or NULL if url is not a valid URL string.
*/
PNX_EXTERN pn_url_t *pn_url_parse(const char *url);
-/** Free a URL */
+/**
+ * Free a URL */
PNX_EXTERN void pn_url_free(pn_url_t *url);
-/** Clear the contents of the URL. */
+/**
+ * Clear the contents of the URL.
+ */
PNX_EXTERN void pn_url_clear(pn_url_t *url);
/**
* Return the string form of a URL.
*
- * The returned string is owned by the pn_url_t and will become invalid if it
- * is modified.
+ * The returned string is owned by the pn_url_t and will become
+ * invalid if it is modified.
*/
PNX_EXTERN const char *pn_url_str(pn_url_t *url);
/**
- *@name Getters for parts of the URL.
+ * @name Getters for parts of the URL.
*
- *Values belong to the URL. May return NULL if the value is not set.
+ * Values belong to the URL. May return NULL if the value is not set.
*
- *@{
+ * @{
*/
PNX_EXTERN const char *pn_url_get_scheme(pn_url_t *url);
PNX_EXTERN const char *pn_url_get_username(pn_url_t *url);
@@ -87,14 +97,17 @@ PNX_EXTERN const char *pn_url_get_password(pn_url_t *url);
PNX_EXTERN const char *pn_url_get_host(pn_url_t *url);
PNX_EXTERN const char *pn_url_get_port(pn_url_t *url);
PNX_EXTERN const char *pn_url_get_path(pn_url_t *url);
-///@}
+/**
+ * @}
+ */
/**
- *@name Setters for parts of the URL.
+ * @name Setters for parts of the URL.
*
- *Values are copied. Value can be NULL to indicate the part is not set.
+ * Values are copied. Value can be NULL to indicate the part is not
+ * set.
*
- *@{
+ * @{
*/
PNX_EXTERN void pn_url_set_scheme(pn_url_t *url, const char *scheme);
PNX_EXTERN void pn_url_set_username(pn_url_t *url, const char *username);
@@ -102,12 +115,16 @@ PNX_EXTERN void pn_url_set_password(pn_url_t *url, const char *password);
PNX_EXTERN void pn_url_set_host(pn_url_t *url, const char *host);
PNX_EXTERN void pn_url_set_port(pn_url_t *url, const char *port);
PNX_EXTERN void pn_url_set_path(pn_url_t *url, const char *path);
-///@}
+/**
+ * @}
+ */
-///@}
+/**
+ * @}
+ */
#ifdef __cplusplus
}
#endif
-#endif
+#endif /* url.h */
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[17/30] qpid-proton git commit: NO-JIRA: remove stale link
Posted by ac...@apache.org.
NO-JIRA: remove stale link
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/6c80c46f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/6c80c46f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/6c80c46f
Branch: refs/heads/go1
Commit: 6c80c46f1449e5484857f38d238b9ab96057b550
Parents: 74d4b59
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 11:42:04 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 11:42:04 2016 +0000
----------------------------------------------------------------------
DEVELOPERS.md | 3 ---
1 file changed, 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/6c80c46f/DEVELOPERS.md
----------------------------------------------------------------------
diff --git a/DEVELOPERS.md b/DEVELOPERS.md
index 6231532..4e9b06b 100644
--- a/DEVELOPERS.md
+++ b/DEVELOPERS.md
@@ -1,9 +1,6 @@
Qpid Proton Developer Information
=================================
-Please see http://qpid.apache.org/proton/development.html for the current
-roadmap.
-
Development Environment
-----------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[28/30] qpid-proton git commit: PROTON-1379: [C++ binding] Add #if'd
#include [closes #92]
Posted by ac...@apache.org.
PROTON-1379: [C++ binding] Add #if'd #include <functional>
[closes #92]
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/cd6ecc5f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/cd6ecc5f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/cd6ecc5f
Branch: refs/heads/go1
Commit: cd6ecc5fd9cc29cd2fa594c59166dd9d432fd4b9
Parents: 673c75e
Author: Jiri Danek <jd...@redhat.com>
Authored: Fri Dec 23 15:18:28 2016 +0100
Committer: Andrew Stitcher <as...@apache.org>
Committed: Fri Dec 23 10:48:31 2016 -0500
----------------------------------------------------------------------
proton-c/bindings/cpp/include/proton/container.hpp | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cd6ecc5f/proton-c/bindings/cpp/include/proton/container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/container.hpp b/proton-c/bindings/cpp/include/proton/container.hpp
index 0c40f3d..6f10c3c 100644
--- a/proton-c/bindings/cpp/include/proton/container.hpp
+++ b/proton-c/bindings/cpp/include/proton/container.hpp
@@ -29,6 +29,9 @@
#include "./internal/export.hpp"
#include "./internal/pn_unique_ptr.hpp"
+#ifdef PN_CPP_HAS_STD_FUNCTION
+#include <functional>
+#endif
#include <string>
namespace proton {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[14/30] qpid-proton git commit: PROTON-1372: [C++ binding] Pimpl
event_loop - To make sure that we maintain C++03/C++11 cross compatibility.
Posted by ac...@apache.org.
PROTON-1372: [C++ binding] Pimpl event_loop
- To make sure that we maintain C++03/C++11 cross compatibility.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/f89d24d8
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/f89d24d8
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/f89d24d8
Branch: refs/heads/go1
Commit: f89d24d855fe684d97ef640235a04afdbb08c885
Parents: bea6173
Author: Andrew Stitcher <as...@apache.org>
Authored: Thu Dec 8 03:25:57 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Thu Dec 8 03:49:58 2016 -0500
----------------------------------------------------------------------
.../bindings/cpp/include/proton/event_loop.hpp | 38 ++++++++++++++-----
.../cpp/include/proton/internal/config.hpp | 4 ++
.../cpp/include/proton/internal/object.hpp | 2 +-
.../cpp/include/proton/io/connection_driver.hpp | 5 ++-
.../bindings/cpp/include/proton/thread_safe.hpp | 23 ++++++------
proton-c/bindings/cpp/src/container_impl.cpp | 27 ++++++--------
proton-c/bindings/cpp/src/event_loop.cpp | 28 +++++++++++---
proton-c/bindings/cpp/src/include/contexts.hpp | 2 +-
.../cpp/src/include/event_loop_impl.hpp | 39 ++++++++++++++++++++
.../bindings/cpp/src/io/connection_driver.cpp | 12 +++++-
proton-c/bindings/cpp/src/thread_safe_test.cpp | 4 +-
11 files changed, 135 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/include/proton/event_loop.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/event_loop.hpp b/proton-c/bindings/cpp/include/proton/event_loop.hpp
index d43ba4f..f49d211 100644
--- a/proton-c/bindings/cpp/include/proton/event_loop.hpp
+++ b/proton-c/bindings/cpp/include/proton/event_loop.hpp
@@ -25,6 +25,7 @@
#include "./fwd.hpp"
#include "./internal/config.hpp"
#include "./internal/export.hpp"
+#include "./internal/pn_unique_ptr.hpp"
#include <functional>
@@ -41,31 +42,48 @@ namespace proton {
/// and have it executed in the same sequence.
///
class PN_CPP_CLASS_EXTERN event_loop {
+ /// @cond internal
+ class impl;
+ event_loop& operator=(impl* i);
+ /// @endcond
+
public:
- virtual ~event_loop() {}
+ /// Create event_loop
+ PN_CPP_EXTERN event_loop();
+
+ PN_CPP_EXTERN ~event_loop();
+
+#if PN_CPP_HAS_EXPLICIT_CONVERSIONS
+ /// When using C++11 (or later) you can use event_loop in a bool context
+ /// to indicate if there is an event loop set.
+ PN_CPP_EXTERN explicit operator bool() const { return bool(impl_); }
+#endif
+
+ /// No event loop set.
+ PN_CPP_EXTERN bool operator !() const { return !impl_; }
/// Arrange to have f() called in the event_loop's sequence: possibly
/// deferred, possibly in another thread.
///
/// @return true if f() has or will be called, false if the event_loop is ended
/// and f() cannot be injected.
- virtual bool inject(void_function0& f) = 0;
+ PN_CPP_EXTERN bool inject(void_function0& f);
#if PN_CPP_HAS_STD_FUNCTION
/// @copydoc inject(void_function0&)
- virtual bool inject(std::function<void()> f) = 0;
+ PN_CPP_EXTERN bool inject(std::function<void()> f);
#endif
- protected:
- event_loop() {}
-
private:
- PN_CPP_EXTERN static event_loop* get(pn_connection_t*);
- PN_CPP_EXTERN static event_loop* get(pn_session_t*);
- PN_CPP_EXTERN static event_loop* get(pn_link_t*);
+ PN_CPP_EXTERN static event_loop& get(pn_connection_t*);
+ PN_CPP_EXTERN static event_loop& get(pn_session_t*);
+ PN_CPP_EXTERN static event_loop& get(pn_link_t*);
+
+ internal::pn_unique_ptr<impl> impl_;
/// @cond INTERNAL
- friend class connection;
+ friend class container;
+ friend class io::connection_driver;
template <class T> friend class thread_safe;
/// @endcond
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/include/proton/internal/config.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/internal/config.hpp b/proton-c/bindings/cpp/include/proton/internal/config.hpp
index 612e1e3..563a304 100644
--- a/proton-c/bindings/cpp/include/proton/internal/config.hpp
+++ b/proton-c/bindings/cpp/include/proton/internal/config.hpp
@@ -87,6 +87,10 @@
#define PN_CPP_HAS_STD_FUNCTION PN_CPP_HAS_CPP11
#endif
+#ifndef PN_CPP_HAS_STD_BIND
+#define PN_CPP_HAS_STD_BIND PN_CPP_HAS_CPP11
+#endif
+
#ifndef PN_CPP_HAS_CHRONO
#define PN_CPP_HAS_CHRONO PN_CPP_HAS_CPP11
#endif
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/include/proton/internal/object.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/internal/object.hpp b/proton-c/bindings/cpp/include/proton/internal/object.hpp
index 78a990c..d492b80 100644
--- a/proton-c/bindings/cpp/include/proton/internal/object.hpp
+++ b/proton-c/bindings/cpp/include/proton/internal/object.hpp
@@ -101,7 +101,7 @@ template <class T> class object : private comparable<object<T> > {
friend bool operator==(const object& a, const object& b) { return a.object_ == b.object_; }
friend bool operator<(const object& a, const object& b) { return a.object_ < b.object_; }
friend std::ostream& operator<<(std::ostream& o, const object& a) { o << a.object_.inspect(); return o; }
- template <class U> friend class proton::thread_safe;
+ template <class U> friend class proton::thread_safe;
};
/// Factory class used internally to make wrappers and extract proton objects
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/include/proton/io/connection_driver.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/io/connection_driver.hpp b/proton-c/bindings/cpp/include/proton/io/connection_driver.hpp
index d5da718..4a0efe9 100644
--- a/proton-c/bindings/cpp/include/proton/io/connection_driver.hpp
+++ b/proton-c/bindings/cpp/include/proton/io/connection_driver.hpp
@@ -111,7 +111,10 @@ PN_CPP_CLASS_EXTERN connection_driver {
/// the user pins it in memory using the proton::thread_safe<> template.
/// The event_loop is deleted when, and only when, the proton::connection is.
///
- PN_CPP_EXTERN connection_driver(proton::container&, event_loop* loop = 0);
+ PN_CPP_EXTERN connection_driver(proton::container&);
+#if PN_CPP_HAS_RVALUE_REFERENCES
+ PN_CPP_EXTERN connection_driver(proton::container&, event_loop&& loop);
+#endif
PN_CPP_EXTERN ~connection_driver();
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/include/proton/thread_safe.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/thread_safe.hpp b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
index 28aa3a6..608a1ca 100644
--- a/proton-c/bindings/cpp/include/proton/thread_safe.hpp
+++ b/proton-c/bindings/cpp/include/proton/thread_safe.hpp
@@ -43,8 +43,6 @@ template<> struct endpoint_traits<sender> {};
template<> struct endpoint_traits<receiver> {};
}
-template <class T> class returned;
-
/// **Experimental** - A thread-safe object wrapper.
///
/// The proton::object subclasses (proton::connection, proton::sender etc.) are
@@ -78,11 +76,11 @@ class thread_safe : private internal::pn_ptr_base, private internal::endpoint_tr
~thread_safe() {
if (ptr()) {
- if (event_loop()) {
-#if PN_CPP_HAS_CPP11
- event_loop()->inject(std::bind(&decref, ptr()));
+ if (!!event_loop()) {
+#if PN_CPP_HAS_STD_BIND
+ event_loop().inject(std::bind(&decref, ptr()));
#else
- event_loop()->inject(*new inject_decref(ptr()));
+ event_loop().inject(*new inject_decref(ptr()));
#endif
} else {
decref(ptr());
@@ -91,7 +89,7 @@ class thread_safe : private internal::pn_ptr_base, private internal::endpoint_tr
}
/// Get the event loop for this object.
- class event_loop* event_loop() { return event_loop::get(ptr()); }
+ class event_loop& event_loop() { return event_loop::get(ptr()); }
/// Get the thread-unsafe proton object wrapped by this thread_safe<T>
T unsafe() { return T(ptr()); }
@@ -140,12 +138,13 @@ class returned : private internal::endpoint_traits<T>
/// Implicit conversion to target, usable only in a safe context.
operator T() { return ptr_->unsafe(); }
-#if PN_CPP_HAS_CPP11
+#if PN_CPP_HAS_SHARED_PTR
/// Release to a std::shared_ptr
operator std::shared_ptr<thread_safe<T> >() {
return std::shared_ptr<thread_safe<T> >(release());
}
-
+#endif
+#if PN_CPP_HAS_UNIQUE_PTR
/// Release to a std::unique_ptr
operator std::unique_ptr<thread_safe<T> >() {
return std::unique_ptr<thread_safe<T> >(release());
@@ -160,13 +159,13 @@ class returned : private internal::endpoint_traits<T>
/// Make a thread-safe wrapper for `obj`.
template <class T> returned<T> make_thread_safe(const T& obj) { return returned<T>(obj); }
-#if PN_CPP_HAS_CPP11
-
+#if PN_CPP_HAS_SHARED_PTR
/// Create a thread-safe shared_ptr to `obj`.
template <class T> std::shared_ptr<thread_safe<T> > make_shared_thread_safe(const T& obj) {
return make_thread_safe(obj);
}
-
+#endif
+#if PN_CPP_HAS_UNIQUE_PTR
/// Create a thread-safe unique_ptr to `obj`.
template <class T> std::unique_ptr<thread_safe<T> > make_unique_thread_safe(const T& obj) {
return make_thread_safe(obj);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/src/container_impl.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container_impl.cpp b/proton-c/bindings/cpp/src/container_impl.cpp
index 5f13b82..9cec831 100644
--- a/proton-c/bindings/cpp/src/container_impl.cpp
+++ b/proton-c/bindings/cpp/src/container_impl.cpp
@@ -38,6 +38,7 @@
#include "connector.hpp"
#include "container_impl.hpp"
#include "contexts.hpp"
+#include "event_loop_impl.hpp"
#include "messaging_adapter.hpp"
#include "msg.hpp"
#include "proton_bits.hpp"
@@ -160,24 +161,20 @@ container::impl::~impl() {
close_acceptor(i->second);
}
-namespace {
// FIXME aconway 2016-06-07: this is not thread safe. It is sufficient for using
// default_container::schedule() inside a handler but not for inject() from
// another thread.
-struct immediate_event_loop : public event_loop {
- virtual bool inject(void_function0& f) PN_CPP_OVERRIDE {
- try { f(); } catch(...) {}
- return true;
- }
+bool event_loop::impl::inject(void_function0& f) {
+ try { f(); } catch(...) {}
+ return true;
+}
-#if PN_CPP_HAS_CPP11
- virtual bool inject(std::function<void()> f) PN_CPP_OVERRIDE {
- try { f(); } catch(...) {}
- return true;
- }
-#endif
-};
+#if PN_CPP_HAS_STD_FUNCTION
+bool event_loop::impl::inject(std::function<void()> f) {
+ try { f(); } catch(...) {}
+ return true;
}
+#endif
returned<connection> container::impl::connect(const std::string &urlstr, const connection_options &user_opts) {
connection_options opts = client_connection_options(); // Defaults
@@ -195,7 +192,7 @@ returned<connection> container::impl::connect(const std::string &urlstr, const c
internal::pn_unique_ptr<connector> ctor(new connector(conn, opts, url));
connection_context& cc(connection_context::get(conn));
cc.handler.reset(ctor.release());
- cc.event_loop.reset(new immediate_event_loop);
+ cc.event_loop_ = new event_loop::impl;
pn_connection_t *pnc = unwrap(conn);
pn_connection_set_container(pnc, id_.c_str());
@@ -347,7 +344,7 @@ void container::impl::configure_server_connection(connection &c) {
pn_record_t *record = pn_connection_attachments(unwrap(c));
pn_record_set_handler(record, chandler.get());
}
- connection_context::get(c).event_loop.reset(new immediate_event_loop);
+ connection_context::get(c).event_loop_ = new event_loop::impl;
}
void container::impl::run() {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/src/event_loop.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/event_loop.cpp b/proton-c/bindings/cpp/src/event_loop.cpp
index 3d373c4..ea4ee71 100644
--- a/proton-c/bindings/cpp/src/event_loop.cpp
+++ b/proton-c/bindings/cpp/src/event_loop.cpp
@@ -17,24 +17,40 @@
* under the License.
*/
+#include "proton/event_loop.hpp"
+
#include "contexts.hpp"
+#include "event_loop_impl.hpp"
#include <proton/session.h>
#include <proton/link.h>
-#include "proton/event_loop.hpp"
-
namespace proton {
-event_loop* event_loop::get(pn_connection_t* c) {
- return connection_context::get(c).event_loop.get();
+event_loop::event_loop() {}
+event_loop::~event_loop() {}
+
+event_loop& event_loop::operator=(impl* i) { impl_.reset(i); return *this; }
+
+bool event_loop::inject(void_function0& f) {
+ return impl_->inject(f);
+}
+
+#if PN_CPP_HAS_STD_FUNCTION
+bool event_loop::inject(std::function<void()> f) {
+ return impl_->inject(f);
+}
+#endif
+
+event_loop& event_loop::get(pn_connection_t* c) {
+ return connection_context::get(c).event_loop_;
}
-event_loop* event_loop::get(pn_session_t* s) {
+event_loop& event_loop::get(pn_session_t* s) {
return get(pn_session_connection(s));
}
-event_loop* event_loop::get(pn_link_t* l) {
+event_loop& event_loop::get(pn_link_t* l) {
return get(pn_link_session(l));
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/src/include/contexts.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/contexts.hpp b/proton-c/bindings/cpp/src/include/contexts.hpp
index 4306489..e80c434 100644
--- a/proton-c/bindings/cpp/src/include/contexts.hpp
+++ b/proton-c/bindings/cpp/src/include/contexts.hpp
@@ -93,7 +93,7 @@ class connection_context : public context {
io::link_namer* link_gen; // Link name generator.
internal::pn_unique_ptr<proton_handler> handler;
- internal::pn_unique_ptr<class event_loop> event_loop;
+ event_loop event_loop_;
static connection_context& get(pn_connection_t *c) { return ref<connection_context>(id(c)); }
static connection_context& get(const connection& c) { return ref<connection_context>(id(c)); }
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/src/include/event_loop_impl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/event_loop_impl.hpp b/proton-c/bindings/cpp/src/include/event_loop_impl.hpp
new file mode 100644
index 0000000..b34a981
--- /dev/null
+++ b/proton-c/bindings/cpp/src/include/event_loop_impl.hpp
@@ -0,0 +1,39 @@
+#ifndef PROTON_CPP_EVENT_LOOP_IMPL_HPP
+#define PROTON_CPP_EVENT_LOOP_IMPL_HPP
+
+/*
+ *
+ * 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/fwd.hpp"
+
+namespace proton {
+
+class event_loop::impl {
+ public:
+ bool inject(void_function0& f);
+#if PN_CPP_HAS_CPP11
+ bool inject(std::function<void()> f);
+#endif
+};
+
+}
+
+#endif // PROTON_CPP_EVENT_LOOP_IMPL_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/src/io/connection_driver.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/io/connection_driver.cpp b/proton-c/bindings/cpp/src/io/connection_driver.cpp
index ca9f68e..148a00b 100644
--- a/proton-c/bindings/cpp/src/io/connection_driver.cpp
+++ b/proton-c/bindings/cpp/src/io/connection_driver.cpp
@@ -49,13 +49,21 @@ void connection_driver::init() {
connection_driver::connection_driver() : handler_(0), container_(0) { init(); }
-connection_driver::connection_driver(class container& cont, event_loop* loop) : handler_(0), container_(&cont) {
+connection_driver::connection_driver(class container& cont) : handler_(0), container_(&cont) {
init();
connection_context& ctx = connection_context::get(connection());
ctx.container = container_;
- ctx.event_loop.reset(loop);
}
+#if PN_CPP_HAS_RVALUE_REFERENCES
+connection_driver::connection_driver(class container& cont, event_loop&& loop) : handler_(0), container_(&cont) {
+ init();
+ connection_context& ctx = connection_context::get(connection());
+ ctx.container = container_;
+ ctx.event_loop_ = loop.impl_.get();
+}
+#endif
+
connection_driver::~connection_driver() {
pn_connection_driver_destroy(&driver_);
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/f89d24d8/proton-c/bindings/cpp/src/thread_safe_test.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/thread_safe_test.cpp b/proton-c/bindings/cpp/src/thread_safe_test.cpp
index 5b5d487..3a72f7f 100644
--- a/proton-c/bindings/cpp/src/thread_safe_test.cpp
+++ b/proton-c/bindings/cpp/src/thread_safe_test.cpp
@@ -50,7 +50,7 @@ void test_new() {
ASSERT_EQUAL(1, pn_refcount(c)); // Engine gone, thread_safe keeping c alive.
delete p;
-#if PN_CPP_HAS_CPP11
+#if PN_CPP_HAS_SHARED_PTR
{
std::shared_ptr<thread_safe<connection> > sp;
{
@@ -60,6 +60,8 @@ void test_new() {
}
ASSERT_EQUAL(1, pn_refcount(c)); // Engine gone, sp keeping c alive.
}
+#endif
+#if PN_CPP_HAS_UNIQUE_PTR
{
std::unique_ptr<thread_safe<connection> > up;
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[02/30] qpid-proton git commit: PROTON-1355: add ability to control
sni directly as well
Posted by ac...@apache.org.
PROTON-1355: add ability to control sni directly as well
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/b47ebb7e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/b47ebb7e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/b47ebb7e
Branch: refs/heads/go1
Commit: b47ebb7e4473e1efd5ee6c735b17ca0595e48184
Parents: 7d404b6
Author: Gordon Sim <gs...@redhat.com>
Authored: Fri Nov 18 13:50:36 2016 +0000
Committer: Gordon Sim <gs...@redhat.com>
Committed: Wed Nov 30 20:49:13 2016 +0000
----------------------------------------------------------------------
proton-c/bindings/python/proton/reactor.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/b47ebb7e/proton-c/bindings/python/proton/reactor.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/reactor.py b/proton-c/bindings/python/proton/reactor.py
index 3562aa9..e4dab95 100644
--- a/proton-c/bindings/python/proton/reactor.py
+++ b/proton-c/bindings/python/proton/reactor.py
@@ -534,6 +534,7 @@ class Connector(Handler):
self.user = None
self.password = None
self.virtual_host = None
+ self.ssl_sni = None
def _connect(self, connection, reactor):
assert(reactor is not None)
@@ -565,7 +566,7 @@ class Connector(Handler):
if not self.ssl_domain:
raise SSLUnavailable("amqps: SSL libraries not found")
self.ssl = SSL(transport, self.ssl_domain)
- self.ssl.peer_hostname = self.virtual_host if self.virtual_host != None else url.host
+ self.ssl.peer_hostname = self.ssl_sni or self.virtual_host or url.host
def on_connection_local_open(self, event):
self._connect(event.connection, event.reactor)
@@ -724,6 +725,7 @@ class Container(Reactor):
if connector.virtual_host:
# only set hostname if virtual-host is a non-empty string
conn.hostname = connector.virtual_host
+ connector.ssl_sni = kwargs.get('sni')
conn._overrides = connector
if url: connector.address = Urls([url])
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[03/30] qpid-proton git commit: PROTON-1336: make reactor teardown
sequence work with Windows io objects
Posted by ac...@apache.org.
PROTON-1336: make reactor teardown sequence work with Windows io objects
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/9adbca28
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/9adbca28
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/9adbca28
Branch: refs/heads/go1
Commit: 9adbca2818a0aaf860f7d0854e6267d08117a2b1
Parents: b47ebb7
Author: Clifford Jansen <cl...@apache.org>
Authored: Thu Dec 1 12:10:22 2016 -0800
Committer: Clifford Jansen <cl...@apache.org>
Committed: Thu Dec 1 12:10:22 2016 -0800
----------------------------------------------------------------------
proton-c/src/reactor/io/windows/io.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/9adbca28/proton-c/src/reactor/io/windows/io.c
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/io/windows/io.c b/proton-c/src/reactor/io/windows/io.c
index 3ae6722..07692d1 100644
--- a/proton-c/src/reactor/io/windows/io.c
+++ b/proton-c/src/reactor/io/windows/io.c
@@ -92,8 +92,11 @@ void pn_io_initialize(void *obj)
void pn_io_finalize(void *obj)
{
pn_io_t *io = (pn_io_t *) obj;
- pn_error_free(io->error);
+ pn_selector_t *sel = io->iocp->selector;
pn_free(io->iocp);
+ if (sel)
+ pn_decref(sel);
+ pn_error_free(io->error);
WSACleanup();
}
@@ -368,8 +371,10 @@ bool pn_wouldblock(pn_io_t *io)
pn_selector_t *pn_io_selector(pn_io_t *io)
{
- if (io->iocp->selector == NULL)
+ if (io->iocp->selector == NULL) {
io->iocp->selector = pni_selector_create(io->iocp);
+ pn_incref(io->iocp->selector);
+ }
return io->iocp->selector;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[09/30] qpid-proton git commit: PROTON-1367: Use an exclusion method
that doesn't require absolute paths; remove some unused config options
Posted by ac...@apache.org.
PROTON-1367: Use an exclusion method that doesn't require absolute paths; remove some unused config options
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/325e399e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/325e399e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/325e399e
Branch: refs/heads/go1
Commit: 325e399e3fe3e8a7fd2dc032c1ea69ec9476b780
Parents: 140cf99
Author: Justin Ross <jr...@apache.org>
Authored: Fri Dec 2 15:33:39 2016 -0800
Committer: Justin Ross <jr...@apache.org>
Committed: Fri Dec 2 15:33:39 2016 -0800
----------------------------------------------------------------------
proton-c/docs/api/user.doxygen.in | 27 ++++++++++++---------------
1 file changed, 12 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/325e399e/proton-c/docs/api/user.doxygen.in
----------------------------------------------------------------------
diff --git a/proton-c/docs/api/user.doxygen.in b/proton-c/docs/api/user.doxygen.in
index 7c4a771..4a02bd2 100644
--- a/proton-c/docs/api/user.doxygen.in
+++ b/proton-c/docs/api/user.doxygen.in
@@ -28,9 +28,7 @@ REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = YES
JAVADOC_AUTOBRIEF = YES
-#MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
-BUILTIN_STL_SUPPORT = YES
INLINE_SIMPLE_STRUCTS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_COMPOUND_REFERENCE = YES
@@ -45,7 +43,6 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
PREDEFINED = PN_EXTERN= PNX_EXTERN=
-#EXCLUDE_SYMBOLS =
# Configuration options related to warning and progress messages
@@ -56,18 +53,18 @@ WARNINGS = YES
INPUT = @CMAKE_SOURCE_DIR@/proton-c/include @CMAKE_SOURCE_DIR@/proton-c/docs @CMAKE_SOURCE_DIR@/examples/c
FILE_PATTERNS = *.h *.md *.dox
-EXCLUDE = \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/cid.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/engine.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/handlers.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/import_export.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/log.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/object.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/parser.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/reactor.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/selectable.h \
- @CMAKE_SOURCE_DIR@/proton-c/include/proton/type_compat.h
-EXCLUDE_PATTERNS = @CMAKE_SOURCE_DIR@/examples/*.c @CMAKE_SOURCE_DIR@/examples/*.h
+EXCLUDE_PATTERNS = */examples/*.c \
+ */examples/*.h \
+ */include/proton/cid.h \
+ */include/proton/engine.h \
+ */include/proton/handlers.h \
+ */include/proton/import_export.h \
+ */include/proton/log.h \
+ */include/proton/object.h \
+ */include/proton/parser.h \
+ */include/proton/reactor.h \
+ */include/proton/selectable.h \
+ */include/proton/type_compat.h
FULL_PATH_NAMES = YES
RECURSIVE = YES
STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@/proton-c/include
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[19/30] qpid-proton git commit: PROTON-1355: dummy commit for PR
cleanup. This closes #90
Posted by ac...@apache.org.
PROTON-1355: dummy commit for PR cleanup. This closes #90
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/e99d0742
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/e99d0742
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/e99d0742
Branch: refs/heads/go1
Commit: e99d0742090befffbaa31f484627e96bd112a1b6
Parents: db05c13
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 12:03:05 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 12:03:05 2016 +0000
----------------------------------------------------------------------
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[10/30] qpid-proton git commit: PROTON-1311: C interface to get/set
the link max-msessage-size
Posted by ac...@apache.org.
PROTON-1311: C interface to get/set the link max-msessage-size
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/0a2d28e1
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/0a2d28e1
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/0a2d28e1
Branch: refs/heads/go1
Commit: 0a2d28e13978603f2a699a4bff91adf3dd90d309
Parents: 325e399
Author: Clifford Jansen <cl...@apache.org>
Authored: Sat Dec 3 17:42:40 2016 -0800
Committer: Clifford Jansen <cl...@apache.org>
Committed: Sat Dec 3 17:45:03 2016 -0800
----------------------------------------------------------------------
proton-c/bindings/python/proton/__init__.py | 10 ++++++++
proton-c/include/proton/link.h | 30 ++++++++++++++++++++++++
proton-c/src/core/engine-internal.h | 2 ++
proton-c/src/core/engine.c | 17 ++++++++++++++
proton-c/src/core/transport.c | 13 ++++++----
tests/python/proton_tests/engine.py | 11 +++++++++
6 files changed, 79 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0a2d28e1/proton-c/bindings/python/proton/__init__.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/__init__.py b/proton-c/bindings/python/proton/__init__.py
index 516daf1..d3f6922 100644
--- a/proton-c/bindings/python/proton/__init__.py
+++ b/proton-c/bindings/python/proton/__init__.py
@@ -2868,6 +2868,16 @@ class Link(Wrapper, Endpoint):
def drained(self):
return pn_link_drained(self._impl)
+ @property
+ def remote_max_message_size(self):
+ return pn_link_remote_max_message_size(self._impl)
+
+ def _get_max_message_size(self):
+ return pn_link_max_message_size(self._impl)
+ def _set_max_message_size(self, mode):
+ pn_link_set_max_message_size(self._impl, mode)
+ max_message_size = property(_get_max_message_size, _set_max_message_size)
+
def detach(self):
return pn_link_detach(self._impl)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0a2d28e1/proton-c/include/proton/link.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/link.h b/proton-c/include/proton/link.h
index 8ec162e..d52e6e7 100644
--- a/proton-c/include/proton/link.h
+++ b/proton-c/include/proton/link.h
@@ -647,6 +647,36 @@ PN_EXTERN ssize_t pn_link_recv(pn_link_t *receiver, char *bytes, size_t n);
PN_EXTERN bool pn_link_draining(pn_link_t *receiver);
/**
+ * **Experimental** - Get the maximum message size for a link.
+ *
+ * A zero maximum message size means the size is unlimited.
+ *
+ * @param[in] link a link object
+ * @return the maximum message size for a link.
+ */
+PN_EXTERN uint64_t pn_link_max_message_size(pn_link_t *link);
+
+/**
+ * **Experimental** - Set the maximum message size for a link.
+ *
+ * A zero maximum message size means the size is unlimited.
+ *
+ * @param[in] link a link object
+ * @param[in] size the maximum message size for the link
+ */
+PN_EXTERN void pn_link_set_max_message_size(pn_link_t *link, uint64_t size);
+
+/**
+ * **Experimental** - Get the remote view of the maximum message size for a link.
+ *
+ * A zero maximum message size means the size is unlimited.
+ *
+ * @param[in] link a link object
+ * @return the remote view of the maximum message size for a link
+ */
+PN_EXTERN uint64_t pn_link_remote_max_message_size(pn_link_t *link);
+
+/**
* @}
*/
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0a2d28e1/proton-c/src/core/engine-internal.h
----------------------------------------------------------------------
diff --git a/proton-c/src/core/engine-internal.h b/proton-c/src/core/engine-internal.h
index fdaf272..1dbe91c 100644
--- a/proton-c/src/core/engine-internal.h
+++ b/proton-c/src/core/engine-internal.h
@@ -291,6 +291,8 @@ struct pn_link_t {
pn_delivery_t *current;
pn_record_t *context;
size_t unsettled_count;
+ uint64_t max_message_size;
+ uint64_t remote_max_message_size;
pn_sequence_t available;
pn_sequence_t credit;
pn_sequence_t queued;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0a2d28e1/proton-c/src/core/engine.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/engine.c b/proton-c/src/core/engine.c
index 99d311b..8c2aeb0 100644
--- a/proton-c/src/core/engine.c
+++ b/proton-c/src/core/engine.c
@@ -1176,6 +1176,8 @@ pn_link_t *pn_link_new(int type, pn_session_t *session, const char *name)
pni_terminus_init(&link->remote_target, PN_UNSPECIFIED);
link->unsettled_head = link->unsettled_tail = link->current = NULL;
link->unsettled_count = 0;
+ link->max_message_size = 0;
+ link->remote_max_message_size = 0;
link->available = 0;
link->credit = 0;
link->queued = 0;
@@ -1956,6 +1958,21 @@ bool pn_link_draining(pn_link_t *receiver)
return receiver->drain && (pn_link_credit(receiver) > pn_link_queued(receiver));
}
+uint64_t pn_link_max_message_size(pn_link_t *link)
+{
+ return link->max_message_size;
+}
+
+void pn_link_set_max_message_size(pn_link_t *link, uint64_t size)
+{
+ link->max_message_size = size;
+}
+
+uint64_t pn_link_remote_max_message_size(pn_link_t *link)
+{
+ return link->remote_max_message_size;
+}
+
pn_link_t *pn_delivery_link(pn_delivery_t *delivery)
{
assert(delivery);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0a2d28e1/proton-c/src/core/transport.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/transport.c b/proton-c/src/core/transport.c
index e3b88b1..444145a 100644
--- a/proton-c/src/core/transport.c
+++ b/proton-c/src/core/transport.c
@@ -1342,13 +1342,14 @@ int pn_do_attach(pn_transport_t *transport, uint8_t frame_type, uint16_t channel
pn_bytes_t dist_mode;
bool snd_settle, rcv_settle;
uint8_t snd_settle_mode, rcv_settle_mode;
- int err = pn_data_scan(args, "D.[SIo?B?BD.[SIsIo.s]D.[SIsIo]..I]", &name, &handle,
+ uint64_t max_msgsz;
+ int err = pn_data_scan(args, "D.[SIo?B?BD.[SIsIo.s]D.[SIsIo]..IL]", &name, &handle,
&is_sender,
&snd_settle, &snd_settle_mode,
&rcv_settle, &rcv_settle_mode,
&source, &src_dr, &src_exp, &src_timeout, &src_dynamic, &dist_mode,
&target, &tgt_dr, &tgt_exp, &tgt_timeout, &tgt_dynamic,
- &idc);
+ &idc, &max_msgsz);
if (err) return err;
char strbuf[128]; // avoid malloc for most link names
char *strheap = (name.size >= sizeof(strbuf)) ? (char *) malloc(name.size + 1) : NULL;
@@ -1444,6 +1445,10 @@ int pn_do_attach(pn_transport_t *transport, uint8_t frame_type, uint16_t channel
link->state.delivery_count = idc;
}
+ if (max_msgsz) {
+ link->remote_max_message_size = max_msgsz;
+ }
+
pn_collector_put(transport->connection->collector, PN_OBJECT, link, PN_LINK_REMOTE_OPEN);
return 0;
}
@@ -1988,7 +1993,7 @@ static int pni_process_link_setup(pn_transport_t *transport, pn_endpoint_t *endp
if (err) return err;
} else {
int err = pn_post_frame(transport, AMQP_FRAME_TYPE, ssn_state->local_channel,
- "DL[SIoBB?DL[SIsIoC?sCnCC]?DL[SIsIoCC]nnI]", ATTACH,
+ "DL[SIoBB?DL[SIsIoC?sCnCC]?DL[SIsIoCC]nnIL]", ATTACH,
pn_string_get(link->name),
state->local_handle,
endpoint->type == RECEIVER,
@@ -2013,7 +2018,7 @@ static int pni_process_link_setup(pn_transport_t *transport, pn_endpoint_t *endp
link->target.dynamic,
link->target.properties,
link->target.capabilities,
- 0);
+ 0, link->max_message_size);
if (err) return err;
}
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0a2d28e1/tests/python/proton_tests/engine.py
----------------------------------------------------------------------
diff --git a/tests/python/proton_tests/engine.py b/tests/python/proton_tests/engine.py
index d011210..497bb7d 100644
--- a/tests/python/proton_tests/engine.py
+++ b/tests/python/proton_tests/engine.py
@@ -746,6 +746,17 @@ class LinkTest(Test):
assert self.snd.remote_rcv_settle_mode == Link.RCV_SECOND
assert self.rcv.remote_snd_settle_mode == Link.SND_UNSETTLED
+ def test_max_message_size(self):
+ if "java" in sys.platform:
+ raise Skipped()
+ assert self.snd.max_message_size == 0
+ assert self.rcv.remote_max_message_size == 0
+ self.snd.max_message_size = 13579
+ self.snd.open()
+ self.rcv.open()
+ self.pump()
+ assert self.rcv.remote_max_message_size == 13579
+
def test_cleanup(self):
snd, rcv = self.link("test-link")
snd.open()
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[16/30] qpid-proton git commit: NO-JIRA: remove stale TODO file
Posted by ac...@apache.org.
NO-JIRA: remove stale TODO file
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/74d4b59f
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/74d4b59f
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/74d4b59f
Branch: refs/heads/go1
Commit: 74d4b59f64f6172a9a2b1b719d4955381c06364c
Parents: 30d01e9
Author: Robert Gemmell <ro...@apache.org>
Authored: Thu Dec 8 11:39:48 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Thu Dec 8 11:39:48 2016 +0000
----------------------------------------------------------------------
TODO | 8 --------
1 file changed, 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/74d4b59f/TODO
----------------------------------------------------------------------
diff --git a/TODO b/TODO
deleted file mode 100644
index 7a0cc1a..0000000
--- a/TODO
+++ /dev/null
@@ -1,8 +0,0 @@
-Qpid Proton TODO List
-==============================================================================
-
-Beyond this simple laundry list, you can find the list of bugs and
-enhancements to be fixed by going to the Apache Proton JIRA instance:
-
- http://issues.apache.org/jira/browser/PROTON
-
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[12/30] qpid-proton git commit: PROTON-1371: [C++ binding] Change
container implementation to use handle-body - This avoids the problem of a
virtual member functions in the vtable being different depending on whether
compiled with C++11 or C++03.
Posted by ac...@apache.org.
PROTON-1371: [C++ binding] Change container implementation to use handle-body
- This avoids the problem of a virtual member functions in the vtable being
different depending on whether compiled with C++11 or C++03.
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/1c7e70a2
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/1c7e70a2
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/1c7e70a2
Branch: refs/heads/go1
Commit: 1c7e70a28e547a393eea0522290d95d5d38fb7fd
Parents: 5147ed3
Author: Andrew Stitcher <as...@apache.org>
Authored: Wed Dec 7 03:58:25 2016 -0500
Committer: Andrew Stitcher <as...@apache.org>
Committed: Wed Dec 7 13:23:03 2016 -0500
----------------------------------------------------------------------
examples/cpp/CMakeLists.txt | 18 +-
proton-c/bindings/cpp/CMakeLists.txt | 2 +-
.../bindings/cpp/include/proton/connection.hpp | 2 +-
.../cpp/include/proton/connection_options.hpp | 3 +-
.../bindings/cpp/include/proton/container.hpp | 211 +++++--------------
.../cpp/include/proton/default_container.hpp | 46 +---
proton-c/bindings/cpp/include/proton/fwd.hpp | 1 -
.../bindings/cpp/src/connection_options.cpp | 4 +-
proton-c/bindings/cpp/src/connector.cpp | 22 +-
proton-c/bindings/cpp/src/container.cpp | 83 ++++++--
proton-c/bindings/cpp/src/container_impl.cpp | 94 ++++-----
proton-c/bindings/cpp/src/contexts.cpp | 2 +-
proton-c/bindings/cpp/src/include/connector.hpp | 3 +-
.../bindings/cpp/src/include/container_impl.hpp | 75 ++++---
proton-c/bindings/cpp/src/include/reactor.hpp | 2 -
proton-c/bindings/cpp/src/receiver_options.cpp | 2 +-
proton-c/bindings/cpp/src/sender_options.cpp | 2 +-
proton-c/bindings/cpp/src/session_options.cpp | 2 +-
18 files changed, 221 insertions(+), 353 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/examples/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt
index 4c094db..304d899 100644
--- a/examples/cpp/CMakeLists.txt
+++ b/examples/cpp/CMakeLists.txt
@@ -66,15 +66,15 @@ if(HAS_CPP11)
endforeach()
# Linux-only multi-threaded examples (TODO make these portable)
- if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(container_src mt/epoll_container.cpp)
- foreach(example
- broker)
- add_executable(mt_${example} mt/${example}.cpp ${container_src})
- target_link_libraries(mt_${example} pthread)
- endforeach()
- add_cpp_test(cpp-example-mt ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v MtBrokerTest)
- endif()
+# if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+# set(container_src mt/epoll_container.cpp)
+# foreach(example
+# broker)
+# add_executable(mt_${example} mt/${example}.cpp ${container_src})
+# target_link_libraries(mt_${example} pthread)
+# endforeach()
+# add_cpp_test(cpp-example-mt ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v MtBrokerTest)
+# endif()
endif()
add_cpp_test(cpp-example-container ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/example_test.py -v ContainerExampleTest)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/CMakeLists.txt b/proton-c/bindings/cpp/CMakeLists.txt
index 5e0a8c7..0cc4024 100644
--- a/proton-c/bindings/cpp/CMakeLists.txt
+++ b/proton-c/bindings/cpp/CMakeLists.txt
@@ -172,7 +172,7 @@ macro(add_cpp_test test)
endmacro(add_cpp_test)
add_cpp_test(codec_test)
-add_cpp_test(engine_test)
+#add_cpp_test(engine_test)
add_cpp_test(thread_safe_test)
add_cpp_test(interop_test ${CMAKE_SOURCE_DIR}/tests)
add_cpp_test(message_test)
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/include/proton/connection.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/connection.hpp b/proton-c/bindings/cpp/include/proton/connection.hpp
index aac3bb7..a4046be 100644
--- a/proton-c/bindings/cpp/include/proton/connection.hpp
+++ b/proton-c/bindings/cpp/include/proton/connection.hpp
@@ -132,7 +132,7 @@ PN_CPP_CLASS_EXTERN connection : public internal::object<pn_connection_t>, publi
/// @cond INTERNAL
friend class internal::factory<connection>;
- friend class connector;
+ friend class container;
friend class proton::thread_safe<connection>;
/// @endcond
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/include/proton/connection_options.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/connection_options.hpp b/proton-c/bindings/cpp/include/proton/connection_options.hpp
index 6957fad..9c7923e 100644
--- a/proton-c/bindings/cpp/include/proton/connection_options.hpp
+++ b/proton-c/bindings/cpp/include/proton/connection_options.hpp
@@ -156,8 +156,7 @@ class connection_options {
internal::pn_unique_ptr<impl> impl_;
/// @cond INTERNAL
- friend class container_impl;
- friend class connector;
+ friend class container;
friend class io::connection_driver;
friend class connection;
/// @endcond
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/include/proton/container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/container.hpp b/proton-c/bindings/cpp/include/proton/container.hpp
index 6fe81dc..bc3a104 100644
--- a/proton-c/bindings/cpp/include/proton/container.hpp
+++ b/proton-c/bindings/cpp/include/proton/container.hpp
@@ -23,15 +23,11 @@
*/
#include "./fwd.hpp"
-#include "./connection_options.hpp"
-#include "./function.hpp"
-#include "./listener.hpp"
-#include "./receiver_options.hpp"
-#include "./sender_options.hpp"
-#include "./thread_safe.hpp"
+#include "./types_fwd.hpp"
#include "./internal/config.hpp"
#include "./internal/export.hpp"
+#include "./internal/pn_unique_ptr.hpp"
#include <string>
@@ -50,7 +46,9 @@ namespace proton {
/// messages.
class PN_CPP_CLASS_EXTERN container {
public:
- PN_CPP_EXTERN virtual ~container();
+ PN_CPP_EXTERN container(messaging_handler& h, const std::string& id="");
+ PN_CPP_EXTERN container(const std::string& id="");
+ PN_CPP_EXTERN ~container();
/// Connect to `url` and send an open request to the remote peer.
///
@@ -63,15 +61,15 @@ class PN_CPP_CLASS_EXTERN container {
/// The handler in the composed options is used to call
/// proton::messaging_handler::on_connection_open() when the remote peer's
/// open response is received.
- virtual returned<connection> connect(const std::string& url, const connection_options &) = 0;
+ PN_CPP_EXTERN returned<connection> connect(const std::string& url, const connection_options &);
/// Connect to `url` and send an open request to the remote peer.
- virtual returned<connection> connect(const std::string& url) = 0;
+ PN_CPP_EXTERN returned<connection> connect(const std::string& url);
/// @cond INTERNAL
/// Stop listening on url, must match the url string given to listen().
/// You can also use the proton::listener object returned by listen()
- virtual void stop_listening(const std::string& url) = 0;
+ PN_CPP_EXTERN void stop_listening(const std::string& url);
/// @endcond
/// Start listening on url.
@@ -82,28 +80,28 @@ class PN_CPP_CLASS_EXTERN container {
/// @param url identifies a listening url.
/// @param lh handles listening events
/// @return listener lets you stop listening
- virtual listener listen(const std::string& url, listen_handler& lh) = 0;
+ PN_CPP_EXTERN listener listen(const std::string& url, listen_handler& lh);
/// Listen with a fixed set of options for all accepted connections.
/// See listen(const std::string&, listen_handler&)
- virtual listener listen(const std::string& url, const connection_options&) = 0;
+ PN_CPP_EXTERN listener listen(const std::string& url, const connection_options&);
/// Start listening on URL.
/// New connections will use the handler from server_connection_options()
- virtual listener listen(const std::string& url) = 0;
+ PN_CPP_EXTERN listener listen(const std::string& url);
/// Run the container in this thread.
/// Returns when the container stops.
/// @see auto_stop() and stop().
///
/// With a multithreaded container, call run() in multiple threads to create a thread pool.
- virtual void run() = 0;
+ PN_CPP_EXTERN void run();
/// If true, stop the container when all active connections and listeners are closed.
/// If false the container will keep running till stop() is called.
///
/// auto_stop is set by default when a new container is created.
- virtual void auto_stop(bool) = 0;
+ PN_CPP_EXTERN void auto_stop(bool);
/// **Experimental** - Stop the container with an error_condition
/// err.
@@ -112,231 +110,118 @@ class PN_CPP_CLASS_EXTERN container {
/// - Process final handler events and injected functions
/// - If `!err.empty()`, handlers will receive on_transport_error
/// - run() will return in all threads.
- virtual void stop(const error_condition& err) = 0;
+ PN_CPP_EXTERN void stop(const error_condition& err);
/// **Experimental** - Stop the container with an empty error
/// condition.
///
/// @see stop(const error_condition&)
- virtual void stop() = 0;
+ PN_CPP_EXTERN void stop();
/// Open a connection and sender for `url`.
- virtual returned<sender> open_sender(const std::string &url) = 0;
+ PN_CPP_EXTERN returned<sender> open_sender(const std::string &url);
/// Open a connection and sender for `url`.
///
/// Supplied sender options will override the container's
/// template options.
- virtual returned<sender> open_sender(const std::string &url,
- const proton::sender_options &o) = 0;
+ PN_CPP_EXTERN returned<sender> open_sender(const std::string &url,
+ const proton::sender_options &o);
/// Open a connection and sender for `url`.
///
/// Supplied connection options will override the
/// container's template options.
- virtual returned<sender> open_sender(const std::string &url,
- const connection_options &c) = 0;
+ PN_CPP_EXTERN returned<sender> open_sender(const std::string &url,
+ const connection_options &c);
/// Open a connection and sender for `url`.
///
/// Supplied sender or connection options will override the
/// container's template options.
- virtual returned<sender> open_sender(const std::string &url,
+ PN_CPP_EXTERN returned<sender> open_sender(const std::string &url,
const proton::sender_options &o,
- const connection_options &c) = 0;
+ const connection_options &c);
/// Open a connection and receiver for `url`.
- virtual returned<receiver> open_receiver(const std::string&url) = 0;
+ PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url);
/// Open a connection and receiver for `url`.
///
/// Supplied receiver options will override the container's
/// template options.
- virtual returned<receiver> open_receiver(const std::string&url,
- const proton::receiver_options &o) = 0;
+ PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url,
+ const proton::receiver_options &o);
/// Open a connection and receiver for `url`.
///
/// Supplied receiver or connection options will override the
/// container's template options.
- virtual returned<receiver> open_receiver(const std::string&url,
- const connection_options &c) = 0;
+ PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url,
+ const connection_options &c);
/// Open a connection and receiver for `url`.
///
/// Supplied receiver or connection options will override the
/// container's template options.
- virtual returned<receiver> open_receiver(const std::string&url,
+ PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url,
const proton::receiver_options &o,
- const connection_options &c) = 0;
+ const connection_options &c);
/// A unique identifier for the container.
- virtual std::string id() const = 0;
+ PN_CPP_EXTERN std::string id() const;
/// Connection options that will be to outgoing connections. These
/// are applied first and overriden by options provided in
/// connect() and messaging_handler::on_connection_open().
- virtual void client_connection_options(const connection_options &) = 0;
+ PN_CPP_EXTERN void client_connection_options(const connection_options &);
/// @copydoc client_connection_options
- virtual connection_options client_connection_options() const = 0;
+ PN_CPP_EXTERN connection_options client_connection_options() const;
/// Connection options that will be applied to incoming
/// connections. These are applied first and overridden by options
/// provided in listen(), listen_handler::on_accept() and
/// messaging_handler::on_connection_open().
- virtual void server_connection_options(const connection_options &) = 0;
+ PN_CPP_EXTERN void server_connection_options(const connection_options &);
/// @copydoc server_connection_options
- virtual connection_options server_connection_options() const = 0;
+ PN_CPP_EXTERN connection_options server_connection_options() const;
/// Sender options applied to senders created by this
/// container. They are applied before messaging_handler::on_sender_open()
/// and can be overridden.
- virtual void sender_options(const class sender_options &) = 0;
+ PN_CPP_EXTERN void sender_options(const class sender_options &);
/// @copydoc sender_options
- virtual class sender_options sender_options() const = 0;
+ PN_CPP_EXTERN class sender_options sender_options() const;
/// Receiver options applied to receivers created by this
/// container. They are applied before messaging_handler::on_receiver_open()
/// and can be overridden.
- virtual void receiver_options(const class receiver_options &) = 0;
+ PN_CPP_EXTERN void receiver_options(const class receiver_options &);
/// @copydoc receiver_options
- virtual class receiver_options receiver_options() const = 0;
+ PN_CPP_EXTERN class receiver_options receiver_options() const;
-#if PN_CPP_HAS_STD_FUNCTION
- /// Schedule a function to be called after the duration
- virtual void schedule(duration, std::function<void()>) = 0;
-#endif
/// Schedule a function to be called after the duration.
/// C++03 compatible, for C++11 use the schedule(duration, std::function<void()>)
- virtual void schedule(duration, void_function0&) = 0;
-};
-
-/// @cond INTERNAL
-/// This class is intended for container implementers, it simplifies implementing container
-/// by performing all the default actions for shortened method signatures
-///
-/// Note: This class will only be useful if you want all the ususal defaulted behaviours
-/// in your class as it makes them all non virtual, so you can't use just some of them.
-///
-/// It means that in the usual case the container interface is smaller and a little simpler.
-class PN_CPP_CLASS_EXTERN standard_container : public container {
- public:
- // Pull in base class functions here so we don't need to define them again
- using container::stop;
- using container::connect;
- using container::listen;
- using container::open_receiver;
- using container::open_sender;
-
- PN_CPP_EXTERN returned<connection> connect(const std::string& url);
- PN_CPP_EXTERN listener listen(const std::string& url, const connection_options&);
- PN_CPP_EXTERN listener listen(const std::string& url);
- PN_CPP_EXTERN void stop();
- PN_CPP_EXTERN returned<sender> open_sender(const std::string &url);
- PN_CPP_EXTERN returned<sender> open_sender(const std::string &url,
- const proton::sender_options &o);
- PN_CPP_EXTERN returned<sender> open_sender(const std::string &url,
- const proton::connection_options &o);
- PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url);
- PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url,
- const proton::receiver_options &o);
- PN_CPP_EXTERN returned<receiver> open_receiver(const std::string&url,
- const proton::connection_options &o);
-};
-/// @endcond
-
-/// This is an header only class that can be used to help using containers more natural
-/// by allowing them to be treated as value types.
-template <class Ptr>
-class container_ref : public container {
- public:
-#if PN_CPP_HAS_RVALUE_REFERENCES
- /// Move constructor.
- container_ref(Ptr&& p) : impl_(std::move(p)) {}
-#else
- /// This class will only work correctly if ownership is transferred here
- /// so using std::auto_ptr for Ptr is necessary for pre C++11
- container_ref(Ptr p) : impl_(p) {}
-#endif
-
- returned<connection> connect(const std::string& url, const connection_options& opts) { return impl_->connect(url, opts); }
- returned<connection> connect(const std::string& url) { return impl_->connect(url); }
- listener listen(const std::string& url, listen_handler& l) { return impl_->listen(url, l); }
- listener listen(const std::string& url, const connection_options& opts) { return impl_->listen(url, opts); }
- listener listen(const std::string& url) { return impl_->listen(url); }
-
-
- ///@cond INTERNAL
- void stop_listening(const std::string& url) { impl_->stop_listening(url); }
- ///@endcond
- void run() { impl_->run(); }
- void auto_stop(bool set) { impl_->auto_stop(set); }
-
- ///@copydoc container::stop
- void stop(const error_condition& err) { impl_->stop(err); }
- ///@copydoc container::stop
- void stop() { impl_->stop(); }
-
- ///@copydoc container::open_sender
- returned<sender> open_sender(
- const std::string &url,
- const class sender_options &o,
- const connection_options &c) { return impl_->open_sender(url, o, c); }
- ///@copydoc container::open_sender
- returned<sender> open_sender(
- const std::string &url,
- const class connection_options &o) { return impl_->open_sender(url, o); }
- ///@copydoc container::open_sender
- returned<sender> open_sender(
- const std::string &url,
- const class sender_options &o) { return impl_->open_sender(url, o); }
- ///@copydoc container::open_sender
- returned<sender> open_sender(
- const std::string &url) { return impl_->open_sender(url); }
-
- ///@copydoc container::open_receiver
- returned<receiver> open_receiver(
- const std::string&url,
- const class receiver_options &o,
- const connection_options &c) { return impl_->open_receiver(url, o, c); }
- ///@copydoc container::open_receiver
- returned<receiver> open_receiver(
- const std::string&url,
- const class receiver_options &o) { return impl_->open_receiver(url, o); }
- ///@copydoc container::open_receiver
- returned<receiver> open_receiver(
- const std::string&url,
- const class connection_options &o) { return impl_->open_receiver(url, o); }
- ///@copydoc container::open_receiver
- returned<receiver> open_receiver(
- const std::string&url) { return impl_->open_receiver(url); }
-
- std::string id() const { return impl_->id(); }
+ PN_CPP_EXTERN void schedule(duration, void_function0&);
#if PN_CPP_HAS_STD_FUNCTION
- PN_CPP_EXTERN void schedule(duration d, std::function<void()> f) { return impl_->schedule(d, f); }
+ /// Schedule a function to be called after the duration
+ PN_CPP_EXTERN void schedule(duration, std::function<void()>);
#endif
- PN_CPP_EXTERN void schedule(duration d, void_function0& f) { return impl_->schedule(d, f); }
-
- void client_connection_options(const connection_options& c) { impl_->client_connection_options(c); }
- connection_options client_connection_options() const { return impl_->client_connection_options(); }
-
- void server_connection_options(const connection_options &o) { impl_->server_connection_options(o); }
- connection_options server_connection_options() const { return impl_->server_connection_options(); }
-
- void sender_options(const class sender_options &o) { impl_->sender_options(o); }
- class sender_options sender_options() const { return impl_->sender_options(); }
-
- void receiver_options(const class receiver_options & o) { impl_->receiver_options(o); }
- class receiver_options receiver_options() const { return impl_->receiver_options(); }
private:
- Ptr impl_;
+ class impl;
+ internal::pn_unique_ptr<impl> impl_;
+
+ friend class connection_options;
+ friend class session_options;
+ friend class receiver_options;
+ friend class sender_options;
};
} // proton
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/include/proton/default_container.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/default_container.hpp b/proton-c/bindings/cpp/include/proton/default_container.hpp
index 3213c02..3b3fce9 100644
--- a/proton-c/bindings/cpp/include/proton/default_container.hpp
+++ b/proton-c/bindings/cpp/include/proton/default_container.hpp
@@ -22,52 +22,8 @@
*
*/
-#include "./fwd.hpp"
-#include "./container.hpp"
-
-#include "./internal/config.hpp"
-#include "./internal/export.hpp"
-
-#include <memory>
-#include <string>
-
namespace proton {
-
-// Avoid deprecated diagnostics from auto_ptr
-#if defined(__GNUC__) && __GNUC__*100 + __GNUC_MINOR__ >= 406 || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-/// Default container factory for C++03, not recommended unless you only have C++03
-PN_CPP_EXTERN std::auto_ptr<container> make_auto_default_container(messaging_handler&, const std::string& id="");
-/// Default container factory for C++03, not recommended unless you only have C++03
-PN_CPP_EXTERN std::auto_ptr<container> make_auto_default_container(const std::string& id="");
-
-#if PN_CPP_HAS_UNIQUE_PTR
-/// Default container factory
-PN_CPP_EXTERN std::unique_ptr<container> make_default_container(messaging_handler&, const std::string& id="");
-/// Default container factory
-PN_CPP_EXTERN std::unique_ptr<container> make_default_container(const std::string& id="");
-#endif
-
-#if PN_CPP_HAS_UNIQUE_PTR
-class default_container : public container_ref<std::unique_ptr<container> > {
-public:
- default_container(messaging_handler& h, const std::string& id="") : container_ref(make_default_container(h, id)) {}
- default_container(const std::string& id="") : container_ref(make_default_container(id)) {}
-};
-#else
-class default_container : public container_ref<std::auto_ptr<container> > {
-public:
- default_container(messaging_handler& h, const std::string& id="") : container_ref<std::auto_ptr<container> >(make_auto_default_container(h, id)) {}
- default_container(const std::string& id="") : container_ref<std::auto_ptr<container> >(make_auto_default_container(id)) {}
-};
-#endif
-
-#if defined(__GNUC__) && __GNUC__*100 + __GNUC_MINOR__ >= 406 || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
+typedef class container default_container;
} // proton
#endif // PROTON_DEFAULT_CONTAINER_HPP
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/include/proton/fwd.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/include/proton/fwd.hpp b/proton-c/bindings/cpp/include/proton/fwd.hpp
index c494ad3..3ed9283 100644
--- a/proton-c/bindings/cpp/include/proton/fwd.hpp
+++ b/proton-c/bindings/cpp/include/proton/fwd.hpp
@@ -28,7 +28,6 @@ class annotation_key;
class connection;
class connection_options;
class container;
-class container_impl;
class delivery;
class error_condition;
class event;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/connection_options.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connection_options.cpp b/proton-c/bindings/cpp/src/connection_options.cpp
index 8567ee3..c30b98d 100644
--- a/proton-c/bindings/cpp/src/connection_options.cpp
+++ b/proton-c/bindings/cpp/src/connection_options.cpp
@@ -74,7 +74,7 @@ class connection_options::impl {
*/
void apply_unbound(connection& c) {
pn_connection_t *pnc = unwrap(c);
- connector *outbound = dynamic_cast<connector*>(
+ container::impl::connector *outbound = dynamic_cast<container::impl::connector*>(
connection_context::get(c).handler.get());
// Only apply connection options if uninit.
@@ -97,7 +97,7 @@ class connection_options::impl {
// Transport options. pnt is NULL between reconnect attempts
// and if there is a pipelined open frame.
pn_connection_t *pnc = unwrap(c);
- connector *outbound = dynamic_cast<connector*>(
+ container::impl::connector *outbound = dynamic_cast<container::impl::connector*>(
connection_context::get(c).handler.get());
pn_transport_t *pnt = pn_connection_transport(pnc);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/connector.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/connector.cpp b/proton-c/bindings/cpp/src/connector.cpp
index 045d4de..0467d60 100644
--- a/proton-c/bindings/cpp/src/connector.cpp
+++ b/proton-c/bindings/cpp/src/connector.cpp
@@ -37,18 +37,18 @@
namespace proton {
-connector::connector(connection&c, const connection_options& options, const url& a) :
+container::impl::connector::connector(connection&c, const connection_options& options, const url& a) :
connection_(c), options_(options), address_(a), reconnect_timer_(0)
{}
-connector::~connector() { delete reconnect_timer_; }
+container::impl::connector::~connector() { delete reconnect_timer_; }
-void connector::reconnect_timer(const class reconnect_timer &rt) {
+void container::impl::connector::reconnect_timer(const class reconnect_timer &rt) {
delete reconnect_timer_;
reconnect_timer_ = new class reconnect_timer(rt);
}
-void connector::connect() {
+void container::impl::connector::connect() {
pn_transport_t *pnt = pn_transport();
transport t(make_wrapper(pnt));
pn_transport_bind(pnt, unwrap(connection_));
@@ -57,24 +57,24 @@ void connector::connect() {
options_.apply_bound(connection_);
}
-void connector::on_connection_local_open(proton_event &) {
+void container::impl::connector::on_connection_local_open(proton_event &) {
connect();
}
-void connector::on_connection_remote_open(proton_event &) {
+void container::impl::connector::on_connection_remote_open(proton_event &) {
if (reconnect_timer_) {
reconnect_timer_->reset();
}
}
-void connector::on_connection_init(proton_event &) {
+void container::impl::connector::on_connection_init(proton_event &) {
}
-void connector::on_transport_tail_closed(proton_event &e) {
+void container::impl::connector::on_transport_tail_closed(proton_event &e) {
on_transport_closed(e);
}
-void connector::on_transport_closed(proton_event &) {
+void container::impl::connector::on_transport_closed(proton_event &) {
if (!connection_) return;
if (connection_.active()) {
if (reconnect_timer_) {
@@ -88,7 +88,7 @@ void connector::on_transport_closed(proton_event &) {
}
else {
// log "Disconnected, reconnecting in " << delay << " milliseconds"
- container_impl::schedule(connection_.container(), delay, this);
+ container::impl::schedule(connection_.container(), delay, this);
return;
}
}
@@ -98,7 +98,7 @@ void connector::on_transport_closed(proton_event &) {
connection_ = 0;
}
-void connector::on_timer_task(proton_event &) {
+void container::impl::connector::on_timer_task(proton_event &) {
connect();
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/container.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container.cpp b/proton-c/bindings/cpp/src/container.cpp
index 914ee56..3daa925 100644
--- a/proton-c/bindings/cpp/src/container.cpp
+++ b/proton-c/bindings/cpp/src/container.cpp
@@ -22,41 +22,46 @@
#include "proton/container.hpp"
#include "proton/error_condition.hpp"
+#include "proton/error_condition.hpp"
#include "proton/listen_handler.hpp"
+#include "proton/listener.hpp"
+#include "proton/thread_safe.hpp"
+
+#include "container_impl.hpp"
namespace proton {
+container::container(messaging_handler& h, const std::string& id) :
+ impl_(new impl(*this, id, &h)) {}
+container::container(const std::string& id) :
+ impl_(new impl(*this, id)) {}
container::~container() {}
-/// Functions defined here are convenience overrides that can be trivially
-/// defined in terms of other pure virtual functions on container. Don't make
-/// container implementers wade thru all this boiler-plate.
-
-returned<connection> standard_container::connect(const std::string &url) {
+returned<connection> container::connect(const std::string &url) {
return connect(url, connection_options());
}
-returned<sender> standard_container::open_sender(const std::string &url) {
+returned<sender> container::open_sender(const std::string &url) {
return open_sender(url, proton::sender_options(), connection_options());
}
-returned<sender> standard_container::open_sender(const std::string &url, const proton::sender_options &lo) {
+returned<sender> container::open_sender(const std::string &url, const proton::sender_options &lo) {
return open_sender(url, lo, connection_options());
}
-returned<sender> standard_container::open_sender(const std::string &url, const proton::connection_options &co) {
+returned<sender> container::open_sender(const std::string &url, const proton::connection_options &co) {
return open_sender(url, sender_options(), co);
}
-returned<receiver> standard_container::open_receiver(const std::string &url) {
+returned<receiver> container::open_receiver(const std::string &url) {
return open_receiver(url, proton::receiver_options(), connection_options());
}
-returned<receiver> standard_container::open_receiver(const std::string &url, const proton::receiver_options &lo) {
+returned<receiver> container::open_receiver(const std::string &url, const proton::receiver_options &lo) {
return open_receiver(url, lo, connection_options());
}
-returned<receiver> standard_container::open_receiver(const std::string &url, const proton::connection_options &co) {
+returned<receiver> container::open_receiver(const std::string &url, const proton::connection_options &co) {
return open_receiver(url, receiver_options(), co);
}
@@ -69,17 +74,65 @@ namespace{
};
}
-listener standard_container::listen(const std::string& url, const connection_options& opts) {
+listener container::listen(const std::string& url, const connection_options& opts) {
// Note: listen_opts::on_close() calls delete(this) so this is not a leak.
- // The container will always call on_closed() even if there are errors or exceptions.
+ // The container will always call on_closed() even if there are errors or exceptions.
listen_opts* lh = new listen_opts(opts);
return listen(url, *lh);
}
-listener standard_container::listen(const std::string &url) {
+listener container::listen(const std::string &url) {
return listen(url, connection_options());
}
-void standard_container::stop() { stop(error_condition()); }
+void container::stop() { stop(error_condition()); }
+
+returned<connection> container::connect(const std::string& url, const connection_options& opts) {
+ return impl_->connect(url, opts);
+}
+
+listener container::listen(const std::string& url, listen_handler& l) { return impl_->listen(url, l); }
+
+void container::stop_listening(const std::string& url) { impl_->stop_listening(url); }
+
+void container::run() { impl_->run(); }
+
+void container::auto_stop(bool set) { impl_->auto_stop(set); }
+
+void container::stop(const error_condition& err) { impl_->stop(err); }
+
+returned<sender> container::open_sender(
+ const std::string &url,
+ const class sender_options &o,
+ const connection_options &c) {
+ return impl_->open_sender(url, o, c);
+}
+
+returned<receiver> container::open_receiver(
+ const std::string&url,
+ const class receiver_options &o,
+ const connection_options &c) {
+ return impl_->open_receiver(url, o, c);
+}
+
+std::string container::id() const { return impl_->id(); }
+
+void container::schedule(duration d, void_function0& f) { return impl_->schedule(d, f); }
+
+#if PN_CPP_HAS_STD_FUNCTION
+void container::schedule(duration d, std::function<void()> f) { return impl_->schedule(d, f); }
+#endif
+
+void container::client_connection_options(const connection_options& c) { impl_->client_connection_options(c); }
+connection_options container::client_connection_options() const { return impl_->client_connection_options(); }
+
+void container::server_connection_options(const connection_options &o) { impl_->server_connection_options(o); }
+connection_options container::server_connection_options() const { return impl_->server_connection_options(); }
+
+void container::sender_options(const class sender_options &o) { impl_->sender_options(o); }
+class sender_options container::sender_options() const { return impl_->sender_options(); }
+
+void container::receiver_options(const class receiver_options & o) { impl_->receiver_options(o); }
+class receiver_options container::receiver_options() const { return impl_->receiver_options(); }
} // namespace proton
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/container_impl.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/container_impl.cpp b/proton-c/bindings/cpp/src/container_impl.cpp
index a818c0f..5f13b82 100644
--- a/proton-c/bindings/cpp/src/container_impl.cpp
+++ b/proton-c/bindings/cpp/src/container_impl.cpp
@@ -19,16 +19,17 @@
*
*/
-#include "proton/default_container.hpp"
#include "proton/connection_options.hpp"
#include "proton/connection.hpp"
-#include "proton/session.hpp"
#include "proton/error.hpp"
#include "proton/event_loop.hpp"
-#include "proton/sender.hpp"
+#include "proton/listener.hpp"
#include "proton/receiver.hpp"
+#include "proton/sender.hpp"
+#include "proton/session.hpp"
#include "proton/ssl.hpp"
#include "proton/sasl.hpp"
+#include "proton/thread_safe.hpp"
#include "proton/transport.hpp"
#include "proton/url.hpp"
#include "proton/uuid.hpp"
@@ -49,7 +50,7 @@
namespace proton {
-class handler_context {
+class container::impl::handler_context {
public:
static handler_context& get(pn_handler_t* h) {
return *reinterpret_cast<handler_context*>(pn_handler_mem(h));
@@ -77,13 +78,13 @@ class handler_context {
};
// Used to sniff for connector events before the reactor's global handler sees them.
-class override_handler : public proton_handler
+class container::impl::override_handler : public proton_handler
{
public:
internal::pn_ptr<pn_handler_t> base_handler;
- container_impl &container_impl_;
+ container::impl &container_impl_;
- override_handler(pn_handler_t *h, container_impl &c) : base_handler(h), container_impl_(c) {}
+ override_handler(pn_handler_t *h, container::impl &c) : base_handler(h), container_impl_(c) {}
virtual void on_unhandled(proton_event &pe) {
proton_event::event_type type = pe.type();
@@ -107,24 +108,25 @@ class override_handler : public proton_handler
}
};
-internal::pn_ptr<pn_handler_t> container_impl::cpp_handler(proton_handler *h) {
+internal::pn_ptr<pn_handler_t> container::impl::cpp_handler(proton_handler *h) {
pn_handler_t *handler = h ? pn_handler_new(&handler_context::dispatch,
sizeof(class handler_context),
&handler_context::cleanup) : 0;
if (handler) {
handler_context &hc = handler_context::get(handler);
- hc.container_ = this;
+ hc.container_ = &container_;
hc.handler_ = h;
}
return internal::take_ownership(handler);
}
-container_impl::container_impl(const std::string& id, messaging_handler *mh) :
+container::impl::impl(container& c, const std::string& id, messaging_handler *mh) :
+ container_(c),
reactor_(reactor::create()),
id_(id.empty() ? uuid::random().str() : id),
auto_stop_(true)
{
- container_context::set(reactor_, *this);
+ container_context::set(reactor_, container_);
// Set our own global handler that "subclasses" the existing one
pn_handler_t *global_handler = reactor_.pn_global_handler();
@@ -153,7 +155,7 @@ void close_acceptor(acceptor a) {
}
}
-container_impl::~container_impl() {
+container::impl::~impl() {
for (acceptors::iterator i = acceptors_.begin(); i != acceptors_.end(); ++i)
close_acceptor(i->second);
}
@@ -177,7 +179,7 @@ struct immediate_event_loop : public event_loop {
};
}
-returned<connection> container_impl::connect(const std::string &urlstr, const connection_options &user_opts) {
+returned<connection> container::impl::connect(const std::string &urlstr, const connection_options &user_opts) {
connection_options opts = client_connection_options(); // Defaults
opts.update(user_opts);
messaging_handler* mh = opts.handler();
@@ -207,7 +209,7 @@ returned<connection> container_impl::connect(const std::string &urlstr, const co
return make_thread_safe(conn);
}
-returned<sender> container_impl::open_sender(const std::string &url, const proton::sender_options &o1, const connection_options &o2) {
+returned<sender> container::impl::open_sender(const std::string &url, const proton::sender_options &o1, const connection_options &o2) {
proton::sender_options lopts(sender_options_);
lopts.update(o1);
connection_options copts(client_connection_options_);
@@ -216,7 +218,7 @@ returned<sender> container_impl::open_sender(const std::string &url, const proto
return make_thread_safe(conn.default_session().open_sender(proton::url(url).path(), lopts));
}
-returned<receiver> container_impl::open_receiver(const std::string &url, const proton::receiver_options &o1, const connection_options &o2) {
+returned<receiver> container::impl::open_receiver(const std::string &url, const proton::receiver_options &o1, const connection_options &o2) {
proton::receiver_options lopts(receiver_options_);
lopts.update(o1);
connection_options copts(client_connection_options_);
@@ -226,7 +228,7 @@ returned<receiver> container_impl::open_receiver(const std::string &url, const p
conn.default_session().open_receiver(proton::url(url).path(), lopts));
}
-listener container_impl::listen(const std::string& url, listen_handler& lh) {
+listener container::impl::listen(const std::string& url, listen_handler& lh) {
if (acceptors_.find(url) != acceptors_.end())
throw error("already listening on " + url);
connection_options opts = server_connection_options(); // Defaults
@@ -241,9 +243,9 @@ listener container_impl::listen(const std::string& url, listen_handler& lh) {
proton::url u(url);
pn_acceptor_t *acptr = pn_reactor_acceptor(
- reactor_.pn_object(), u.host().c_str(), u.port().c_str(), chandler.get());
+ unwrap(reactor_), u.host().c_str(), u.port().c_str(), chandler.get());
if (!acptr) {
- std::string err(pn_error_text(pn_reactor_error(reactor_.pn_object())));
+ std::string err(pn_error_text(pn_reactor_error(unwrap(reactor_))));
lh.on_error(err);
lh.on_close();
throw error(err);
@@ -255,23 +257,26 @@ listener container_impl::listen(const std::string& url, listen_handler& lh) {
lc.ssl = u.scheme() == url::AMQPS;
listener_context::get(acptr).listen_handler_ = &lh;
acceptors_[url] = make_wrapper(acptr);
- return listener(*this, url);
+ return listener(container_, url);
}
-void container_impl::stop_listening(const std::string& url) {
+void container::impl::stop_listening(const std::string& url) {
acceptors::iterator i = acceptors_.find(url);
if (i != acceptors_.end())
close_acceptor(i->second);
}
-void container_impl::schedule(container& c, int delay, proton_handler *h) {
- container_impl& ci = static_cast<container_impl&>(c);
+void container::impl::schedule(impl& ci, int delay, proton_handler *h) {
internal::pn_ptr<pn_handler_t> task_handler;
if (h)
task_handler = ci.cpp_handler(h);
ci.reactor_.schedule(delay, task_handler.get());
}
+void container::impl::schedule(container& c, int delay, proton_handler *h) {
+ schedule(*c.impl_.get(), delay, h);
+}
+
namespace {
// Abstract base for timer_handler_std and timer_handler_03
struct timer_handler : public proton_handler, public void_function0 {
@@ -291,7 +296,7 @@ struct timer_handler_03 : public timer_handler {
};
}
-void container_impl::schedule(duration delay, void_function0& f) {
+void container::impl::schedule(duration delay, void_function0& f) {
schedule(*this, delay.milliseconds(), new timer_handler_03(f));
}
@@ -304,28 +309,28 @@ struct timer_handler_std : public timer_handler {
};
}
-void container_impl::schedule(duration delay, std::function<void()> f) {
+void container::impl::schedule(duration delay, std::function<void()> f) {
schedule(*this, delay.milliseconds(), new timer_handler_std(f));
}
#endif
-void container_impl::client_connection_options(const connection_options &opts) {
+void container::impl::client_connection_options(const connection_options &opts) {
client_connection_options_ = opts;
}
-void container_impl::server_connection_options(const connection_options &opts) {
+void container::impl::server_connection_options(const connection_options &opts) {
server_connection_options_ = opts;
}
-void container_impl::sender_options(const proton::sender_options &opts) {
+void container::impl::sender_options(const proton::sender_options &opts) {
sender_options_ = opts;
}
-void container_impl::receiver_options(const proton::receiver_options &opts) {
+void container::impl::receiver_options(const proton::receiver_options &opts) {
receiver_options_ = opts;
}
-void container_impl::configure_server_connection(connection &c) {
+void container::impl::configure_server_connection(connection &c) {
pn_acceptor_t *pnp = pn_connection_acceptor(unwrap(c));
listener_context &lc(listener_context::get(pnp));
pn_connection_set_container(unwrap(c), id_.c_str());
@@ -345,44 +350,19 @@ void container_impl::configure_server_connection(connection &c) {
connection_context::get(c).event_loop.reset(new immediate_event_loop);
}
-void container_impl::run() {
+void container::impl::run() {
do {
reactor_.run();
} while (!auto_stop_);
}
-void container_impl::stop(const error_condition&) {
+void container::impl::stop(const error_condition&) {
reactor_.stop();
auto_stop_ = true;
}
-void container_impl::auto_stop(bool set) {
+void container::impl::auto_stop(bool set) {
auto_stop_ = set;
}
-#if PN_CPP_HAS_UNIQUE_PTR
-std::unique_ptr<container> make_default_container(messaging_handler& h, const std::string& id) {
- return std::unique_ptr<container>(new container_impl(id, &h));
-}
-std::unique_ptr<container> make_default_container(const std::string& id) {
- return std::unique_ptr<container>(new container_impl(id));
-}
-#endif
-
-// Avoid deprecated diagnostics from auto_ptr
-#if defined(__GNUC__) && __GNUC__*100 + __GNUC_MINOR__ >= 406 || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
-#endif
-
-std::auto_ptr<container> make_auto_default_container(messaging_handler& h, const std::string& id) {
- return std::auto_ptr<container>(new container_impl(id, &h));
-}
-std::auto_ptr<container> make_auto_default_container(const std::string& id) {
- return std::auto_ptr<container>(new container_impl(id));
-}
-
-#if defined(__GNUC__) && __GNUC__*100 + __GNUC_MINOR__ >= 406 || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/contexts.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/contexts.cpp b/proton-c/bindings/cpp/src/contexts.cpp
index 697df66..231506f 100644
--- a/proton-c/bindings/cpp/src/contexts.cpp
+++ b/proton-c/bindings/cpp/src/contexts.cpp
@@ -82,7 +82,7 @@ context::id connection_context::id(const connection& c) {
}
void container_context::set(const reactor& r, container& c) {
- set_context(pn_reactor_attachments(r.pn_object()), CONTAINER_CONTEXT, PN_VOID, &c);
+ set_context(pn_reactor_attachments(unwrap(r)), CONTAINER_CONTEXT, PN_VOID, &c);
}
container &container_context::get(pn_reactor_t *pn_reactor) {
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/include/connector.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/connector.hpp b/proton-c/bindings/cpp/src/include/connector.hpp
index 5b6707a..6bcd0db 100644
--- a/proton-c/bindings/cpp/src/include/connector.hpp
+++ b/proton-c/bindings/cpp/src/include/connector.hpp
@@ -28,6 +28,7 @@
#include <proton/reactor.h>
#include "proton/url.hpp"
+#include "container_impl.hpp"
#include "proton_handler.hpp"
#include <string>
@@ -37,7 +38,7 @@ namespace proton {
class reconnect_timer;
-class connector : public proton_handler
+class container::impl::connector : public proton_handler
{
public:
connector(connection &c, const connection_options &options, const url&);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/include/container_impl.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/container_impl.hpp b/proton-c/bindings/cpp/src/include/container_impl.hpp
index b0d9634..7443150 100644
--- a/proton-c/bindings/cpp/src/include/container_impl.hpp
+++ b/proton-c/bindings/cpp/src/include/container_impl.hpp
@@ -49,51 +49,49 @@ class acceptor;
class url;
class listen_handler;
-class container_impl : public standard_container {
+class container::impl {
public:
- // Pull in base class functions here so that name search finds all the overloads
- using standard_container::stop;
- using standard_container::connect;
- using standard_container::listen;
- using standard_container::open_receiver;
- using standard_container::open_sender;
-
- container_impl(const std::string& id, messaging_handler* = 0);
- ~container_impl();
- std::string id() const PN_CPP_OVERRIDE { return id_; }
- returned<connection> connect(const std::string&, const connection_options&) PN_CPP_OVERRIDE;
+ impl(container& c, const std::string& id, messaging_handler* = 0);
+ ~impl();
+ std::string id() const { return id_; }
+ returned<connection> connect(const std::string&, const connection_options&);
returned<sender> open_sender(
- const std::string&, const proton::sender_options &, const connection_options &) PN_CPP_OVERRIDE;
+ const std::string&, const proton::sender_options &, const connection_options &);
returned<receiver> open_receiver(
- const std::string&, const proton::receiver_options &, const connection_options &) PN_CPP_OVERRIDE;
- listener listen(const std::string&, listen_handler& lh) PN_CPP_OVERRIDE;
- void stop_listening(const std::string&) PN_CPP_OVERRIDE;
- void client_connection_options(const connection_options &) PN_CPP_OVERRIDE;
- connection_options client_connection_options() const PN_CPP_OVERRIDE { return client_connection_options_; }
- void server_connection_options(const connection_options &) PN_CPP_OVERRIDE;
- connection_options server_connection_options() const PN_CPP_OVERRIDE { return server_connection_options_; }
- void sender_options(const proton::sender_options&) PN_CPP_OVERRIDE;
- class sender_options sender_options() const PN_CPP_OVERRIDE { return sender_options_; }
- void receiver_options(const proton::receiver_options&) PN_CPP_OVERRIDE;
- class receiver_options receiver_options() const PN_CPP_OVERRIDE { return receiver_options_; }
- void run() PN_CPP_OVERRIDE;
- void stop(const error_condition& err) PN_CPP_OVERRIDE;
- void auto_stop(bool set) PN_CPP_OVERRIDE;
+ const std::string&, const proton::receiver_options &, const connection_options &);
+ listener listen(const std::string&, listen_handler& lh);
+ void stop_listening(const std::string&);
+ void client_connection_options(const connection_options &);
+ connection_options client_connection_options() const { return client_connection_options_; }
+ void server_connection_options(const connection_options &);
+ connection_options server_connection_options() const { return server_connection_options_; }
+ void sender_options(const proton::sender_options&);
+ class sender_options sender_options() const { return sender_options_; }
+ void receiver_options(const proton::receiver_options&);
+ class receiver_options receiver_options() const { return receiver_options_; }
+ void run();
+ void stop(const error_condition& err);
+ void auto_stop(bool set);
+ void schedule(duration, void_function0&);
#if PN_CPP_HAS_STD_FUNCTION
- void schedule(duration, std::function<void()>) PN_CPP_OVERRIDE;
+ void schedule(duration, std::function<void()>);
#endif
- void schedule(duration, void_function0&) PN_CPP_OVERRIDE;
- // non-interface functions
+ // non-interface functionality
+ class connector;
+
void configure_server_connection(connection &c);
+ static void schedule(impl& ci, int delay, proton_handler *h);
static void schedule(container& c, int delay, proton_handler *h);
template <class T> static void set_handler(T s, messaging_handler* h);
private:
- internal::pn_ptr<pn_handler_t> cpp_handler(proton_handler *h);
+ class handler_context;
+ class override_handler;
- typedef std::map<std::string, acceptor> acceptors;
+ internal::pn_ptr<pn_handler_t> cpp_handler(proton_handler *h);
+ container& container_;
reactor reactor_;
// Keep a list of all the handlers used by the container so they last as long as the container
std::list<internal::pn_unique_ptr<proton_handler> > handlers_;
@@ -102,19 +100,18 @@ class container_impl : public standard_container {
connection_options server_connection_options_;
proton::sender_options sender_options_;
proton::receiver_options receiver_options_;
- bool auto_stop_;
+ typedef std::map<std::string, acceptor> acceptors;
acceptors acceptors_;
-
- friend class messaging_adapter;
+ bool auto_stop_;
};
template <class T>
-void container_impl::set_handler(T s, messaging_handler* mh) {
+void container::impl::set_handler(T s, messaging_handler* mh) {
pn_record_t *record = internal::get_attachments(unwrap(s));
proton_handler* h = new messaging_adapter(*mh);
- container_impl& ci = static_cast<container_impl&>(s.container());
- ci.handlers_.push_back(h);
- pn_record_set_handler(record, ci.cpp_handler(h).get());
+ impl* ci = s.container().impl_.get();
+ ci->handlers_.push_back(h);
+ pn_record_set_handler(record, ci->cpp_handler(h).get());
}
}
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/include/reactor.hpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/include/reactor.hpp b/proton-c/bindings/cpp/src/include/reactor.hpp
index 7aba5f0..07678e4 100644
--- a/proton-c/bindings/cpp/src/include/reactor.hpp
+++ b/proton-c/bindings/cpp/src/include/reactor.hpp
@@ -90,8 +90,6 @@ class reactor : public internal::object<pn_reactor_t> {
bool quiesced();
void yield();
- friend class container_impl;
- friend class container_context;
friend class internal::factory<reactor>;
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/receiver_options.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/receiver_options.cpp b/proton-c/bindings/cpp/src/receiver_options.cpp
index f1fcf80..4a4d80f 100644
--- a/proton-c/bindings/cpp/src/receiver_options.cpp
+++ b/proton-c/bindings/cpp/src/receiver_options.cpp
@@ -75,7 +75,7 @@ class receiver_options::impl {
void apply(receiver& r) {
if (r.uninitialized()) {
if (delivery_mode.set) set_delivery_mode(r, delivery_mode.value);
- if (handler.set && handler.value) container_impl::set_handler(r, handler.value);
+ if (handler.set && handler.value) container::impl::set_handler(r, handler.value);
if (auto_settle.set) get_context(r).auto_settle = auto_settle.value;
if (auto_accept.set) get_context(r).auto_accept = auto_accept.value;
if (credit_window.set) get_context(r).credit_window = credit_window.value;
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/sender_options.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/sender_options.cpp b/proton-c/bindings/cpp/src/sender_options.cpp
index bed4a69..4f501e6 100644
--- a/proton-c/bindings/cpp/src/sender_options.cpp
+++ b/proton-c/bindings/cpp/src/sender_options.cpp
@@ -69,7 +69,7 @@ class sender_options::impl {
void apply(sender& s) {
if (s.uninitialized()) {
if (delivery_mode.set) set_delivery_mode(s, delivery_mode.value);
- if (handler.set && handler.value) container_impl::set_handler(s, handler.value);
+ if (handler.set && handler.value) container::impl::set_handler(s, handler.value);
if (auto_settle.set) get_context(s).auto_settle = auto_settle.value;
if (source.set) {
proton::source local_s(make_wrapper<proton::source>(pn_link_source(unwrap(s))));
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1c7e70a2/proton-c/bindings/cpp/src/session_options.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/session_options.cpp b/proton-c/bindings/cpp/src/session_options.cpp
index 8c563d8..2147fd4 100644
--- a/proton-c/bindings/cpp/src/session_options.cpp
+++ b/proton-c/bindings/cpp/src/session_options.cpp
@@ -47,7 +47,7 @@ class session_options::impl {
void apply(session& s) {
if (s.uninitialized()) {
- if (handler.set && handler.value) container_impl::set_handler(s, handler.value);
+ if (handler.set && handler.value) container::impl::set_handler(s, handler.value);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org