You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2021/10/29 08:57:21 UTC
[qpid-proton] branch main updated: PROTON-2382: An accessor on
tracker for the delivery tag
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 <ra...@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-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org