Mercurial > hg > orthanc
comparison Core/DicomNetworking/TimeoutDicomConnectionManager.cpp @ 3850:d729d6e8b484
removing useless abstraction IDicomConnectionManager
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 20 Apr 2020 14:45:21 +0200 |
parents | 94f4a18a79cc |
children | 6498739a3c3c |
comparison
equal
deleted
inserted
replaced
3849:8c96b20fb275 | 3850:d729d6e8b484 |
---|---|
42 static boost::posix_time::ptime GetNow() | 42 static boost::posix_time::ptime GetNow() |
43 { | 43 { |
44 return boost::posix_time::microsec_clock::universal_time(); | 44 return boost::posix_time::microsec_clock::universal_time(); |
45 } | 45 } |
46 | 46 |
47 class TimeoutDicomConnectionManager::Resource : public IDicomConnectionManager::IResource | 47 |
48 TimeoutDicomConnectionManager::Resource::Resource(TimeoutDicomConnectionManager& that) : | |
49 that_(that) | |
48 { | 50 { |
49 private: | 51 if (that_.connection_.get() == NULL) |
50 TimeoutDicomConnectionManager& that_; | 52 { |
53 throw OrthancException(ErrorCode_InternalError); | |
54 } | |
55 } | |
51 | 56 |
52 public: | 57 |
53 Resource(TimeoutDicomConnectionManager& that) : | 58 TimeoutDicomConnectionManager::Resource::~Resource() |
54 that_(that) | 59 { |
55 { | 60 that_.Touch(); |
56 if (that_.connection_.get() == NULL) | 61 } |
57 { | |
58 throw OrthancException(ErrorCode_InternalError); | |
59 } | |
60 } | |
61 | 62 |
62 ~Resource() | 63 |
63 { | 64 DicomUserConnection& TimeoutDicomConnectionManager::Resource::GetConnection() |
64 that_.Touch(); | 65 { |
65 } | 66 assert(that_.connection_.get() != NULL); |
66 | 67 return *that_.connection_; |
67 DicomUserConnection& GetConnection() | 68 } |
68 { | |
69 assert(that_.connection_.get() != NULL); | |
70 return *that_.connection_; | |
71 } | |
72 }; | |
73 | 69 |
74 | 70 |
75 void TimeoutDicomConnectionManager::Touch() | 71 void TimeoutDicomConnectionManager::Touch() |
76 { | 72 { |
77 lastUse_ = GetNow(); | 73 lastUse_ = GetNow(); |
117 { | 113 { |
118 CheckTimeoutInternal(); | 114 CheckTimeoutInternal(); |
119 } | 115 } |
120 | 116 |
121 | 117 |
122 IDicomConnectionManager::IResource* | 118 TimeoutDicomConnectionManager::Resource* |
123 TimeoutDicomConnectionManager::AcquireConnection(const std::string& localAet, | 119 TimeoutDicomConnectionManager::AcquireConnection(const std::string& localAet, |
124 const RemoteModalityParameters& remote) | 120 const RemoteModalityParameters& remote) |
125 { | 121 { |
126 if (connection_.get() == NULL || | 122 if (connection_.get() == NULL || |
127 !connection_->IsSameAssociation(localAet, remote)) | 123 !connection_->IsSameAssociation(localAet, remote)) |