Mercurial > hg > orthanc
diff OrthancServer/ServerContext.h @ 1023:226cfef3822e templating
integration mainline->templating
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 10 Jul 2014 11:42:32 +0200 |
parents | 84b6d7bca6db |
children | bb82e5e818e9 |
line wrap: on
line diff
--- a/OrthancServer/ServerContext.h Wed Jun 25 11:56:48 2014 +0200 +++ b/OrthancServer/ServerContext.h Thu Jul 10 11:42:32 2014 +0200 @@ -40,6 +40,8 @@ #include "ServerIndex.h" #include "ParsedDicomFile.h" #include "DicomProtocol/ReusableDicomUserConnection.h" +#include "Scheduler/ServerScheduler.h" +#include "DicomInstanceToStore.h" namespace Orthanc { @@ -64,6 +66,13 @@ virtual IDynamicObject* Provide(const std::string& id); }; + bool ApplyReceivedInstanceFilter(const Json::Value& simplified, + const std::string& remoteAet); + + void ApplyOnStoredInstance(const std::string& instanceId, + const Json::Value& simplifiedDicom, + const Json::Value& metadata); + FileStorage storage_; ServerIndex index_; CompressedFileStorageAccessor accessor_; @@ -73,11 +82,13 @@ boost::mutex dicomCacheMutex_; MemoryCache dicomCache_; ReusableDicomUserConnection scu_; + ServerScheduler scheduler_; + boost::mutex luaMutex_; LuaContext lua_; public: - class DicomCacheLocker + class DicomCacheLocker : public boost::noncopyable { private: ServerContext& that_; @@ -95,6 +106,29 @@ } }; + class LuaContextLocker : public boost::noncopyable + { + private: + ServerContext& that_; + + public: + LuaContextLocker(ServerContext& that) : that_(that) + { + that.luaMutex_.lock(); + } + + ~LuaContextLocker() + { + that_.luaMutex_.unlock(); + } + + LuaContext& GetLua() + { + return that_.lua_; + } + }; + + ServerContext(const boost::filesystem::path& storagePath, const boost::filesystem::path& indexPath); @@ -117,26 +151,8 @@ const void* data, size_t size); - StoreStatus Store(const char* dicomInstance, - size_t dicomSize, - const DicomMap& dicomSummary, - const Json::Value& dicomJson, - const std::string& remoteAet); - StoreStatus Store(std::string& resultPublicId, - ParsedDicomFile& dicomInstance, - const char* dicomBuffer, - size_t dicomSize); - - StoreStatus Store(std::string& resultPublicId, - ParsedDicomFile& dicomInstance); - - StoreStatus Store(std::string& resultPublicId, - const char* dicomBuffer, - size_t dicomSize); - - StoreStatus Store(std::string& resultPublicId, - const std::string& dicomContent); + DicomInstanceToStore& dicom); void AnswerDicomFile(RestApiOutput& output, const std::string& instancePublicId, @@ -151,11 +167,6 @@ FileContentType content, bool uncompressIfNeeded = true); - LuaContext& GetLuaContext() - { - return lua_; - } - void SetStoreMD5ForAttachments(bool storeMD5); bool IsStoreMD5ForAttachments() const @@ -167,5 +178,10 @@ { return scu_; } + + ServerScheduler& GetScheduler() + { + return scheduler_; + } }; }