KrisLibrary  1.0.0
ParamList.h
1 #ifndef PARAM_LIST_H
2 #define PARAM_LIST_H
3 
4 #include "PrimitiveValue.h"
5 #include <vector>
6 #include <map>
7 #include <string>
8 
9 struct ParamList
10 {
11  ParamList();
12  ParamList(const PrimitiveValue& a1);
13  ParamList(const PrimitiveValue& a1,const PrimitiveValue& a2);
14  ParamList(const PrimitiveValue& a1,const PrimitiveValue& a2,const PrimitiveValue& a3);
15  ParamList(const PrimitiveValue& a1,const PrimitiveValue& a2,const PrimitiveValue& a3,const PrimitiveValue& a4);
16  ParamList(const std::vector<PrimitiveValue>& args);
17  ParamList(const std::map<string,PrimitiveValue>& args);
18  bool parse(const string& str);
19  string write() const;
20  inline size_t size() const { return args.size(); }
21  inline bool empty() const { return args.empty(); }
22  inline void clear() { args.clear(); names.clear(); }
23  inline bool contains(const std::string& name) const { return names.find(name) != names.end(); }
24  inline PrimitiveValue& operator [] (int index) { return args[index]; }
25  inline const PrimitiveValue& operator [] (int index) const { return args[index]; }
26  PrimitiveValue& operator [] (const std::string& name);
27  const PrimitiveValue& operator [] (const std::string& name) const;
28 
29  std::vector<PrimitiveValue> args;
30  std::map<std::string,int> names;
31 };
32 
33 #endif
A basic primitive value type, including integers, floats, and strings.
Definition: PrimitiveValue.h:11
Definition: ParamList.h:9