PlasCom2  1.0
XPACC Multi-physics simluation application
Configuration.H
Go to the documentation of this file.
1 #ifndef _CONFIGURATION_H_
7 #define _CONFIGURATION_H_
8 
9 #include <cstdlib>
10 #include "Parameters.H"
11 
12 namespace ix {
13  namespace util {
14 
16  {
17  // friend std::ostream &operator<<(std::ostream &Ostr,const ConfigParameters &params);
18  // friend std::istream &operator>>(std::istream &Istr,ConfigParameters &params);
19  private:
20  std::string _Name;
21  public:
22  ConfigParameters(): _Name("") {};
23  ConfigParameters(const std::string &name): _Name(name) {};
24  const std::string &Name() const { return(_Name); };
25  void Name(const std::string &name) { _Name.assign(name); };
26  };
27 
29  {
30  friend std::ostream &operator<<(std::ostream &Ostr,const util::ConfigurationObject &cob);
31  friend std::istream &operator>>(std::istream &Istr,util::ConfigurationObject &cob);
32  private:
33  std::vector<util::ConfigParameters> _parameters;
34  std::vector<std::string> _sections;
35  public:
36  std::vector<util::ConfigParameters> &GetParameters() { return(_parameters); };
37  util::ConfigParameters &Section(const std::string &section_name);
38  void AddSection(util::ConfigParameters &params) { _parameters.push_back(params); _sections.push_back("");};
39  unsigned int SectionIndex (const std::string &section_name) const;
40  std::string &NavigationSection(const std::string &section_name);
41  std::string NavigationSection(const std::string &section_name) const;
42  std::vector<std::string> &NavigationSections() { return (_sections); };
43  virtual std::string AdvanceToNextSection(std::istream &Inf);
44  virtual std::string ReadSection(std::istream &Inf);
45  virtual std::string ExtractSection(const std::string &section_name,std::istream &Inf);
46  };
47  std::ostream &operator<<(std::ostream &Ostr,const util::ConfigurationObject &cob);
48  std::istream &operator>>(std::istream &Istr,util::ConfigurationObject &cob);
49  };
50 };
51 
52 #endif
void Name(const std::string &name)
Definition: Configuration.H:25
void AddSection(util::ConfigParameters &params)
Definition: Configuration.H:38
std::vector< util::ConfigParameters > & GetParameters()
Definition: Configuration.H:36
friend std::ostream & operator<<(std::ostream &oSt, const util::Parameters &pv)
Definition: Parameters.C:132
Defines MPI-specific parallel global and program classes.
const std::string & Name() const
Definition: Configuration.H:24
ConfigParameters(const std::string &name)
Definition: Configuration.H:23
std::vector< util::ConfigParameters > _parameters
Definition: Configuration.H:33
std::vector< std::string > _sections
Definition: Configuration.H:34
std::vector< std::string > & NavigationSections()
Definition: Configuration.H:42
friend std::istream & operator>>(std::istream &iSt, util::Parameters &pv)
Definition: Parameters.C:138
Parameters object interface (for config files, etc)