diff OrthancServer/ServerContext.h @ 1436:0a3e3be59094

uncoupling of SignalChange for Lua scripts
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 30 Jun 2015 17:19:26 +0200
parents f9cd40166269
children b2b09a3dbd8e
line wrap: on
line diff
--- a/OrthancServer/ServerContext.h	Tue Jun 30 16:46:23 2015 +0200
+++ b/OrthancServer/ServerContext.h	Tue Jun 30 17:19:26 2015 +0200
@@ -32,6 +32,7 @@
 
 #pragma once
 
+#include "../Core/MultiThreading/SharedMessageQueue.h"
 #include "../Core/Cache/MemoryCache.h"
 #include "../Core/Cache/SharedArchive.h"
 #include "../Core/FileStorage/CompressedFileStorageAccessor.h"
@@ -48,6 +49,8 @@
 #include "ServerIndex.h"
 
 #include <boost/filesystem.hpp>
+#include <boost/thread.hpp>
+
 
 namespace Orthanc
 {
@@ -100,6 +103,9 @@
     typedef std::list<ServerListener>  ServerListeners;
 
 
+    static void ChangeThread(ServerContext* that);
+
+
     ServerIndex index_;
     CompressedFileStorageAccessor accessor_;
     bool compressionEnabled_;
@@ -114,6 +120,10 @@
     OrthancPlugins* plugins_;
     ServerListeners listeners_;
 
+    bool done_;
+    SharedMessageQueue  pendingChanges_;
+    boost::thread  changeThread_;
+        
     SharedArchive  queryRetrieveArchive_;
     std::string defaultLocalAet_;
 
@@ -139,6 +149,8 @@
 
     ServerContext(IDatabaseWrapper& database);
 
+    ~ServerContext();
+
     void SetStorageArea(IStorageArea& storage)
     {
       accessor_.SetStorageArea(storage);