Mercurial > hg > orthanc
diff Core/DicomNetworking/DicomStoreUserConnection.cpp @ 3826:e82bd07c384e
putting DicomAssociation behind pimpl
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 10 Apr 2020 16:12:10 +0200 |
parents | 4570c57668a8 |
children | 83ea6939293d |
line wrap: on
line diff
--- a/Core/DicomNetworking/DicomStoreUserConnection.cpp Fri Apr 10 16:04:54 2020 +0200 +++ b/Core/DicomNetworking/DicomStoreUserConnection.cpp Fri Apr 10 16:12:10 2020 +0200 @@ -34,6 +34,8 @@ #include "../PrecompiledHeaders.h" #include "DicomStoreUserConnection.h" +#include "DicomAssociation.h" + #include "../Logging.h" #include "../OrthancException.h" @@ -48,7 +50,7 @@ requiredCount += 1; } - if (association_.GetRemainingPropositions() <= requiredCount) + if (association_->GetRemainingPropositions() <= requiredCount) { return false; // Not enough room } @@ -56,7 +58,7 @@ for (std::set<DicomTransferSyntax>::const_iterator it = syntaxes.begin(); it != syntaxes.end(); ++it) { - association_.ProposePresentationContext(sopClassUid, *it); + association_->ProposePresentationContext(sopClassUid, *it); } if (proposeUncompressedSyntaxes_) @@ -81,7 +83,7 @@ if (!uncompressed.empty()) { - association_.ProposePresentationContext(sopClassUid, uncompressed); + association_->ProposePresentationContext(sopClassUid, uncompressed); } } @@ -97,8 +99,8 @@ typedef std::map<DicomTransferSyntax, uint8_t> PresentationContexts; PresentationContexts pc; - if (association_.IsOpen() && - association_.LookupAcceptedPresentationContext(pc, sopClassUid)) + if (association_->IsOpen() && + association_->LookupAcceptedPresentationContext(pc, sopClassUid)) { PresentationContexts::const_iterator found = pc.find(transferSyntax); if (found != pc.end()) @@ -115,6 +117,7 @@ DicomStoreUserConnection::DicomStoreUserConnection( const DicomAssociationParameters& params) : parameters_(params), + association_(new DicomAssociation), proposeCommonClasses_(true), proposeUncompressedSyntaxes_(true), proposeRetiredBigEndian_(false) @@ -158,7 +161,7 @@ // The association must be re-negotiated LOG(INFO) << "Re-negociating DICOM association with " << parameters_.GetRemoteApplicationEntityTitle(); - association_.ClearPresentationContexts(); + association_->ClearPresentationContexts(); PrepareStorageClass(sopClassUid, transferSyntax); @@ -231,7 +234,7 @@ * class UID, transfer syntax) was accepted by the remote host. **/ - association_.Open(parameters_); + association_->Open(parameters_); return LookupPresentationContext(presentationContextId, sopClassUid, transferSyntax); } }