This is an automated email from the ASF dual-hosted git repository.

slbotbm pushed a commit to branch cpp-high-level-client-2
in repository https://gitbox.apache.org/repos/asf/iggy.git


The following commit(s) were added to refs/heads/cpp-high-level-client-2 by 
this push:
     new 5ef7556af fixes
5ef7556af is described below

commit 5ef7556af12759291ff9412eddeb6dd566a84bd8
Author: Rimuksh Kansal <[email protected]>
AuthorDate: Tue Sep 22 02:31:19 2026 +0900

    fixes
---
 foreign/cpp/include/iggy.hpp             |  6 ++---
 foreign/cpp/src/client.cpp               |  4 ++--
 foreign/cpp/tests/e2e/consumer_group.cpp | 40 ++++++++++++++++----------------
 foreign/cpp/tests/unit/unit_tests.cpp    |  2 +-
 4 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/foreign/cpp/include/iggy.hpp b/foreign/cpp/include/iggy.hpp
index c213638a8..69ad1c4f0 100644
--- a/foreign/cpp/include/iggy.hpp
+++ b/foreign/cpp/include/iggy.hpp
@@ -2548,11 +2548,11 @@ class IggyBlockingClient final {
      * @param consumer Consumer identity that owns the offset.
      * @param stream Parent stream, addressed by numeric ID or name.
      * @param topic Parent topic, addressed by numeric ID or name.
-     * @param offset Message offset to store.
      * @param partition_id Partition whose offset is stored, or `std::nullopt`
      *        to omit the partition from the request. The maximum
      *        `std::uint32_t` value is rejected because it is reserved by the
      *        FFI representation.
+     * @param offset Message offset to store.
      * @throws IggyException if an identifier, partition, or offset is invalid;
      *         the resource does not exist; the client is unauthenticated; the
      *         caller lacks permission; or the request fails.
@@ -2560,8 +2560,8 @@ class IggyBlockingClient final {
     void StoreConsumerOffset(const Consumer &consumer,
                              const Identifier &stream,
                              const Identifier &topic,
-                             std::uint64_t offset,
-                             std::optional<std::uint32_t> partition_id = 
std::nullopt);
+                             std::optional<std::uint32_t> partition_id,
+                             std::uint64_t offset);
 
     /**
      * @brief Retrieves the stored offset for a consumer or consumer group.
diff --git a/foreign/cpp/src/client.cpp b/foreign/cpp/src/client.cpp
index b61b2fd2b..d5a3ca3f4 100644
--- a/foreign/cpp/src/client.cpp
+++ b/foreign/cpp/src/client.cpp
@@ -306,8 +306,8 @@ void IggyBlockingClient::LeaveConsumerGroup(const 
Identifier &stream,
 void IggyBlockingClient::StoreConsumerOffset(const Consumer &consumer,
                                              const Identifier &stream,
                                              const Identifier &topic,
-                                             const std::uint64_t offset,
-                                             const 
std::optional<std::uint32_t> partition_id) {
+                                             const 
std::optional<std::uint32_t> partition_id,
+                                             const std::uint64_t offset) {
     RethrowAsIggyException([this, &consumer, &stream, &topic, offset, 
partition_id] {
         constexpr auto unspecified_partition_id = 
std::numeric_limits<std::uint32_t>::max();
         if (partition_id == unspecified_partition_id) {
diff --git a/foreign/cpp/tests/e2e/consumer_group.cpp 
b/foreign/cpp/tests/e2e/consumer_group.cpp
index 87ca3f29a..404932cf5 100644
--- a/foreign/cpp/tests/e2e/consumer_group.cpp
+++ b/foreign/cpp/tests/e2e/consumer_group.cpp
@@ -1205,7 +1205,7 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetOnEmptyPartitionThrows) {
     for (const std::uint64_t offset : {0u, 1u}) {
         SCOPED_TRACE(offset);
         ASSERT_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                                
iggy::Identifier::String(topic_name), offset, 0),
+                                                
iggy::Identifier::String(topic_name), 0, offset),
                      iggy::IggyException);
     }
 }
@@ -1232,7 +1232,7 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetAcceptsOffsetsAtValidBounds) {
                                                   partition_id_bytes(0), 
std::move(messages)));
 
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 2, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 2));
     EXPECT_EQ(
         client
             .GetConsumerOffset(consumer, 
iggy::Identifier::String(stream_name), iggy::Identifier::String(topic_name), 0)
@@ -1240,7 +1240,7 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetAcceptsOffsetsAtValidBounds) {
         2u);
 
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 4, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 4));
     const auto current = client.GetConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
                                                   
iggy::Identifier::String(topic_name), 0);
     EXPECT_EQ(current.CurrentOffset(), 4u);
@@ -1268,10 +1268,10 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetPastCurrentOffsetThrowsWithoutChang
                                                   
make_string_identifier(topic_name), "partition_id",
                                                   partition_id_bytes(0), 
std::move(messages)));
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 2, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 2));
 
     ASSERT_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                            
iggy::Identifier::String(topic_name), 5, 0),
+                                            
iggy::Identifier::String(topic_name), 0, 5),
                  iggy::IggyException);
     EXPECT_EQ(
         client
@@ -1346,7 +1346,7 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetOnNonExistentResourcesThrows) {
                                             
iggy::Identifier::String(missing_topic_name), 0, 0),
                  iggy::IggyException);
     ASSERT_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                            
iggy::Identifier::String(topic_name), 0, 1),
+                                            
iggy::Identifier::String(topic_name), 1, 0),
                  iggy::IggyException);
 }
 
@@ -1371,9 +1371,9 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetUpdatesExistingOffset) {
                                                   
make_string_identifier(topic_name), "partition_id",
                                                   partition_id_bytes(0), 
std::move(messages)));
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 1, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 1));
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 3, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 3));
 
     EXPECT_EQ(
         client
@@ -1406,7 +1406,7 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetKeepsConsumerOffsetsIndependent) {
     ASSERT_NO_THROW(client.StoreConsumerOffset(first_consumer, 
iggy::Identifier::String(stream_name),
                                                
iggy::Identifier::String(topic_name), 0, 0));
     ASSERT_NO_THROW(client.StoreConsumerOffset(second_consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 2, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 2));
 
     EXPECT_EQ(client
                   .GetConsumerOffset(first_consumer, 
iggy::Identifier::String(stream_name),
@@ -1544,7 +1544,7 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetSupportsNamedAndNumericIdentifiers)
     ASSERT_NO_THROW(client.StoreConsumerOffset(named_consumer, 
iggy::Identifier::String(stream_name),
                                                
iggy::Identifier::String(topic_name), 0, 0));
     ASSERT_NO_THROW(client.StoreConsumerOffset(numeric_consumer, 
iggy::Identifier::Numeric(stream.Id()),
-                                               
iggy::Identifier::Numeric(topic.Id()), 1, 0));
+                                               
iggy::Identifier::Numeric(topic.Id()), 0, 1));
 
     EXPECT_EQ(client
                   .GetConsumerOffset(named_consumer, 
iggy::Identifier::Numeric(stream.Id()),
@@ -1582,13 +1582,13 @@ TEST_F(E2E_ConsumerGroup, 
StoreConsumerOffsetWithoutPermissionThrowsWithoutChang
                                                   
make_string_identifier(topic_name), "partition_id",
                                                   partition_id_bytes(0), 
std::move(messages)));
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 1, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 1));
     ASSERT_NO_THROW(CreateUser(user_admin_client, username, password, 
iggy::ffi::UserStatus::Active, true,
                                iggy::ffi::Permissions{}));
     auto restricted_client = GetLoggedInHighLevelClient(username, password);
 
     ASSERT_THROW(restricted_client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                                       
iggy::Identifier::String(topic_name), 2, 0),
+                                                       
iggy::Identifier::String(topic_name), 0, 2),
                  iggy::IggyException);
     EXPECT_EQ(
         client
@@ -1618,7 +1618,7 @@ TEST_F(E2E_ConsumerGroup, 
GetConsumerOffsetReturnsAllFieldsForNonZeroPartition)
                                                   
make_string_identifier(topic_name), "partition_id",
                                                   partition_id_bytes(1), 
std::move(messages)));
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 2, 1));
+                                               
iggy::Identifier::String(topic_name), 1, 2));
 
     const auto offset = client.GetConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
                                                  
iggy::Identifier::String(topic_name), 1);
@@ -1775,7 +1775,7 @@ TEST_F(E2E_ConsumerGroup, 
GetConsumerGroupOffsetCanBeReadByNonMember) {
                                                    
iggy::Identifier::String(group_name)));
     const auto named_group = 
iggy::Consumer::Group(iggy::Identifier::String(group_name));
     ASSERT_NO_THROW(owner_client.StoreConsumerOffset(named_group, 
iggy::Identifier::String(stream_name),
-                                                     
iggy::Identifier::String(topic_name), 1, 0));
+                                                     
iggy::Identifier::String(topic_name), 0, 1));
 
     const auto numeric_group = 
iggy::Consumer::Group(iggy::Identifier::Numeric(group.Id()));
     const auto offset        = reader_client.GetConsumerOffset(numeric_group, 
iggy::Identifier::String(stream_name),
@@ -1903,11 +1903,11 @@ TEST_F(E2E_ConsumerGroup, 
DeleteConsumerOffsetRemovesOnlyRequestedConsumerAndPar
                                                   
make_string_identifier(topic_name), "partition_id",
                                                   partition_id_bytes(1), 
std::move(second_partition_messages)));
     ASSERT_NO_THROW(client.StoreConsumerOffset(first_consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 1, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 1));
     ASSERT_NO_THROW(client.StoreConsumerOffset(first_consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 2, 1));
+                                               
iggy::Identifier::String(topic_name), 1, 2));
     ASSERT_NO_THROW(client.StoreConsumerOffset(second_consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 3, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 3));
 
     ASSERT_NO_THROW(client.DeleteConsumerOffset(first_consumer, 
iggy::Identifier::String(stream_name),
                                                 
iggy::Identifier::String(topic_name), 0));
@@ -2016,7 +2016,7 @@ TEST_F(E2E_ConsumerGroup, 
DeleteConsumerOffsetWithoutPermissionThrowsWithoutRemo
                                                   
make_string_identifier(topic_name), "partition_id",
                                                   partition_id_bytes(0), 
std::move(messages)));
     ASSERT_NO_THROW(client.StoreConsumerOffset(consumer, 
iggy::Identifier::String(stream_name),
-                                               
iggy::Identifier::String(topic_name), 1, 0));
+                                               
iggy::Identifier::String(topic_name), 0, 1));
     ASSERT_NO_THROW(CreateUser(user_admin_client, username, password, 
iggy::ffi::UserStatus::Active, true,
                                iggy::ffi::Permissions{}));
     auto restricted_client = GetLoggedInHighLevelClient(username, password);
@@ -2094,7 +2094,7 @@ TEST_F(E2E_ConsumerGroup, 
DeleteConsumerGroupOffsetForUnownedPartitionThrowsWith
                                                    
iggy::Identifier::String(group_name)));
     const auto consumer_group = 
iggy::Consumer::Group(iggy::Identifier::String(group_name));
     ASSERT_NO_THROW(owner_client.StoreConsumerOffset(consumer_group, 
iggy::Identifier::String(stream_name),
-                                                     
iggy::Identifier::String(topic_name), 1, 0));
+                                                     
iggy::Identifier::String(topic_name), 0, 1));
 
     ASSERT_THROW(non_member_client.DeleteConsumerOffset(consumer_group, 
iggy::Identifier::String(stream_name),
                                                         
iggy::Identifier::String(topic_name), 0),
@@ -2151,7 +2151,7 @@ TEST_F(E2E_ConsumerGroup, 
DeleteConsumerOffsetSupportsNamedAndNumericIdentifiers
     ASSERT_NO_THROW(client.StoreConsumerOffset(named_consumer, 
iggy::Identifier::String(stream_name),
                                                
iggy::Identifier::String(topic_name), 0, 0));
     ASSERT_NO_THROW(client.StoreConsumerOffset(numeric_consumer, 
iggy::Identifier::Numeric(stream.Id()),
-                                               
iggy::Identifier::Numeric(topic.Id()), 1, 0));
+                                               
iggy::Identifier::Numeric(topic.Id()), 0, 1));
 
     ASSERT_NO_THROW(client.DeleteConsumerOffset(named_consumer, 
iggy::Identifier::Numeric(stream.Id()),
                                                 
iggy::Identifier::Numeric(topic.Id()), 0));
diff --git a/foreign/cpp/tests/unit/unit_tests.cpp 
b/foreign/cpp/tests/unit/unit_tests.cpp
index 410e91fbd..4f05e27e5 100644
--- a/foreign/cpp/tests/unit/unit_tests.cpp
+++ b/foreign/cpp/tests/unit/unit_tests.cpp
@@ -402,7 +402,7 @@ TEST(IggyBlockingClientTest, 
ConsumerOffsetOperationsRejectMaximumPartitionId) {
         }
     };
 
-    expect_rejection([&] { client.StoreConsumerOffset(consumer, stream, topic, 
0, maximum_partition); });
+    expect_rejection([&] { client.StoreConsumerOffset(consumer, stream, topic, 
maximum_partition, 0); });
     expect_rejection([&] { (void)client.GetConsumerOffset(consumer, stream, 
topic, maximum_partition); });
     expect_rejection([&] { client.DeleteConsumerOffset(consumer, stream, 
topic, maximum_partition); });
 }

Reply via email to