PROTON-1191: [C++ binding] Move source/target enums into terminus/source/target classes
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/c3c477d2 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/c3c477d2 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/c3c477d2 Branch: refs/heads/master Commit: c3c477d25a5ec038081d29c2076a099d92e484e7 Parents: a65782a Author: Andrew Stitcher <[email protected]> Authored: Wed May 4 19:36:03 2016 -0400 Committer: Andrew Stitcher <[email protected]> Committed: Thu May 5 15:20:29 2016 -0400 ---------------------------------------------------------------------- examples/cpp/queue_browser.cpp | 3 +- .../cpp/include/proton/delivery_mode.hpp | 2 +- .../bindings/cpp/include/proton/settings.hpp | 59 -------------------- proton-c/bindings/cpp/include/proton/source.hpp | 12 ++++ .../cpp/include/proton/source_options.hpp | 6 +- proton-c/bindings/cpp/include/proton/target.hpp | 5 ++ .../cpp/include/proton/target_options.hpp | 5 +- .../bindings/cpp/include/proton/terminus.hpp | 17 ++++-- proton-c/bindings/cpp/src/node_options.cpp | 24 ++++---- proton-c/bindings/cpp/src/source.cpp | 4 ++ proton-c/bindings/cpp/src/terminus.cpp | 10 ++-- 11 files changed, 58 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/examples/cpp/queue_browser.cpp ---------------------------------------------------------------------- diff --git a/examples/cpp/queue_browser.cpp b/examples/cpp/queue_browser.cpp index 2a1d9be..a1fa471 100644 --- a/examples/cpp/queue_browser.cpp +++ b/examples/cpp/queue_browser.cpp @@ -25,7 +25,6 @@ #include "proton/handler.hpp" #include "proton/receiver_options.hpp" #include "proton/source_options.hpp" -#include "proton/settings.hpp" #include "proton/url.hpp" #include <iostream> @@ -43,7 +42,7 @@ class browser : public proton::handler { void on_container_start(proton::container &c) override { proton::connection conn = c.connect(url); - source_options browsing = source_options().distribution_mode(proton::COPY); + source_options browsing = source_options().distribution_mode(proton::source::COPY); conn.open_receiver(url.path(), proton::receiver_options().source(browsing)); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/proton-c/bindings/cpp/include/proton/delivery_mode.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/delivery_mode.hpp b/proton-c/bindings/cpp/include/proton/delivery_mode.hpp index 677ce7e..913f43b 100644 --- a/proton-c/bindings/cpp/include/proton/delivery_mode.hpp +++ b/proton-c/bindings/cpp/include/proton/delivery_mode.hpp @@ -28,7 +28,7 @@ namespace proton { enum delivery_mode { // No set policy. The application must settle messages itself // according to its own policy. - DELIVERY_MODE_NONE = 0, + NONE = 0, // Outgoing messages are settled immediately by the link. // There are no duplicates. AT_MOST_ONCE, http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/proton-c/bindings/cpp/include/proton/settings.hpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/include/proton/settings.hpp b/proton-c/bindings/cpp/include/proton/settings.hpp deleted file mode 100644 index c655399..0000000 --- a/proton-c/bindings/cpp/include/proton/settings.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef PROTON_CPP_SETTINGS_H -#define PROTON_CPP_SETTINGS_H - -/* - * - * 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/link.h" - -namespace proton { - -// Source/target settings - -/// Durability -enum durability_mode { - NONE = PN_NONDURABLE, - CONFIGURATION = PN_CONFIGURATION, - UNSETTLED_STATE = PN_DELIVERIES -}; - -/// Expiry policy -enum expiry_policy { - LINK_CLOSE = PN_EXPIRE_WITH_LINK, - SESSION_CLOSE = PN_EXPIRE_WITH_SESSION, - CONNECTION_CLOSE = PN_EXPIRE_WITH_CONNECTION, - NEVER = PN_EXPIRE_NEVER -}; - - -// Source setting - -/// Distribution mode -enum distribution_mode { - MODE_UNSPECIFIED = PN_DIST_MODE_UNSPECIFIED, - COPY = PN_DIST_MODE_COPY, - MOVE = PN_DIST_MODE_MOVE -}; - - -} - -#endif // PROTON_CPP_SETTINGS_H http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/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 ef6f1a3..efe5889 100644 --- a/proton-c/bindings/cpp/include/proton/source.hpp +++ b/proton-c/bindings/cpp/include/proton/source.hpp @@ -46,9 +46,21 @@ class source : public terminus { source() : terminus() {} + enum distribution_mode { + UNSPECIFIED = PN_DIST_MODE_UNSPECIFIED, + COPY = PN_DIST_MODE_COPY, + MOVE = PN_DIST_MODE_MOVE + }; + + using terminus::durability_mode; + using terminus::expiry_policy; + /// The address of the source. PN_CPP_EXTERN std::string address() const; + /// Get the distribution mode. + PN_CPP_EXTERN enum distribution_mode distribution_mode() const; + /// Obtain the set of message filters. PN_CPP_EXTERN filter_map filters() const; /// @cond INTERNAL http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/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 b1676b7..0a1d280 100644 --- a/proton-c/bindings/cpp/include/proton/source_options.hpp +++ b/proton-c/bindings/cpp/include/proton/source_options.hpp @@ -65,16 +65,16 @@ class source_options { PN_CPP_EXTERN source_options& dynamic(bool); /// Control whether messsages are browsed or consumed. - PN_CPP_EXTERN source_options& distribution_mode(enum distribution_mode); + PN_CPP_EXTERN source_options& distribution_mode(enum source::distribution_mode); /// Control the persistence of source state. - PN_CPP_EXTERN source_options& durability_mode(enum durability_mode); + PN_CPP_EXTERN source_options& durability_mode(enum source::durability_mode); /// The expiry period after which the source is discarded. PN_CPP_EXTERN source_options& timeout(duration); /// Control when the clock for expiration begins. - PN_CPP_EXTERN source_options& expiry_policy(enum expiry_policy); + PN_CPP_EXTERN source_options& expiry_policy(enum source::expiry_policy); /// Specify a filter mechanism on the source that restricts /// message flow to a subset of the available messages. http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/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 ca7dc69..0415038 100644 --- a/proton-c/bindings/cpp/include/proton/target.hpp +++ b/proton-c/bindings/cpp/include/proton/target.hpp @@ -41,7 +41,12 @@ class receiver; class target : public terminus { public: target() : terminus() {} + + using terminus::durability_mode; + using terminus::expiry_policy; + PN_CPP_EXTERN std::string address() const; + /// @cond INTERNAL private: target(pn_terminus_t* t); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/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 f23aca3..8863598 100644 --- a/proton-c/bindings/cpp/include/proton/target_options.hpp +++ b/proton-c/bindings/cpp/include/proton/target_options.hpp @@ -27,6 +27,7 @@ #include "proton/pn_unique_ptr.hpp" #include "proton/types.hpp" #include "proton/delivery_mode.hpp" +#include "proton/target.hpp" #include "proton/terminus.hpp" #include <vector> @@ -65,13 +66,13 @@ class target_options { PN_CPP_EXTERN target_options& dynamic(bool); /// Control the persistence of target state. - PN_CPP_EXTERN target_options& durability_mode(enum durability_mode); + PN_CPP_EXTERN target_options& durability_mode(enum target::durability_mode); /// The expiry period after which the target is discarded. PN_CPP_EXTERN target_options& timeout(duration); /// Control when the clock for expiration begins. - PN_CPP_EXTERN target_options& expiry_policy(enum expiry_policy); + PN_CPP_EXTERN target_options& expiry_policy(enum target::expiry_policy); /// @cond INTERNAL http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/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 7ee60f4..cdcb7d3 100644 --- a/proton-c/bindings/cpp/include/proton/terminus.hpp +++ b/proton-c/bindings/cpp/include/proton/terminus.hpp @@ -25,7 +25,6 @@ #include "proton/export.hpp" #include "proton/object.hpp" #include "proton/value.hpp" -#include "proton/settings.hpp" #include "proton/link.h" #include <string> @@ -46,6 +45,19 @@ class terminus { public: terminus() : object_(0), parent_(0) {} + enum durability_mode { + NONDURABLE = PN_NONDURABLE, + CONFIGURATION = PN_CONFIGURATION, + UNSETTLED_STATE = PN_DELIVERIES + }; + + enum expiry_policy { + LINK_CLOSE = PN_EXPIRE_WITH_LINK, + SESSION_CLOSE = PN_EXPIRE_WITH_SESSION, + CONNECTION_CLOSE = PN_EXPIRE_WITH_CONNECTION, + NEVER = PN_EXPIRE_NEVER + }; + /// Control when the clock for expiration begins. PN_CPP_EXTERN enum expiry_policy expiry_policy() const; @@ -53,9 +65,6 @@ class terminus { /// duration is rounded to the nearest second. PN_CPP_EXTERN duration timeout() const; - /// Get the distribution mode. - PN_CPP_EXTERN enum distribution_mode distribution_mode() const; - /// Get the durability flag. PN_CPP_EXTERN enum durability_mode durability_mode(); http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/proton-c/bindings/cpp/src/node_options.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/node_options.cpp b/proton-c/bindings/cpp/src/node_options.cpp index ade5dd9..1053560 100644 --- a/proton-c/bindings/cpp/src/node_options.cpp +++ b/proton-c/bindings/cpp/src/node_options.cpp @@ -73,11 +73,11 @@ void node_address(terminus &t, option<std::string> &addr, option<bool> &dynamic) } } -void node_durability(terminus &t, option<enum durability_mode> &mode) { +void node_durability(terminus &t, option<enum terminus::durability_mode> &mode) { if (mode.set) pn_terminus_set_durability(unwrap(t), pn_durability_t(mode.value)); } -void node_expiry(terminus &t, option<enum expiry_policy> &policy, option<duration> &d) { +void node_expiry(terminus &t, option<enum terminus::expiry_policy> &policy, option<duration> &d) { if (policy.set) pn_terminus_set_expiry_policy(unwrap(t), pn_expiry_policy_t(policy.value)); if (d.set) timeout(t, d.value); } @@ -89,10 +89,10 @@ class source_options::impl { public: option<std::string> address; option<bool> dynamic; - option<enum durability_mode> durability_mode; + option<enum source::durability_mode> durability_mode; option<duration> timeout; - option<enum expiry_policy> expiry_policy; - option<enum distribution_mode> distribution_mode; + option<enum source::expiry_policy> expiry_policy; + option<enum source::distribution_mode> distribution_mode; option<source::filter_map> filters; void apply(source& s) { @@ -135,10 +135,10 @@ void source_options::update(const source_options& x) { impl_->update(*x.impl_); source_options& source_options::address(const std::string &addr) { impl_->address = addr; return *this; } source_options& source_options::dynamic(bool b) { impl_->dynamic = b; return *this; } -source_options& source_options::durability_mode(enum durability_mode m) { impl_->durability_mode = m; return *this; } +source_options& source_options::durability_mode(enum source::durability_mode m) { impl_->durability_mode = m; return *this; } source_options& source_options::timeout(duration d) { impl_->timeout = d; return *this; } -source_options& source_options::expiry_policy(enum expiry_policy m) { impl_->expiry_policy = m; return *this; } -source_options& source_options::distribution_mode(enum distribution_mode m) { impl_->distribution_mode = m; return *this; } +source_options& source_options::expiry_policy(enum source::expiry_policy m) { impl_->expiry_policy = m; return *this; } +source_options& source_options::distribution_mode(enum source::distribution_mode m) { impl_->distribution_mode = m; return *this; } source_options& source_options::filters(const source::filter_map &map) { impl_->filters = map; return *this; } void source_options::apply(source& s) const { impl_->apply(s); } @@ -149,9 +149,9 @@ class target_options::impl { public: option<std::string> address; option<bool> dynamic; - option<enum durability_mode> durability_mode; + option<enum target::durability_mode> durability_mode; option<duration> timeout; - option<enum expiry_policy> expiry_policy; + option<enum target::expiry_policy> expiry_policy; void apply(target& t) { node_address(t, address, dynamic); @@ -184,9 +184,9 @@ void target_options::update(const target_options& x) { impl_->update(*x.impl_); target_options& target_options::address(const std::string &addr) { impl_->address = addr; return *this; } target_options& target_options::dynamic(bool b) { impl_->dynamic = b; return *this; } -target_options& target_options::durability_mode(enum durability_mode m) { impl_->durability_mode = m; return *this; } +target_options& target_options::durability_mode(enum target::durability_mode m) { impl_->durability_mode = m; return *this; } target_options& target_options::timeout(duration d) { impl_->timeout = d; return *this; } -target_options& target_options::expiry_policy(enum expiry_policy m) { impl_->expiry_policy = m; return *this; } +target_options& target_options::expiry_policy(enum target::expiry_policy m) { impl_->expiry_policy = m; return *this; } void target_options::apply(target& s) const { impl_->apply(s); } http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/proton-c/bindings/cpp/src/source.cpp ---------------------------------------------------------------------- diff --git a/proton-c/bindings/cpp/src/source.cpp b/proton-c/bindings/cpp/src/source.cpp index 3816c78..1c9a5bd 100644 --- a/proton-c/bindings/cpp/src/source.cpp +++ b/proton-c/bindings/cpp/src/source.cpp @@ -43,6 +43,10 @@ std::string source::address() const { return str(pn_terminus_get_address(authoritative)); } +enum source::distribution_mode source::distribution_mode() const { + return (enum distribution_mode)pn_terminus_get_distribution_mode(object_); +} + source::filter_map source::filters() const { codec::decoder d(pn_terminus_filter(object_)); filter_map map; http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c3c477d2/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 7d3bc5b..138a42c 100644 --- a/proton-c/bindings/cpp/src/terminus.cpp +++ b/proton-c/bindings/cpp/src/terminus.cpp @@ -19,6 +19,8 @@ * */ +#include "proton/terminus.hpp" + #include "proton_bits.hpp" #include "proton/link.hpp" @@ -30,7 +32,7 @@ terminus::terminus(pn_terminus_t* t) : object_(t), parent_(0) {} -enum expiry_policy terminus::expiry_policy() const { +enum terminus::expiry_policy terminus::expiry_policy() const { return (enum expiry_policy)pn_terminus_get_expiry_policy(object_); } @@ -38,11 +40,7 @@ duration terminus::timeout() const { return duration::SECOND * pn_terminus_get_timeout(object_); } -enum distribution_mode terminus::distribution_mode() const { - return (enum distribution_mode)pn_terminus_get_distribution_mode(object_); -} - -enum durability_mode terminus::durability_mode() { +enum terminus::durability_mode terminus::durability_mode() { return (enum durability_mode) pn_terminus_get_durability(object_); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
