Mercurial > hg > orthanc
diff OrthancServer/ServerJobs/Operations/StoreScuOperation.cpp @ 3851:6498739a3c3c
refactoring: TimeoutDicomConnectionManager is now only used by Lua
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 20 Apr 2020 16:46:44 +0200 |
parents | d729d6e8b484 |
children | 9973d10bc5c4 |
line wrap: on
line diff
--- a/OrthancServer/ServerJobs/Operations/StoreScuOperation.cpp Mon Apr 20 14:45:21 2020 +0200 +++ b/OrthancServer/ServerJobs/Operations/StoreScuOperation.cpp Mon Apr 20 16:46:44 2020 +0200 @@ -43,18 +43,10 @@ namespace Orthanc { void StoreScuOperation::Apply(JobOperationValues& outputs, - const JobOperationValue& input, - TimeoutDicomConnectionManager& connectionManager) + const JobOperationValue& input) { - std::unique_ptr<TimeoutDicomConnectionManager::Resource> resource - (connectionManager.AcquireConnection(localAet_, modality_)); - - if (resource.get() == NULL) - { - LOG(ERROR) << "Lua: Cannot connect to modality: " << modality_.GetApplicationEntityTitle(); - return; - } - + TimeoutDicomConnectionManager::Lock lock(connectionManager_, localAet_, modality_); + if (input.GetType() != JobOperationValue::Type_DicomInstance) { throw OrthancException(ErrorCode_BadParameterType); @@ -72,7 +64,7 @@ instance.ReadDicom(dicom); std::string sopClassUid, sopInstanceUid; // Unused - resource->GetConnection().Store(sopClassUid, sopInstanceUid, dicom); + lock.GetConnection().Store(sopClassUid, sopInstanceUid, dicom); } catch (OrthancException& e) { @@ -93,7 +85,9 @@ } - StoreScuOperation::StoreScuOperation(const Json::Value& serialized) + StoreScuOperation::StoreScuOperation(TimeoutDicomConnectionManager& connectionManager, + const Json::Value& serialized) : + connectionManager_(connectionManager) { if (SerializationToolbox::ReadString(serialized, "Type") != "StoreScu" || !serialized.isMember("LocalAET"))