Mercurial > hg > orthanc-stone
diff Framework/Oracle/ThreadedOracle.cpp @ 1124:a8bf81756839 broker
unsuccessful attempt to cache ParseDicomFileCommand
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 05 Nov 2019 18:49:06 +0100 |
parents | 79b1b541fe15 |
children | a8c3908ecba9 |
line wrap: on
line diff
--- a/Framework/Oracle/ThreadedOracle.cpp Mon Nov 04 15:54:57 2019 +0100 +++ b/Framework/Oracle/ThreadedOracle.cpp Tue Nov 05 18:49:06 2019 +0100 @@ -181,6 +181,11 @@ boost::mutex::scoped_lock lock(mutex_); runner.SetOrthanc(orthanc_); runner.SetRootDirectory(rootDirectory_); + + if (dicomCache_) + { + runner.SetDicomCache(dicomCache_); + } } std::auto_ptr<IMessage> message(runner.Run(item.GetCommand())); @@ -355,6 +360,31 @@ } + void ThreadedOracle::SetDicomCacheSize(size_t size) + { +#if ORTHANC_ENABLE_DCMTK == 1 + boost::mutex::scoped_lock lock(mutex_); + + if (state_ != State_Setup) + { + LOG(ERROR) << "ThreadedOracle::SetDicomCacheSize(): (state_ != State_Setup)"; + throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); + } + else + { + if (size == 0) + { + dicomCache_.reset(); + } + else + { + dicomCache_.reset(new ParsedDicomFileCache(size)); + } + } +#endif + } + + void ThreadedOracle::Start() { boost::mutex::scoped_lock lock(mutex_);