Mercurial > hg > orthanc
diff OrthancServer/Sources/main.cpp @ 4473:68f52897c119
new URIs: /tools/accepted-transfer-syntaxes and /tools/unknown-sop-class-accepted to replace Lua callbacks for transfer syntaxes
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 26 Jan 2021 14:48:10 +0100 |
parents | 28a4baadde17 |
children | 8efeaba1b7f9 |
line wrap: on
line diff
--- a/OrthancServer/Sources/main.cpp Tue Jan 26 10:18:50 2021 +0100 +++ b/OrthancServer/Sources/main.cpp Tue Jan 26 14:48:10 2021 +0100 @@ -282,72 +282,6 @@ bool alwaysAllowEcho_; bool alwaysAllowStore_; - bool IsAllowedTransferSyntax(const std::string& remoteIp, - const std::string& remoteAet, - const std::string& calledAet, - TransferSyntaxGroup syntax) - { - std::string configuration; - - switch (syntax) - { - case TransferSyntaxGroup_Deflated: - configuration = "DeflatedTransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_Jpeg: - configuration = "JpegTransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_Jpeg2000: - configuration = "Jpeg2000TransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_JpegLossless: - configuration = "JpegLosslessTransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_Jpip: - configuration = "JpipTransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_Mpeg2: - configuration = "Mpeg2TransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_Mpeg4: - configuration = "Mpeg4TransferSyntaxAccepted"; - break; - - case TransferSyntaxGroup_Rle: - configuration = "RleTransferSyntaxAccepted"; - break; - - default: - throw OrthancException(ErrorCode_ParameterOutOfRange); - } - - { - std::string name = "Is" + configuration; - - LuaScripting::Lock lock(context_.GetLuaScripting()); - - if (lock.GetLua().IsExistingFunction(name.c_str())) - { - LuaFunctionCall call(lock.GetLua(), name.c_str()); - call.PushString(remoteAet); - call.PushString(remoteIp); - call.PushString(calledAet); - return call.ExecutePredicate(); - } - } - - { - OrthancConfiguration::ReaderLock lock; - return lock.GetConfiguration().GetBooleanParameter(configuration, true); - } - } - public: explicit OrthancApplicationEntityFilter(ServerContext& context) : context_(context) @@ -436,33 +370,7 @@ const std::string& remoteAet, const std::string& calledAet) ORTHANC_OVERRIDE { - target.clear(); - - // This is the list of the transfer syntaxes that were supported up to Orthanc 0.7.1 - target.insert(DicomTransferSyntax_LittleEndianExplicit); - target.insert(DicomTransferSyntax_BigEndianExplicit); - target.insert(DicomTransferSyntax_LittleEndianImplicit); - - // Group of transfer syntaxes, supported since Orthanc 0.7.2 - std::set<TransferSyntaxGroup> groups; - groups.insert(TransferSyntaxGroup_Deflated); - groups.insert(TransferSyntaxGroup_Jpeg); - groups.insert(TransferSyntaxGroup_Jpeg2000); - groups.insert(TransferSyntaxGroup_JpegLossless); - groups.insert(TransferSyntaxGroup_Jpip); - groups.insert(TransferSyntaxGroup_Mpeg2); - groups.insert(TransferSyntaxGroup_Mpeg4); // New in Orthanc 1.6.0 - groups.insert(TransferSyntaxGroup_Rle); - assert(groups.size() == 8u); // Number of items in enum, cf. "ServerEnumerations.h" - - for (std::set<TransferSyntaxGroup>::const_iterator - group = groups.begin(); group != groups.end(); ++group) - { - if (IsAllowedTransferSyntax(remoteIp, remoteAet, calledAet, *group)) - { - GetTransferSyntaxGroup(target, *group, false /* don't clear target */); - } - } + context_.GetAcceptedTransferSyntaxes(target); } @@ -470,27 +378,7 @@ const std::string& remoteAet, const std::string& calledAet) ORTHANC_OVERRIDE { - static const char* configuration = "UnknownSopClassAccepted"; - - { - std::string lua = "Is" + std::string(configuration); - - LuaScripting::Lock lock(context_.GetLuaScripting()); - - if (lock.GetLua().IsExistingFunction(lua.c_str())) - { - LuaFunctionCall call(lock.GetLua(), lua.c_str()); - call.PushString(remoteAet); - call.PushString(remoteIp); - call.PushString(calledAet); - return call.ExecutePredicate(); - } - } - - { - OrthancConfiguration::ReaderLock lock; - return lock.GetConfiguration().GetBooleanParameter(configuration, false); - } + return context_.IsUnknownSopClassAccepted(); } }; @@ -1536,7 +1424,7 @@ } { - ServerContextConfigurator configurator(context, plugins); + ServerContextConfigurator configurator(context, plugins); // This calls "OrthancConfiguration::SetServerIndex()" { OrthancConfiguration::WriterLock lock;