From 57064a8342c43c8937506e7448e2bfee23f938de Mon Sep 17 00:00:00 2001
From: Sergey Yakubov <sergey.yakubov@desy.de>
Date: Wed, 23 Dec 2020 10:41:20 +0100
Subject: [PATCH] change signature of set_lastread_marker

---
 CHANGELOG.md                                              | 1 +
 consumer/api/cpp/include/asapo/consumer/consumer.h        | 4 ++--
 consumer/api/cpp/src/consumer_impl.cpp                    | 8 ++++----
 consumer/api/cpp/src/consumer_impl.h                      | 4 ++--
 consumer/api/cpp/unittests/test_consumer_impl.cpp         | 4 ++--
 consumer/api/python/asapo_consumer.pxd                    | 2 +-
 consumer/api/python/asapo_consumer.pyx.in                 | 4 ++--
 tests/automatic/consumer/consumer_api/consumer_api.cpp    | 4 ++--
 .../consumer/consumer_api_python/consumer_api.py          | 2 +-
 9 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb5002215..e33750ece 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ BREAKING CHANGES
 * subset_size -> dataset_size (and in general replace subset with dataset)
     ####  renaming - Consumer API
 * broker -> consumer
+* SetLastReadMarker/set_lastread_marker -> swap arguments
 
 BUG FIXES
 * fix memory leak bug in Python consumer library (lead to problems when creating many consumer instances)
diff --git a/consumer/api/cpp/include/asapo/consumer/consumer.h b/consumer/api/cpp/include/asapo/consumer/consumer.h
index bc343dfbc..6cdc6f63f 100644
--- a/consumer/api/cpp/include/asapo/consumer/consumer.h
+++ b/consumer/api/cpp/include/asapo/consumer/consumer.h
@@ -22,8 +22,8 @@ class Consumer {
     virtual Error ResetLastReadMarker(std::string group_id) = 0;
     virtual Error ResetLastReadMarker(std::string group_id, std::string stream) = 0;
 
-    virtual Error SetLastReadMarker(uint64_t value, std::string group_id) = 0;
-    virtual Error SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) = 0;
+    virtual Error SetLastReadMarker(std::string group_id, uint64_t value) = 0;
+    virtual Error SetLastReadMarker(std::string group_id, uint64_t value, std::string stream) = 0;
 
     //! Acknowledge data tuple for specific group id and stream.
     /*!
diff --git a/consumer/api/cpp/src/consumer_impl.cpp b/consumer/api/cpp/src/consumer_impl.cpp
index b3fc99f5d..acc53f6bb 100644
--- a/consumer/api/cpp/src/consumer_impl.cpp
+++ b/consumer/api/cpp/src/consumer_impl.cpp
@@ -515,8 +515,8 @@ std::string ConsumerImpl::BrokerRequestWithTimeout(RequestInfo request, Error* e
     return std::move(response.string_output);
 }
 
-Error ConsumerImpl::SetLastReadMarker(uint64_t value, std::string group_id) {
-    return SetLastReadMarker(value, std::move(group_id), kDefaultStream);
+Error ConsumerImpl::SetLastReadMarker(std::string group_id, uint64_t value) {
+    return SetLastReadMarker(std::move(group_id), value, kDefaultStream);
 }
 
 Error ConsumerImpl::ResetLastReadMarker(std::string group_id) {
@@ -524,10 +524,10 @@ Error ConsumerImpl::ResetLastReadMarker(std::string group_id) {
 }
 
 Error ConsumerImpl::ResetLastReadMarker(std::string group_id, std::string stream) {
-    return SetLastReadMarker(0, group_id, stream);
+    return SetLastReadMarker(group_id, 0, stream);
 }
 
-Error ConsumerImpl::SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) {
+Error ConsumerImpl::SetLastReadMarker(std::string group_id, uint64_t value, std::string stream) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source + "/"
         + std::move(stream) + "/" + std::move(group_id) + "/resetcounter";
diff --git a/consumer/api/cpp/src/consumer_impl.h b/consumer/api/cpp/src/consumer_impl.h
index 1ced0a6ba..494b50c07 100644
--- a/consumer/api/cpp/src/consumer_impl.h
+++ b/consumer/api/cpp/src/consumer_impl.h
@@ -73,8 +73,8 @@ class ConsumerImpl final : public asapo::Consumer {
     Error ResetLastReadMarker(std::string group_id) override;
     Error ResetLastReadMarker(std::string group_id, std::string stream) override;
 
-    Error SetLastReadMarker(uint64_t value, std::string group_id) override;
-    Error SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) override;
+    Error SetLastReadMarker(std::string group_id, uint64_t value) override;
+    Error SetLastReadMarker(std::string group_id, uint64_t value, std::string stream) override;
 
     Error GetNext(MessageMeta* info, std::string group_id, MessageData* data) override;
     Error GetNext(MessageMeta* info, std::string group_id, std::string stream, MessageData* data) override;
diff --git a/consumer/api/cpp/unittests/test_consumer_impl.cpp b/consumer/api/cpp/unittests/test_consumer_impl.cpp
index 18aaf81a0..9675316ea 100644
--- a/consumer/api/cpp/unittests/test_consumer_impl.cpp
+++ b/consumer/api/cpp/unittests/test_consumer_impl.cpp
@@ -616,7 +616,7 @@ TEST_F(ConsumerImplTests, ResetCounterUsesCorrectUri) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = consumer->SetLastReadMarker(10, expected_group_id);
+    auto err = consumer->SetLastReadMarker(expected_group_id, 10);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
@@ -631,7 +631,7 @@ TEST_F(ConsumerImplTests, ResetCounterUsesCorrectUriWithStream) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = consumer->SetLastReadMarker(10, expected_group_id, expected_stream);
+    auto err = consumer->SetLastReadMarker(expected_group_id, 10, expected_stream);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
diff --git a/consumer/api/python/asapo_consumer.pxd b/consumer/api/python/asapo_consumer.pxd
index 70d2d4de4..5df0d3528 100644
--- a/consumer/api/python/asapo_consumer.pxd
+++ b/consumer/api/python/asapo_consumer.pxd
@@ -66,7 +66,7 @@ cdef extern from "asapo/asapo_consumer.h" namespace "asapo" nogil:
         Error GetLast(MessageMeta* info, string stream, MessageData* data)
         Error GetById(uint64_t id, MessageMeta* info, string stream, MessageData* data)
         uint64_t GetCurrentSize(string stream, Error* err)
-        Error SetLastReadMarker(uint64_t value, string group_id, string stream)
+        Error SetLastReadMarker(string group_id, uint64_t value, string stream)
         Error ResetLastReadMarker(string group_id, string stream)
         Error Acknowledge(string group_id, uint64_t id, string stream)
         Error NegativeAcknowledge(string group_id, uint64_t id, uint64_t delay_ms, string stream)
diff --git a/consumer/api/python/asapo_consumer.pyx.in b/consumer/api/python/asapo_consumer.pyx.in
index e7e85c62d..15420fd15 100644
--- a/consumer/api/python/asapo_consumer.pyx.in
+++ b/consumer/api/python/asapo_consumer.pyx.in
@@ -182,13 +182,13 @@ cdef class PyConsumer:
         elif cased == <int>NetworkConnectionType_kFabric:
             result = "Fabric"
         return result.decode('utf-8')
-    def set_lastread_marker(self,value,group_id, stream = "default"):
+    def set_lastread_marker(self, group_id, value, stream = "default"):
         cdef string b_group_id = _bytes(group_id)
         cdef string b_stream = _bytes(stream)
         cdef Error err
         cdef uint64_t id = value
         with nogil:
-            err =  self.c_consumer.get().SetLastReadMarker(id,b_group_id,b_stream)
+            err =  self.c_consumer.get().SetLastReadMarker(b_group_id, id, b_stream)
         if err:
             throw_exception(err)
         return
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.cpp b/tests/automatic/consumer/consumer_api/consumer_api.cpp
index 904e2f9db..e49455535 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.cpp
+++ b/tests/automatic/consumer/consumer_api/consumer_api.cpp
@@ -55,7 +55,7 @@ void TestSingle(const std::unique_ptr<asapo::Consumer>& consumer, const std::str
     M_AssertTrue(fi.name == "2", "GetNext2 filename");
 
 
-    err = consumer->SetLastReadMarker(2, group_id);
+    err = consumer->SetLastReadMarker(group_id, 2);
     M_AssertTrue(err == nullptr, "SetLastReadMarker no error");
 
 
@@ -72,7 +72,7 @@ void TestSingle(const std::unique_ptr<asapo::Consumer>& consumer, const std::str
     M_AssertTrue(err == nullptr, "GetLast2 no error");
 
 
-    err = consumer->SetLastReadMarker(8, group_id);
+    err = consumer->SetLastReadMarker(group_id, 8);
     M_AssertTrue(err == nullptr, "SetLastReadMarker 2 no error");
 
 
diff --git a/tests/automatic/consumer/consumer_api_python/consumer_api.py b/tests/automatic/consumer/consumer_api_python/consumer_api.py
index 0e6a637f6..6a454eced 100644
--- a/tests/automatic/consumer/consumer_api_python/consumer_api.py
+++ b/tests/automatic/consumer/consumer_api_python/consumer_api.py
@@ -93,7 +93,7 @@ def check_single(consumer, group_id):
     assert_metaname(meta, "2", "get next5")
     assert_usermetadata(meta, "get next5")
 
-    consumer.set_lastread_marker(4, group_id)
+    consumer.set_lastread_marker(group_id,4)
 
     _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "5", "get next6")
-- 
GitLab