ParamList.hpp
1 #ifndef OPALS_PARAM_LIST_HPP_INCLUDED
2 #define OPALS_PARAM_LIST_HPP_INCLUDED
3 
4 #include <opals/fwd.hpp>
5 #include <opals/List.hpp>
6 #include <opals/String.hpp>
7 
8 namespace opals {
9 
10  /**
11  \struct Parameter
12 
13  \brief Parameter stores a single parameter for file I/O in parameter files.
14 
15  \author wk
16  \date 27.02.2011
17  */
18  struct OPALS_API Parameter
19  {
20  class Impl;
21  Impl *pimpl_;
22  public:
23  Parameter();
24  Parameter( const Parameter &ref );
25  ~Parameter();
26  Parameter &operator=( const Parameter &ref );
27 
28  bool operator==( const Parameter &ref ) const;
29  bool operator<( const Parameter &ref ) const;
30 
31  const String &path() const;
32  void path( const String& );
33 
34  const String &type() const;
35  void type( const String& );
36 
37  const String &source() const;
38  void source( const String& );
39 
40  const List<String> &values() const;
41  void values( const List<String>& );
42 
43  };
44 
45  /// \class ParamList
46  /// \brief Contains several parameters in their string representation.
47  class OPALS_API ParamList : public List< Parameter >
48  {};
49 }
50 
51 #endif