diff OrthancServer/OrthancConfiguration.h @ 2944:f395460af74d

simplifying OrthancConfiguration for modalities/peers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 29 Nov 2018 16:31:20 +0100
parents e292798f9980
children 2e751f615e03
line wrap: on
line diff
--- a/OrthancServer/OrthancConfiguration.h	Thu Nov 29 15:16:32 2018 +0100
+++ b/OrthancServer/OrthancConfiguration.h	Thu Nov 29 16:31:20 2018 +0100
@@ -51,12 +51,17 @@
   class OrthancConfiguration : public boost::noncopyable
   {
   private:
+    typedef std::map<std::string, RemoteModalityParameters>   Modalities;
+    typedef std::map<std::string, WebServiceParameters>       Peers;
+
     boost::shared_mutex      mutex_;
     Json::Value              json_;
     boost::filesystem::path  defaultDirectory_;
     std::string              configurationAbsolutePath_;
     FontRegistry             fontRegistry_;
     const char*              configurationFileArg_;
+    Modalities               modalities_;
+    Peers                    peers_;
     ServerIndex*             serverIndex_;
 
     OrthancConfiguration() :
@@ -64,8 +69,20 @@
     {
     }
 
-    void ValidateConfiguration() const;
+    void LoadModalitiesFromJson(const Json::Value& source);
+    
+    void SaveModalitiesToJson(Json::Value& target);
+    
+    void LoadPeersFromJson(const Json::Value& source);
     
+    void SavePeersToJson(Json::Value& target);
+    
+    void LoadModalitiesAndPeers();
+    
+    void SaveModalities();
+    
+    void SavePeers();
+
     static OrthancConfiguration& GetInstance();
 
   public:
@@ -156,12 +173,8 @@
     void GetDicomModalityUsingSymbolicName(RemoteModalityParameters& modality,
                                            const std::string& name) const;
 
-    bool GetOrthancPeer(WebServiceParameters& peer,
-                        const std::string& name) const;
-
-    bool ReadKeys(std::set<std::string>& target,
-                  const char* parameter,
-                  bool onlyAlphanumeric) const;
+    bool LookupOrthancPeer(WebServiceParameters& peer,
+                           const std::string& name) const;
 
     void GetListOfDicomModalities(std::set<std::string>& target) const;