changeset 6122:76935f315e7f attach-custom-data

implemented protobuf for ListKeysValues
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 20 May 2025 16:42:24 +0200
parents 756983d498bb
children 0ff96222e461
files OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp OrthancServer/Plugins/Include/orthanc/OrthancDatabasePlugin.proto
diffstat 2 files changed, 21 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp	Tue May 20 16:24:56 2025 +0200
+++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp	Tue May 20 16:42:24 2025 +0200
@@ -1936,17 +1936,18 @@
       if (database_.GetDatabaseCapabilities().HasKeyValueStoresSupport())
       {
         DatabasePluginMessages::TransactionRequest request;
-        request.mutable_list_key_values()->set_store_id(storeId);
-        // request.mutable_list_key_values()->set_since(since);  // TODO_ATTACH_CUSTOM_DATA
-        request.mutable_list_key_values()->set_limit(limit);
+        request.mutable_list_keys_values()->set_store_id(storeId);
+        request.mutable_list_keys_values()->set_first(first);
+        request.mutable_list_keys_values()->set_from(from);
+        request.mutable_list_keys_values()->set_limit(limit);
 
         DatabasePluginMessages::TransactionResponse response;
         ExecuteTransaction(response, DatabasePluginMessages::OPERATION_LIST_KEY_VALUES, request);
 
-        for (int i = 0; i < response.list_key_values().key_values_size(); ++i)
+        for (int i = 0; i < response.list_keys_values().keys_values_size(); ++i)
         {
-          keys.push_back(response.list_key_values().key_values(i).key());
-          // values .push_back(response.list_key_value().key_values(i)); // TODO_ATTACH_CUSTOM_DATA
+          keys.push_back(response.list_keys_values().keys_values(i).key());
+          values.push_back(response.list_keys_values().keys_values(i).value());
         }
       }
       else
@@ -1982,14 +1983,17 @@
       {
         DatabasePluginMessages::TransactionRequest request;
         request.mutable_dequeue_value()->set_queue_id(queueId);
+
         switch (origin)
         {
           case QueueOrigin_Back:
             request.mutable_dequeue_value()->set_origin(DatabasePluginMessages::QUEUE_ORIGIN_BACK);
             break;
+
           case QueueOrigin_Front:
             request.mutable_dequeue_value()->set_origin(DatabasePluginMessages::QUEUE_ORIGIN_FRONT);
             break;
+
           default:
             throw OrthancException(ErrorCode_InternalError);
         }
--- a/OrthancServer/Plugins/Include/orthanc/OrthancDatabasePlugin.proto	Tue May 20 16:24:56 2025 +0200
+++ b/OrthancServer/Plugins/Include/orthanc/OrthancDatabasePlugin.proto	Tue May 20 16:42:24 2025 +0200
@@ -1025,20 +1025,20 @@
   }
 }
 
-message KeyValue {
-  string key = 1;
-  string value = 2;
-}
-
-message ListKeyValues {
+message ListKeysValues {
   message Request {
     string store_id = 1;
-    uint64 since = 2;
-    uint64 limit = 3;
+    bool first = 2;
+    string from = 3;  // Only meaningful if "first == false"
+    uint64 limit = 4;
   }
 
   message Response {
-    repeated KeyValue key_values = 1;
+    message KeyValue {
+      string key = 1;
+      string value = 2;
+    }
+    repeated KeyValue keys_values = 1;
   }
 }
 
@@ -1156,7 +1156,7 @@
   StoreKeyValue.Request                   store_key_value = 153;
   DeleteKeyValue.Request                  delete_key_value = 154;
   GetKeyValue.Request                     get_key_value = 155;
-  ListKeyValues.Request                   list_key_values = 156;
+  ListKeysValues.Request                  list_keys_values = 156;
   EnqueueValue.Request                    enqueue_value = 157;
   DequeueValue.Request                    dequeue_value = 158;
   GetQueueSize.Request                    get_queue_size = 159;
@@ -1221,7 +1221,7 @@
   StoreKeyValue.Response                   store_key_value = 153;
   DeleteKeyValue.Response                  delete_key_value = 154;
   GetKeyValue.Response                     get_key_value = 155;
-  ListKeyValues.Response                   list_key_values = 156;
+  ListKeysValues.Response                  list_keys_values = 156;
   EnqueueValue.Response                    enqueue_value = 157;
   DequeueValue.Response                    dequeue_value = 158;
   GetQueueSize.Response                    get_queue_size = 159;