Mercurial > hg > orthanc
diff Plugins/Engine/OrthancPlugins.cpp @ 2940:4767d36679ed
refactoring access to Orthanc configuration
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 29 Nov 2018 11:47:00 +0100 |
parents | 9d277f8ad698 |
children | f395460af74d |
line wrap: on
line diff
--- a/Plugins/Engine/OrthancPlugins.cpp Wed Nov 28 14:48:14 2018 +0100 +++ b/Plugins/Engine/OrthancPlugins.cpp Thu Nov 29 11:47:00 2018 +0100 @@ -48,7 +48,7 @@ #include "../../Core/Toolbox.h" #include "../../Core/DicomParsing/FromDcmtkBridge.h" #include "../../Core/DicomParsing/ToDcmtkBridge.h" -#include "../../OrthancServer/OrthancInitialization.h" +#include "../../OrthancServer/OrthancConfiguration.h" #include "../../OrthancServer/ServerContext.h" #include "../../OrthancServer/ServerToolbox.h" #include "../../OrthancServer/Search/HierarchicalMatcher.h" @@ -271,8 +271,10 @@ public: OrthancPeers() { + OrthancConfiguration::ReaderLock lock; + std::set<std::string> peers; - Configuration::GetListOfOrthancPeers(peers); + lock.GetConfiguration().GetListOfOrthancPeers(peers); names_.reserve(peers.size()); parameters_.reserve(peers.size()); @@ -281,7 +283,7 @@ it = peers.begin(); it != peers.end(); ++it) { WebServiceParameters peer; - if (Configuration::GetOrthancPeer(peer, *it)) + if (lock.GetConfiguration().GetOrthancPeer(peer, *it)) { names_.push_back(*it); parameters_.push_back(peer); @@ -2105,19 +2107,23 @@ { const _OrthancPluginGetFontInfo& p = *reinterpret_cast<const _OrthancPluginGetFontInfo*>(parameters); - const Font& font = Configuration::GetFontRegistry().GetFont(p.fontIndex); - - if (p.name != NULL) { - *(p.name) = font.GetName().c_str(); - } - else if (p.size != NULL) - { - *(p.size) = font.GetSize(); - } - else - { - throw OrthancException(ErrorCode_InternalError); + OrthancConfiguration::ReaderLock lock; + + const Font& font = lock.GetConfiguration().GetFontRegistry().GetFont(p.fontIndex); + + if (p.name != NULL) + { + *(p.name) = font.GetName().c_str(); + } + else if (p.size != NULL) + { + *(p.size) = font.GetSize(); + } + else + { + throw OrthancException(ErrorCode_InternalError); + } } } @@ -2127,9 +2133,12 @@ const _OrthancPluginDrawText& p = *reinterpret_cast<const _OrthancPluginDrawText*>(parameters); ImageAccessor& target = *reinterpret_cast<ImageAccessor*>(p.image); - const Font& font = Configuration::GetFontRegistry().GetFont(p.fontIndex); - - font.Draw(target, p.utf8Text, p.x, p.y, p.r, p.g, p.b); + + { + OrthancConfiguration::ReaderLock lock; + const Font& font = lock.GetConfiguration().GetFontRegistry().GetFont(p.fontIndex); + font.Draw(target, p.utf8Text, p.x, p.y, p.r, p.g, p.b); + } } @@ -2392,15 +2401,25 @@ case _OrthancPluginService_GetConfigurationPath: { - *reinterpret_cast<const _OrthancPluginRetrieveDynamicString*>(parameters)->result = - CopyString(Configuration::GetConfigurationAbsolutePath()); + std::string s; + + { + OrthancConfiguration::ReaderLock lock; + s = lock.GetConfiguration().GetConfigurationAbsolutePath(); + } + + *reinterpret_cast<const _OrthancPluginRetrieveDynamicString*>(parameters)->result = CopyString(s); return true; } case _OrthancPluginService_GetConfiguration: { std::string s; - Configuration::FormatConfiguration(s); + + { + OrthancConfiguration::ReaderLock lock; + lock.GetConfiguration().Format(s); + } *reinterpret_cast<const _OrthancPluginRetrieveDynamicString*>(parameters)->result = CopyString(s); return true; @@ -2665,7 +2684,12 @@ { const _OrthancPluginReturnSingleValue& p = *reinterpret_cast<const _OrthancPluginReturnSingleValue*>(parameters); - *(p.resultUint32) = Configuration::GetFontRegistry().GetSize(); + + { + OrthancConfiguration::ReaderLock lock; + *(p.resultUint32) = lock.GetConfiguration().GetFontRegistry().GetSize(); + } + return true; }