Mercurial > hg > orthanc
comparison 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 |
comparison
equal
deleted
inserted
replaced
3849:8c96b20fb275 | 3850:d729d6e8b484 |
---|---|
31 **/ | 31 **/ |
32 | 32 |
33 | 33 |
34 #pragma once | 34 #pragma once |
35 | 35 |
36 #include "IDicomConnectionManager.h" | 36 #if !defined(ORTHANC_ENABLE_DCMTK_NETWORKING) |
37 # error The macro ORTHANC_ENABLE_DCMTK_NETWORKING must be defined | |
38 #endif | |
37 | 39 |
38 #if ORTHANC_ENABLE_DCMTK_NETWORKING == 0 | 40 #if ORTHANC_ENABLE_DCMTK_NETWORKING == 0 |
39 | 41 |
40 namespace Orthanc | 42 namespace Orthanc |
41 { | 43 { |
42 class TimeoutDicomConnectionManager : public IDicomConnectionManager | 44 class TimeoutDicomConnectionManager : public boost::noncopyable |
43 { | 45 { |
44 public: | 46 public: |
45 void SetTimeout(unsigned int timeout) | 47 void SetTimeout(unsigned int timeout) |
46 { | 48 { |
47 } | 49 } |
62 } | 64 } |
63 | 65 |
64 #else | 66 #else |
65 | 67 |
66 #include "../Compatibility.h" | 68 #include "../Compatibility.h" |
69 #include "DicomUserConnection.h" | |
67 | 70 |
68 #include <boost/date_time/posix_time/posix_time.hpp> | 71 #include <boost/date_time/posix_time/posix_time.hpp> |
69 | 72 |
70 namespace Orthanc | 73 namespace Orthanc |
71 { | 74 { |
72 class TimeoutDicomConnectionManager : public IDicomConnectionManager | 75 class TimeoutDicomConnectionManager : public boost::noncopyable |
73 { | 76 { |
74 private: | 77 private: |
75 class Resource; | |
76 | |
77 std::unique_ptr<DicomUserConnection> connection_; | 78 std::unique_ptr<DicomUserConnection> connection_; |
78 boost::posix_time::ptime lastUse_; | 79 boost::posix_time::ptime lastUse_; |
79 boost::posix_time::time_duration timeout_; | 80 boost::posix_time::time_duration timeout_; |
80 | 81 |
81 void Touch(); | 82 void Touch(); |
82 | 83 |
83 void CheckTimeoutInternal(); | 84 void CheckTimeoutInternal(); |
84 | 85 |
85 public: | 86 public: |
87 class Resource : public boost::noncopyable | |
88 { | |
89 private: | |
90 TimeoutDicomConnectionManager& that_; | |
91 | |
92 public: | |
93 Resource(TimeoutDicomConnectionManager& that); | |
94 | |
95 ~Resource(); | |
96 | |
97 DicomUserConnection& GetConnection(); | |
98 }; | |
99 | |
86 TimeoutDicomConnectionManager() : | 100 TimeoutDicomConnectionManager() : |
87 timeout_(boost::posix_time::milliseconds(1000)) | 101 timeout_(boost::posix_time::milliseconds(1000)) |
88 { | 102 { |
89 } | 103 } |
90 | 104 |
94 | 108 |
95 void Close(); | 109 void Close(); |
96 | 110 |
97 void CheckTimeout(); | 111 void CheckTimeout(); |
98 | 112 |
99 virtual IResource* AcquireConnection(const std::string& localAet, | 113 Resource* AcquireConnection(const std::string& localAet, |
100 const RemoteModalityParameters& remote); | 114 const RemoteModalityParameters& remote); |
101 }; | 115 }; |
102 } | 116 } |
103 | 117 |
104 #endif | 118 #endif |