ndm  0.1.2
Config.hh
1 #pragma once
2 
3 #include <yaml.h>
4 
5 namespace NDM {
13 
14 class Space;
15 class Config {
16 public:
17  Config();
18  virtual ~Config();
19 
20  virtual bool load(std::string file);
21  virtual void print() const;
22 
24  virtual std::string base() const { return mConfig["base"].as<std::string>(); }
26  virtual std::string cmd() const { return mConfig["cmd"].as<std::string>(); }
28  virtual Space * space() const { return mSpace; }
30  virtual std::vector<int> levels() const { return std::move(mLevels); }
32  virtual std::vector<std::string> envs() const { return std::move(mEnvs); }
33 
34 protected:
35  YAML::Node mConfig;
36  Space * mSpace{nullptr};
37  std::vector<int> mLevels{};
38  std::vector<std::string> mEnvs{};
39 };
40 } // namespace NDM
std::vector< std::string > mEnvs
List of env variables.
Definition: Config.hh:38
Space * mSpace
Space object.
Definition: Config.hh:36
virtual ~Config()
Definition: Config.cc:11
virtual std::vector< std::string > envs() const
Returns list of levels.
Definition: Config.hh:32
virtual std::string base() const
Returns base.
Definition: Config.hh:24
virtual std::vector< int > levels() const
Returns list of levels.
Definition: Config.hh:30
Config()
Definition: Config.cc:5
YAML::Node mConfig
YAML Configuration.
Definition: Config.hh:35
Base Config class.
Definition: Config.hh:15
Space object in n-dimensional space.
Definition: Space.hh:17
virtual bool load(std::string file)
Definition: Config.cc:18
virtual std::string cmd() const
Returns cmd.
Definition: Config.hh:26
std::vector< int > mLevels
Levels for each axis.
Definition: Config.hh:37
virtual void print() const
Definition: Config.cc:74
virtual Space * space() const
Returns space object.
Definition: Config.hh:28