]> Creatis software - creaImageIO.git/blob - src/creaImageIOSettings.h
e6a974473a169332a6a46a0832a2313abc5b4407
[creaImageIO.git] / src / creaImageIOSettings.h
1 #include <boost/program_options.hpp>
2 #include <map>
3
4 #define SETTINGS_DICOM_LIBRARY                  "<DICOM Library>"
5 #define SETTINGS_SYNC_EVENT                             "<syncro_event>"
6 #define SETTINGS_SYNC_FREQ                              "<syncro_frequency>"
7 #define SETTINGS_DBPATH                                 "<dbpath>"
8 #define SETTINGS_COPY_PATH                              "<copy_path>"
9 #define SETTINGS_REMOVE_PATIENT_DISPLAY "<remove_patient>"
10 #define SETTINGS_OUTPUT_ASK                             "<output_ask>"
11 #define SETTINGS_OUTPUT_DIM                             "<output_dim>"
12
13
14 namespace creaImageIO
15 {
16     class Settings{
17     public :
18         Settings(const std::string i_path);
19         ~Settings();
20
21         //get the value for a given option
22                 const std::string getValue(const std::string i_key){return m_SettingsMap[i_key];}
23         
24                 void addDB(const std::string &i_path);
25
26                 void removeDB(const std::string &i_path);
27
28                 void updateSetting(const std::string& key, const std::string &val);
29         
30                 //write configuration file
31                 void writeSettingsFile();
32                 
33     private :
34                 // Settings Key-Value Map
35                 std::map<std::string, std::string> m_SettingsMap;
36                 
37                 //read the configuration file
38                 void readSettings(std::vector<std::string> &i_Keys, const std::string &i_file);
39         // create the configuration file
40         void createFile();
41                 void writeSettings(std::ofstream &o_filebuf);
42                 std::string m_SettingsFileName;
43                 
44                 
45     };
46 }