This is an automated email from the ASF dual-hosted git repository. robbie pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-proton.git
The following commit(s) were added to refs/heads/main by this push: new 0d60a23 PROTON-2382: An accessor on tracker for the delivery tag 0d60a23 is described below commit 0d60a23a41d7386a217bc58248981eece3a8369c Author: dreampearl <rakhi.c...@gmail.com> AuthorDate: Tue Oct 12 16:32:24 2021 +0530 PROTON-2382: An accessor on tracker for the delivery tag This closes #336 --- cpp/include/proton/tracker.hpp | 4 ++++ cpp/src/delivery_test.cpp | 28 +++++++++++++++++++++++----- cpp/src/tracker.cpp | 3 +++ 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/cpp/include/proton/tracker.hpp b/cpp/include/proton/tracker.hpp index 8c3a58d..1dabf8b 100644 --- a/cpp/include/proton/tracker.hpp +++ b/cpp/include/proton/tracker.hpp @@ -22,6 +22,7 @@ * */ +#include "./binary.hpp" #include "./internal/export.hpp" #include "./transfer.hpp" @@ -49,6 +50,9 @@ class tracker : public transfer { /// Get the sender for this tracker. PN_CPP_EXTERN class sender sender() const; + /// Get the tag for this tracker. + PN_CPP_EXTERN binary tag() const; + /// @cond INTERNAL friend class internal::factory<tracker>; /// @endcond diff --git a/cpp/src/delivery_test.cpp b/cpp/src/delivery_test.cpp index e4c69eb..af6441c 100644 --- a/cpp/src/delivery_test.cpp +++ b/cpp/src/delivery_test.cpp @@ -51,6 +51,9 @@ std::mutex m; std::condition_variable cv; bool listener_ready = false; int listener_port; +int tracker_accept_counter; +int tracker_settle_counter; +proton::binary test_tag("TESTTAG"); } // namespace class test_recv : public proton::messaging_handler { @@ -78,8 +81,7 @@ class test_recv : public proton::messaging_handler { } void on_message(proton::delivery &d, proton::message &msg) override { - proton::binary test_tag_recv("TESTTAG"); - ASSERT_EQUAL(test_tag_recv, d.tag()); + ASSERT_EQUAL(test_tag, d.tag()); d.receiver().close(); d.connection().close(); listener.stop(); @@ -102,14 +104,27 @@ class test_send : public proton::messaging_handler { void on_sendable(proton::sender &s) override { proton::message msg; msg.body("message"); - proton::binary test_tag_send("TESTTAG"); - s.send(msg, test_tag_send); + proton::tracker t = s.send(msg, test_tag); + ASSERT_EQUAL(test_tag, t.tag()); + s.connection().close(); + } + + void on_tracker_accept(proton::tracker &t) override { + ASSERT_EQUAL(test_tag, t.tag()); + tracker_accept_counter++; + } + + void on_tracker_settle(proton::tracker &t) override { + ASSERT_EQUAL(test_tag, t.tag()); + tracker_settle_counter++; } }; int test_delivery_tag() { - std::string recv_address("127.0.0.1:0/test"); + tracker_accept_counter = 0; + tracker_settle_counter = 0; + std::string recv_address("127.0.0.1:0/test"); test_recv recv(recv_address); proton::container c(recv); std::thread thread_recv([&c]() -> void { c.run(); }); @@ -124,6 +139,9 @@ int test_delivery_tag() { proton::container(send).run(); thread_recv.join(); + ASSERT_EQUAL(1 ,tracker_accept_counter); + ASSERT_EQUAL(1 ,tracker_settle_counter); + return 0; } diff --git a/cpp/src/tracker.cpp b/cpp/src/tracker.cpp index 3b15ed5..e703767 100644 --- a/cpp/src/tracker.cpp +++ b/cpp/src/tracker.cpp @@ -24,6 +24,8 @@ #include "proton/sender.hpp" #include "proton_bits.hpp" +#include "types_internal.hpp" +#include "proton/binary.hpp" #include <proton/delivery.h> @@ -31,4 +33,5 @@ namespace proton { tracker::tracker(pn_delivery_t *d): transfer(make_wrapper(d)) {} sender tracker::sender() const { return make_wrapper<class sender>(pn_delivery_link(pn_object())); } +binary tracker::tag() const { return bin(pn_delivery_tag(pn_object())); } } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org