IParameterSet.hpp
1 #ifndef DM_IPARAMATER_SET_HPP_INCLUDED
2 #define DM_IPARAMATER_SET_HPP_INCLUDED
3 
4 #ifdef _MSC_VER
5  #pragma once
6 #endif
7 
8 #include "DM/config.hpp"
9 #include "DM/Handle.hpp"
10 #include "DM/ObjectBase.hpp"
11 #include "DM/AutoLink.hpp" //enable autolink
12 
13 DM_NAMESPACE_BEGIN
14 
15 /// \brief Object can store a set of named parameter of different type
16 class DM_API IParameterSet : public ObjectBase
17 {
18 public:
19  static IParameterSet* New();
20 
21 protected:
22  virtual ~IParameterSet() {}
23 
24 public:
25  virtual void set(const char *variable, const char *value) = 0;
26  virtual void set(const char *variable, int value) = 0;
27  virtual void set(const char *variable, double value) = 0;
28  virtual void set(const char *variable, bool value) = 0;
29 
30  virtual bool isSet(const char *variable) const = 0;
31 
32  virtual bool get(const char *variable, const char *&value) const = 0;
33  virtual bool get(const char *variable, int &value) const = 0;
34  virtual bool get(const char *variable, double &value) const = 0;
35  virtual bool get(const char *variable, bool &value) const = 0;
36 };
37 
39 
40 DM_NAMESPACE_END
41 
42 #endif //DM_IPARAMATER_SET_HPP_INCLUDED