diff 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
line wrap: on
line diff
--- a/OrthancServer/DicomProtocol/DicomUserConnection.h	Tue Apr 22 13:36:51 2014 +0200
+++ b/OrthancServer/DicomProtocol/DicomUserConnection.h	Tue Apr 29 17:15:59 2014 +0200
@@ -38,6 +38,7 @@
 #include <stdint.h>
 #include <boost/shared_ptr.hpp>
 #include <boost/noncopyable.hpp>
+#include <list>
 
 namespace Orthanc
 {
@@ -62,6 +63,9 @@
     std::string distantHost_;
     uint16_t distantPort_;
     ModalityManufacturer manufacturer_;
+    std::set<std::string> storageSOPClasses_;
+    std::list<std::string> reservedStorageSOPClasses_;
+    std::set<std::string> defaultStorageSOPClasses_;
 
     void CheckIsOpen() const;
 
@@ -74,13 +78,15 @@
     void Move(const std::string& targetAet,
               const DicomMap& fields);
 
+    void ResetStorageSOPClasses();
+
+    void CheckStorageSOPClassesInvariant() const;
+
   public:
     DicomUserConnection();
 
     ~DicomUserConnection();
 
-    void CopyParameters(const DicomUserConnection& other);
-
     void SetLocalApplicationEntityTitle(const std::string& aet);
 
     const std::string& GetLocalApplicationEntityTitle() const
@@ -125,6 +131,8 @@
       return preferredTransferSyntax_;
     }
 
+    void AddStorageSOPClass(const char* sop);
+
     void Open();
 
     void Close();