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/06/28 14:36:13 UTC

qpid-proton git commit: PROTON-1247: Fix symbol export for transfer, delivery & tracker PROTON-1248: Allow API to query state of delivery and tracker

Repository: qpid-proton
Updated Branches:
  refs/heads/master 1d704cb28 -> 0ed8b257c


PROTON-1247: Fix symbol export for transfer, delivery & tracker
PROTON-1248: Allow API to query state of delivery and tracker


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

Branch: refs/heads/master
Commit: 0ed8b257c4eef7ac540ed00ea086f21e861ee0c1
Parents: 1d704cb
Author: Andrew Stitcher <as...@apache.org>
Authored: Mon Jun 27 16:38:20 2016 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Tue Jun 28 10:35:40 2016 -0400

----------------------------------------------------------------------
 .../bindings/cpp/include/proton/delivery.hpp    |  8 ++---
 .../bindings/cpp/include/proton/transfer.hpp    | 33 ++++++++------------
 proton-c/bindings/cpp/src/delivery.cpp          | 13 ++++++++
 proton-c/bindings/cpp/src/transfer.cpp          |  7 -----
 4 files changed, 30 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0ed8b257/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 53780a2..91fd143 100644
--- a/proton-c/bindings/cpp/include/proton/delivery.hpp
+++ b/proton-c/bindings/cpp/include/proton/delivery.hpp
@@ -52,16 +52,16 @@ class delivery : public transfer {
     // get from the different delivery modes. - Deferred
     
     /// Settle with ACCEPTED state.
-    PN_CPP_EXTERN void accept() { settle(ACCEPTED); }
+    PN_CPP_EXTERN void accept();
 
     /// Settle with REJECTED state.
-    PN_CPP_EXTERN void reject() { settle(REJECTED); }
+    PN_CPP_EXTERN void reject();
 
     /// Settle with RELEASED state.
-    PN_CPP_EXTERN void release() { settle(RELEASED); }
+    PN_CPP_EXTERN void release();
 
     /// Settle with MODIFIED state.
-    PN_CPP_EXTERN void modify() { settle(MODIFIED); }
+    PN_CPP_EXTERN void modify();
 
     /// @cond INTERNAL
   friend class internal::factory<delivery>;

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0ed8b257/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 d9f38a9..c4f984a 100644
--- a/proton-c/bindings/cpp/include/proton/transfer.hpp
+++ b/proton-c/bindings/cpp/include/proton/transfer.hpp
@@ -40,6 +40,19 @@ class transfer : public internal::object<pn_delivery_t> {
     /// Create an empty transfer.
     transfer() : internal::object<pn_delivery_t>(0) {}
 
+    /// Delivery state values.
+    enum state {
+        NONE = 0,               ///< Unknown state
+        RECEIVED = PN_RECEIVED, ///< Received but not yet settled
+        ACCEPTED = PN_ACCEPTED, ///< Settled as accepted
+        REJECTED = PN_REJECTED, ///< Settled as rejected
+        RELEASED = PN_RELEASED, ///< Settled as released
+        MODIFIED = PN_MODIFIED  ///< Settled as modified
+    }; // AMQP spec 3.4 delivery State
+
+    /// Get the remote state for a delivery.
+    PN_CPP_EXTERN enum state state() const;
+
     /// Return the session for this transfer.
     PN_CPP_EXTERN class session session() const;
 
@@ -55,26 +68,6 @@ class transfer : public internal::object<pn_delivery_t> {
     /// Return true if the transfer has been settled.
     PN_CPP_EXTERN bool settled() const;
 
-  protected:
-    /// Delivery state values.
-    enum state {
-        NONE = 0,               ///< Unknown state
-        RECEIVED = PN_RECEIVED, ///< Received but not yet settled
-        ACCEPTED = PN_ACCEPTED, ///< Settled as accepted
-        REJECTED = PN_REJECTED, ///< Settled as rejected
-        RELEASED = PN_RELEASED, ///< Settled as released
-        MODIFIED = PN_MODIFIED  ///< Settled as modified
-    }; // AMQP spec 3.4 delivery State
-
-    /// Set the local state of the delivery.
-    void update(enum state state);
-
-    /// Update and settle a delivery with the given delivery::state
-    void settle(enum state s);
-
-    /// Get the remote state for a delivery.
-    enum state state() const;
-
     /// @cond INTERNAL
   friend class internal::factory<transfer>;
     /// @endcond

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0ed8b257/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 7effc52..cae2bf0 100644
--- a/proton-c/bindings/cpp/src/delivery.cpp
+++ b/proton-c/bindings/cpp/src/delivery.cpp
@@ -25,9 +25,22 @@
 
 #include "proton_bits.hpp"
 
+namespace {
+
+void settle_delivery(pn_delivery_t* o, uint64_t state) {
+    pn_delivery_update(o, state);
+    pn_delivery_settle(o);
+}
+
+}
+
 namespace proton {
 
 delivery::delivery(pn_delivery_t* d): transfer(make_wrapper(d)) {}
 receiver delivery::receiver() const { return make_wrapper<class receiver>(pn_delivery_link(pn_object())); }
+void delivery::accept() { settle_delivery(pn_object(), ACCEPTED); }
+void delivery::reject() { settle_delivery(pn_object(), REJECTED); }
+void delivery::release() { settle_delivery(pn_object(), RELEASED); }
+void delivery::modify() { settle_delivery(pn_object(), MODIFIED); }
 
 }

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0ed8b257/proton-c/bindings/cpp/src/transfer.cpp
----------------------------------------------------------------------
diff --git a/proton-c/bindings/cpp/src/transfer.cpp b/proton-c/bindings/cpp/src/transfer.cpp
index 7331489..78b6c0e 100644
--- a/proton-c/bindings/cpp/src/transfer.cpp
+++ b/proton-c/bindings/cpp/src/transfer.cpp
@@ -41,12 +41,5 @@ bool transfer::settled() const { return pn_delivery_settled(pn_object()); }
 
 void transfer::settle() { pn_delivery_settle(pn_object()); }
 
-void transfer::update(enum state state) { pn_delivery_update(pn_object(), state); }
-
-void transfer::settle(enum state state) {
-    update(state);
-    settle();
-}
-
 enum transfer::state transfer::state() const { return static_cast<enum state>(pn_delivery_remote_state(pn_object())); }
 }


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