Mercurial > hg > orthanc
diff Core/DicomNetworking/TimeoutDicomConnectionManager.h @ 3850:d729d6e8b484
removing useless abstraction IDicomConnectionManager
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 20 Apr 2020 14:45:21 +0200 |
parents | 2a170a8f1faf |
children | 6498739a3c3c |
line wrap: on
line diff
--- a/Core/DicomNetworking/TimeoutDicomConnectionManager.h Mon Apr 20 14:24:36 2020 +0200 +++ b/Core/DicomNetworking/TimeoutDicomConnectionManager.h Mon Apr 20 14:45:21 2020 +0200 @@ -33,13 +33,15 @@ #pragma once -#include "IDicomConnectionManager.h" +#if !defined(ORTHANC_ENABLE_DCMTK_NETWORKING) +# error The macro ORTHANC_ENABLE_DCMTK_NETWORKING must be defined +#endif #if ORTHANC_ENABLE_DCMTK_NETWORKING == 0 namespace Orthanc { - class TimeoutDicomConnectionManager : public IDicomConnectionManager + class TimeoutDicomConnectionManager : public boost::noncopyable { public: void SetTimeout(unsigned int timeout) @@ -64,16 +66,15 @@ #else #include "../Compatibility.h" +#include "DicomUserConnection.h" #include <boost/date_time/posix_time/posix_time.hpp> namespace Orthanc { - class TimeoutDicomConnectionManager : public IDicomConnectionManager + class TimeoutDicomConnectionManager : public boost::noncopyable { private: - class Resource; - std::unique_ptr<DicomUserConnection> connection_; boost::posix_time::ptime lastUse_; boost::posix_time::time_duration timeout_; @@ -83,6 +84,19 @@ void CheckTimeoutInternal(); public: + class Resource : public boost::noncopyable + { + private: + TimeoutDicomConnectionManager& that_; + + public: + Resource(TimeoutDicomConnectionManager& that); + + ~Resource(); + + DicomUserConnection& GetConnection(); + }; + TimeoutDicomConnectionManager() : timeout_(boost::posix_time::milliseconds(1000)) { @@ -96,8 +110,8 @@ void CheckTimeout(); - virtual IResource* AcquireConnection(const std::string& localAet, - const RemoteModalityParameters& remote); + Resource* AcquireConnection(const std::string& localAet, + const RemoteModalityParameters& remote); }; }