Mercurial > hg > orthanc-stone
diff Framework/Oracle/GenericOracleRunner.cpp @ 1135:a0a33e5ea5bb broker
IOracleCommand::Clone()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 06 Nov 2019 17:34:58 +0100 |
parents | 87fbeb823375 |
children | 42581a6182c8 |
line wrap: on
line diff
--- a/Framework/Oracle/GenericOracleRunner.cpp Wed Nov 06 15:16:45 2019 +0100 +++ b/Framework/Oracle/GenericOracleRunner.cpp Wed Nov 06 17:34:58 2019 +0100 @@ -102,7 +102,7 @@ static void RunInternal(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, - HttpCommand& command) + const HttpCommand& command) { Orthanc::HttpClient client; client.SetUrl(command.GetUrl()); @@ -136,7 +136,7 @@ static void RunInternal(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, const Orthanc::WebServiceParameters& orthanc, - OrthancRestApiCommand& command) + const OrthancRestApiCommand& command) { Orthanc::HttpClient client(orthanc, command.GetUri()); client.SetMethod(command.GetMethod()); @@ -164,7 +164,7 @@ static void RunInternal(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, const Orthanc::WebServiceParameters& orthanc, - GetOrthancImageCommand& command) + const GetOrthancImageCommand& command) { Orthanc::HttpClient client(orthanc, command.GetUri()); client.SetTimeout(command.GetTimeout()); @@ -184,7 +184,7 @@ static void RunInternal(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, const Orthanc::WebServiceParameters& orthanc, - GetOrthancWebViewerJpegCommand& command) + const GetOrthancWebViewerJpegCommand& command) { Orthanc::HttpClient client(orthanc, command.GetUri()); client.SetTimeout(command.GetTimeout()); @@ -225,7 +225,7 @@ static void RunInternal(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, const std::string& root, - ReadFileCommand& command) + const ReadFileCommand& command) { std::string path = GetPath(root, command.GetPath()); @@ -241,7 +241,7 @@ static void RunInternal(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, const std::string& root, - ParseDicomFileCommand& command) + const ParseDicomFileCommand& command) { std::string path = GetPath(root, command.GetPath()); @@ -303,7 +303,7 @@ IMessageEmitter& emitter, boost::shared_ptr<ParsedDicomFileCache> cache, const std::string& root, - ParseDicomFileCommand& command) + const ParseDicomFileCommand& command) { #if 0 // The code to use the cache is buggy in multithreaded environments => TODO FIX @@ -348,7 +348,7 @@ void GenericOracleRunner::Run(boost::weak_ptr<IObserver> receiver, IMessageEmitter& emitter, - IOracleCommand& command) + const IOracleCommand& command) { Orthanc::ErrorCode error = Orthanc::ErrorCode_Success; @@ -361,33 +361,33 @@ "Sleep command cannot be executed by the runner"); case IOracleCommand::Type_Http: - RunInternal(receiver, emitter, dynamic_cast<HttpCommand&>(command)); + RunInternal(receiver, emitter, dynamic_cast<const HttpCommand&>(command)); break; case IOracleCommand::Type_OrthancRestApi: RunInternal(receiver, emitter, orthanc_, - dynamic_cast<OrthancRestApiCommand&>(command)); + dynamic_cast<const OrthancRestApiCommand&>(command)); break; case IOracleCommand::Type_GetOrthancImage: RunInternal(receiver, emitter, orthanc_, - dynamic_cast<GetOrthancImageCommand&>(command)); + dynamic_cast<const GetOrthancImageCommand&>(command)); break; case IOracleCommand::Type_GetOrthancWebViewerJpeg: RunInternal(receiver, emitter, orthanc_, - dynamic_cast<GetOrthancWebViewerJpegCommand&>(command)); + dynamic_cast<const GetOrthancWebViewerJpegCommand&>(command)); break; case IOracleCommand::Type_ReadFile: RunInternal(receiver, emitter, rootDirectory_, - dynamic_cast<ReadFileCommand&>(command)); + dynamic_cast<const ReadFileCommand&>(command)); break; case IOracleCommand::Type_ParseDicomFile: #if ORTHANC_ENABLE_DCMTK == 1 RunInternal(receiver, emitter, dicomCache_, rootDirectory_, - dynamic_cast<ParseDicomFileCommand&>(command)); + dynamic_cast<const ParseDicomFileCommand&>(command)); break; #else throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented, @@ -409,7 +409,10 @@ error = Orthanc::ErrorCode_InternalError; } - OracleCommandExceptionMessage message(command, error); - emitter.EmitMessage(receiver, message); + if (error != Orthanc::ErrorCode_Success) + { + OracleCommandExceptionMessage message(command, error); + emitter.EmitMessage(receiver, message); + } } }