You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by as...@apache.org on 2016/05/05 19:25:58 UTC

[3/3] qpid-proton git commit: PROTON-1191: [C++ binding] Tidy up defintion of delivery_mode

PROTON-1191: [C++ binding] Tidy up defintion of delivery_mode


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/d7e6e175
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/d7e6e175
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/d7e6e175

Branch: refs/heads/master
Commit: d7e6e1753fb002748e9a4fff53c5ce5e6b676412
Parents: c3c477d
Author: Andrew Stitcher <as...@apache.org>
Authored: Thu May 5 14:44:29 2016 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Thu May 5 15:20:41 2016 -0400

----------------------------------------------------------------------
 proton-c/bindings/cpp/include/proton/delivery_mode.hpp | 13 ++++++++++++-
 proton-c/bindings/cpp/src/receiver_options.cpp         | 10 +++++-----
 proton-c/bindings/cpp/src/sender_options.cpp           | 10 +++++-----
 3 files changed, 22 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d7e6e175/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 913f43b..fe420e6 100644
--- a/proton-c/bindings/cpp/include/proton/delivery_mode.hpp
+++ b/proton-c/bindings/cpp/include/proton/delivery_mode.hpp
@@ -25,7 +25,10 @@
 namespace proton {
 
 /// The message delivery policy to establish when opening a link.
-enum delivery_mode {
+/// This structure imitates the newer C++11 "enum class" so that
+/// The enumeration constants are in the delivery_mode namespace.
+struct delivery_mode {
+  enum modes {
     // No set policy.  The application must settle messages itself
     // according to its own policy.
     NONE = 0,
@@ -37,6 +40,14 @@ enum delivery_mode {
     // settle until after the disposition notification is
     // received.
     AT_LEAST_ONCE
+  };
+
+  delivery_mode() : modes_(NONE) {}
+  delivery_mode(modes m) : modes_(m) {}
+  operator modes() { return modes_; }
+
+private:
+  modes modes_;
 };
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d7e6e175/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 733bd00..f39ea66 100644
--- a/proton-c/bindings/cpp/src/receiver_options.cpp
+++ b/proton-c/bindings/cpp/src/receiver_options.cpp
@@ -53,12 +53,12 @@ class receiver_options::impl {
         return link_context::get(unwrap(l));
     }
 
-    static void set_delivery_mode(receiver l, enum delivery_mode mode) {
+    static void set_delivery_mode(receiver l, proton::delivery_mode mode) {
         switch (mode) {
-        case AT_MOST_ONCE:
+        case delivery_mode::AT_MOST_ONCE:
             pn_link_set_snd_settle_mode(unwrap(l), PN_SND_SETTLED);
             break;
-        case AT_LEAST_ONCE:
+        case delivery_mode::AT_LEAST_ONCE:
             pn_link_set_snd_settle_mode(unwrap(l), PN_SND_UNSETTLED);
             pn_link_set_rcv_settle_mode(unwrap(l), PN_RCV_FIRST);
             break;
@@ -69,7 +69,7 @@ class receiver_options::impl {
 
   public:
     option<proton_handler*> handler;
-    option<enum delivery_mode> delivery_mode;
+    option<proton::delivery_mode> delivery_mode;
     option<bool> auto_accept;
     option<bool> auto_settle;
     option<int> credit_window;
@@ -124,7 +124,7 @@ receiver_options& receiver_options::operator=(const receiver_options& x) {
 void receiver_options::update(const receiver_options& x) { impl_->update(*x.impl_); }
 
 receiver_options& receiver_options::handler(class handler *h) { impl_->handler = h->messaging_adapter_.get(); return *this; }
-receiver_options& receiver_options::delivery_mode(enum delivery_mode m) {impl_->delivery_mode = m; return *this; }
+receiver_options& receiver_options::delivery_mode(proton::delivery_mode m) {impl_->delivery_mode = m; return *this; }
 receiver_options& receiver_options::auto_accept(bool b) {impl_->auto_accept = b; return *this; }
 receiver_options& receiver_options::auto_settle(bool b) {impl_->auto_settle = b; return *this; }
 receiver_options& receiver_options::credit_window(int w) {impl_->credit_window = w; return *this; }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/d7e6e175/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 9467c9e..ed030d9 100644
--- a/proton-c/bindings/cpp/src/sender_options.cpp
+++ b/proton-c/bindings/cpp/src/sender_options.cpp
@@ -51,12 +51,12 @@ class sender_options::impl {
         return link_context::get(unwrap(l));
     }
 
-    static void set_delivery_mode(sender l, enum delivery_mode mode) {
+    static void set_delivery_mode(sender l, proton::delivery_mode mode) {
         switch (mode) {
-        case AT_MOST_ONCE:
+        case delivery_mode::AT_MOST_ONCE:
             pn_link_set_snd_settle_mode(unwrap(l), PN_SND_SETTLED);
             break;
-        case AT_LEAST_ONCE:
+        case delivery_mode::AT_LEAST_ONCE:
             pn_link_set_snd_settle_mode(unwrap(l), PN_SND_UNSETTLED);
             pn_link_set_rcv_settle_mode(unwrap(l), PN_RCV_FIRST);
             break;
@@ -67,7 +67,7 @@ class sender_options::impl {
 
   public:
     option<proton_handler*> handler;
-    option<enum delivery_mode> delivery_mode;
+    option<proton::delivery_mode> delivery_mode;
     option<bool> auto_settle;
     option<source_options> source;
     option<target_options> target;
@@ -112,7 +112,7 @@ sender_options& sender_options::operator=(const sender_options& x) {
 void sender_options::update(const sender_options& x) { impl_->update(*x.impl_); }
 
 sender_options& sender_options::handler(class handler *h) { impl_->handler = h->messaging_adapter_.get(); return *this; }
-sender_options& sender_options::delivery_mode(enum delivery_mode m) {impl_->delivery_mode = m; return *this; }
+sender_options& sender_options::delivery_mode(proton::delivery_mode m) {impl_->delivery_mode = m; return *this; }
 sender_options& sender_options::auto_settle(bool b) {impl_->auto_settle = b; return *this; }
 sender_options& sender_options::source(source_options &s) {impl_->source = s; return *this; }
 sender_options& sender_options::target(target_options &s) {impl_->target = s; return *this; }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org