comparison OrthancServer/DicomProtocol/DicomUserConnection.h @ 763:b5e6d2823115

dynamic negotiation of storage sop classes
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 29 Apr 2014 17:15:59 +0200
parents 2d0a347e8cfc
children 31cc399c7762
comparison
equal deleted inserted replaced
760:b2a62f22fbe8 763:b5e6d2823115
36 #include "../ServerEnumerations.h" 36 #include "../ServerEnumerations.h"
37 37
38 #include <stdint.h> 38 #include <stdint.h>
39 #include <boost/shared_ptr.hpp> 39 #include <boost/shared_ptr.hpp>
40 #include <boost/noncopyable.hpp> 40 #include <boost/noncopyable.hpp>
41 #include <list>
41 42
42 namespace Orthanc 43 namespace Orthanc
43 { 44 {
44 class DicomUserConnection : public boost::noncopyable 45 class DicomUserConnection : public boost::noncopyable
45 { 46 {
60 std::string localAet_; 61 std::string localAet_;
61 std::string distantAet_; 62 std::string distantAet_;
62 std::string distantHost_; 63 std::string distantHost_;
63 uint16_t distantPort_; 64 uint16_t distantPort_;
64 ModalityManufacturer manufacturer_; 65 ModalityManufacturer manufacturer_;
66 std::set<std::string> storageSOPClasses_;
67 std::list<std::string> reservedStorageSOPClasses_;
68 std::set<std::string> defaultStorageSOPClasses_;
65 69
66 void CheckIsOpen() const; 70 void CheckIsOpen() const;
67 71
68 void SetupPresentationContexts(const std::string& preferredTransferSyntax); 72 void SetupPresentationContexts(const std::string& preferredTransferSyntax);
69 73
72 const DicomMap& fields); 76 const DicomMap& fields);
73 77
74 void Move(const std::string& targetAet, 78 void Move(const std::string& targetAet,
75 const DicomMap& fields); 79 const DicomMap& fields);
76 80
81 void ResetStorageSOPClasses();
82
83 void CheckStorageSOPClassesInvariant() const;
84
77 public: 85 public:
78 DicomUserConnection(); 86 DicomUserConnection();
79 87
80 ~DicomUserConnection(); 88 ~DicomUserConnection();
81
82 void CopyParameters(const DicomUserConnection& other);
83 89
84 void SetLocalApplicationEntityTitle(const std::string& aet); 90 void SetLocalApplicationEntityTitle(const std::string& aet);
85 91
86 const std::string& GetLocalApplicationEntityTitle() const 92 const std::string& GetLocalApplicationEntityTitle() const
87 { 93 {
123 const std::string& GetPreferredTransferSyntax() const 129 const std::string& GetPreferredTransferSyntax() const
124 { 130 {
125 return preferredTransferSyntax_; 131 return preferredTransferSyntax_;
126 } 132 }
127 133
134 void AddStorageSOPClass(const char* sop);
135
128 void Open(); 136 void Open();
129 137
130 void Close(); 138 void Close();
131 139
132 bool IsOpen() const; 140 bool IsOpen() const;