changeset 6116:14780871daaa attach-custom-data

changed signature of ITransaction::GetQueueSize()
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 20 May 2025 14:22:57 +0200
parents 7dcc5e0a23b7
children fec888c37d4e
files OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.cpp OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp OrthancServer/Plugins/Engine/OrthancPlugins.cpp OrthancServer/Sources/Database/IDatabaseWrapper.h OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp OrthancServer/Sources/Database/StatelessDatabaseOperations.h
diffstat 8 files changed, 19 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabase.cpp	Tue May 20 14:22:57 2025 +0200
@@ -1492,8 +1492,7 @@
       throw OrthancException(ErrorCode_InternalError);  // Not supported
     }
 
-    virtual void GetQueueSize(uint64_t& size,
-                              const std::string& queueId) ORTHANC_OVERRIDE
+    virtual uint64_t GetQueueSize(const std::string& queueId) ORTHANC_OVERRIDE
     {
       throw OrthancException(ErrorCode_InternalError);  // Not supported
     }
--- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.cpp	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV3.cpp	Tue May 20 14:22:57 2025 +0200
@@ -1104,8 +1104,7 @@
       throw OrthancException(ErrorCode_InternalError);  // Not supported
     }
 
-    virtual void GetQueueSize(uint64_t& size,
-                              const std::string& queueId) ORTHANC_OVERRIDE
+    virtual uint64_t GetQueueSize(const std::string& queueId) ORTHANC_OVERRIDE
     {
       throw OrthancException(ErrorCode_InternalError);  // Not supported
     }
@@ -1122,8 +1121,6 @@
     {
       throw OrthancException(ErrorCode_NotImplemented);  // Not supported
     }
-
-
   };
 
   
--- a/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Plugins/Engine/OrthancPluginDatabaseV4.cpp	Tue May 20 14:22:57 2025 +0200
@@ -1863,12 +1863,10 @@
       throw OrthancException(ErrorCode_InternalError);  // TODO_ATTACH_CUSTOM_DATA
     }
 
-    virtual void GetQueueSize(uint64_t& size,
-                              const std::string& queueId) ORTHANC_OVERRIDE
+    virtual uint64_t GetQueueSize(const std::string& queueId) ORTHANC_OVERRIDE
     {
       throw OrthancException(ErrorCode_InternalError);  // TODO_ATTACH_CUSTOM_DATA
     }
-
   };
 
 
--- a/OrthancServer/Plugins/Engine/OrthancPlugins.cpp	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Plugins/Engine/OrthancPlugins.cpp	Tue May 20 14:22:57 2025 +0200
@@ -4797,7 +4797,7 @@
   {
     PImpl::ServerContextReference lock(*pimpl_);
 
-    lock.GetContext().GetIndex().GetQueueSize(*parameters.size, parameters.queueId);
+    *parameters.size = lock.GetContext().GetIndex().GetQueueSize(parameters.queueId);
   }
 
   void OrthancPlugins::ApplyLoadDicomInstance(const _OrthancPluginLoadDicomInstance& params)
--- a/OrthancServer/Sources/Database/IDatabaseWrapper.h	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Sources/Database/IDatabaseWrapper.h	Tue May 20 14:22:57 2025 +0200
@@ -463,9 +463,8 @@
                                 const std::string& queueId,
                                 QueueOrigin origin) = 0;
 
-      virtual void GetQueueSize(uint64_t& size,
-                                const std::string& queueId) = 0;
-
+      // New in Orthanc 1.12.99, for statistics only
+      virtual uint64_t GetQueueSize(const std::string& queueId) = 0;
     };
 
 
--- a/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Sources/Database/SQLiteDatabaseWrapper.cpp	Tue May 20 14:22:57 2025 +0200
@@ -2224,9 +2224,11 @@
         case QueueOrigin_Front:
           s.reset(new SQLite::Statement(db_, SQLITE_FROM_HERE, "SELECT id, value FROM Queues WHERE queueId=? ORDER BY id ASC LIMIT 1"));
           break;
+
         case QueueOrigin_Back:
           s.reset(new SQLite::Statement(db_, SQLITE_FROM_HERE, "SELECT id, value FROM Queues WHERE queueId=? ORDER BY id DESC LIMIT 1"));
           break;
+
         default:
           throw OrthancException(ErrorCode_InternalError);
       }
@@ -2252,15 +2254,13 @@
     }
 
     // New in Orthanc 1.12.99
-    virtual void GetQueueSize(uint64_t& size,
-                              const std::string& queueId) ORTHANC_OVERRIDE
+    virtual uint64_t GetQueueSize(const std::string& queueId) ORTHANC_OVERRIDE
     {
       SQLite::Statement s(db_, SQLITE_FROM_HERE, "SELECT COUNT(*) FROM Queues WHERE queueId=?");
       s.BindString(0, queueId);
       s.Step();
-      size = s.ColumnInt64(0);
+      return s.ColumnInt64(0);
     }
-
   };
 
 
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp	Tue May 20 14:22:57 2025 +0200
@@ -3510,22 +3510,24 @@
     return operations.HasFound();
   }
 
-  void StatelessDatabaseOperations::GetQueueSize(uint64_t& size,
-                                                 const std::string& queueId)
+  uint64_t StatelessDatabaseOperations::GetQueueSize(const std::string& queueId)
   {
     class Operations : public ReadOnlyOperationsT2<uint64_t&, const std::string& >
     {
     public:
-
       virtual void ApplyTuple(ReadOnlyTransaction& transaction,
                               const Tuple& tuple) ORTHANC_OVERRIDE
       {
-        transaction.GetQueueSize(tuple.get<0>(), tuple.get<1>());
+        tuple.get<0>() = transaction.GetQueueSize(tuple.get<1>());
       }
     };
 
+    uint64_t size;
+
     Operations operations;
     operations.Apply(*this, size, queueId);
+
+    return size;
   }
 
 
--- a/OrthancServer/Sources/Database/StatelessDatabaseOperations.h	Mon May 19 15:13:19 2025 +0200
+++ b/OrthancServer/Sources/Database/StatelessDatabaseOperations.h	Tue May 20 14:22:57 2025 +0200
@@ -308,10 +308,9 @@
         return transaction_.GetKeyValue(value, storeId, key);
       }
 
-      void GetQueueSize(uint64_t& size,
-                        const std::string& queueId)
+      uint64_t GetQueueSize(const std::string& queueId)
       {
-        return transaction_.GetQueueSize(size, queueId);
+        return transaction_.GetQueueSize(queueId);
       }
 
       void ListKeys(std::list<std::string>& keys,
@@ -820,7 +819,6 @@
                       const std::string& queueId,
                       QueueOrigin origin);
     
-    void GetQueueSize(uint64_t& size,
-                      const std::string& queueId);
+    uint64_t GetQueueSize(const std::string& queueId);
   };
 }