neic-glass3  1.4.6
config.h
Go to the documentation of this file.
1 /*****************************************
2  * This file is documented for Doxygen.
3  * If you modify this file please update
4  * the comments so that Doxygen will still
5  * be able to work.
6  ****************************************/
7 #ifndef CONFIG_H
8 #define CONFIG_H
9 
10 #include <json.h>
11 #include <string>
12 #include <fstream>
13 #include <memory>
14 
15 namespace glass3 {
16 namespace util {
27 class Config {
28  public:
35  Config();
36 
51  Config(std::string filePath, std::string fileName);
52 
66  explicit Config(std::string newConfig);
67 
73  ~Config();
74 
91  std::shared_ptr<const json::Object> parseJSONFromFile(
92  std::string filePath, std::string fileName);
93 
109  std::shared_ptr<const json::Object> parseJSONFromString(
110  std::string newConfig);
111 
119  std::shared_ptr<const json::Object> getJSON();
120 
126  void clear();
127 
128  protected:
140  std::ifstream openFile(std::string filePath, std::string fileName);
141 
153  std::string parseLineFromFile(std::ifstream &inFile);
154 
165  bool isFileOpen(std::ifstream &inFile);
166 
174  void closeFile(std::ifstream &inFile);
175 
176  private:
181  std::string m_sConfigString;
182 
186  std::shared_ptr<json::Object> m_ConfigJSON;
187 };
188 } // namespace util
189 } // namespace glass3
190 #endif // CONFIG_H
191 
std::string parseLineFromFile(std::ifstream &inFile)
Parses next line from file.
Definition: config.cpp:157
void closeFile(std::ifstream &inFile)
Closes the open file.
Definition: config.cpp:218
std::shared_ptr< const json::Object > parseJSONFromFile(std::string filePath, std::string fileName)
A function that loads configuration from a JSON formatted file accessed via filePath/fileName.
Definition: config.cpp:38
~Config()
Config destructor.
Definition: config.cpp:27
neic-glass3 configuration class using JSON formatting
Definition: config.h:27
The neic-glass3 project namespace containing all the classes and functions that make up neic-glass3...
bool isFileOpen(std::ifstream &inFile)
Checks if provided file is open.
Definition: config.cpp:203
std::ifstream openFile(std::string filePath, std::string fileName)
Opens the configuration file.
Definition: config.cpp:123
std::shared_ptr< const json::Object > parseJSONFromString(std::string newConfig)
A function that parses a configuration from a JSON formatted string.
Definition: config.cpp:71
void clear()
Config clear function.
Definition: config.cpp:32
Config()
Config constructor.
Definition: config.cpp:12
std::shared_ptr< const json::Object > getJSON()
Get configuration as json object.
Definition: config.cpp:114