38 bool type_is(
const char*
name )
const;
39 const char* type()
const;
40 const char* rest()
const;
41 virtual size_t estimateSize()
const;
61 bool has_prop(
const char* propname )
const;
63 std::string remove_string(
const char* propname );
64 std::string remove_string(
const char* propname,
const char* dflt );
66 unsigned short remove_ushort(
const char* propname );
67 unsigned short remove_ushort(
const char* propname,
unsigned short dflt );
69 int remove_int(
const char* propname );
70 int remove_int(
const char* propname,
int dflt );
72 unsigned remove_unsigned(
const char* propname );
73 unsigned remove_unsigned(
const char* propname,
int dflt );
75 unsigned int remove_ulong(
const char* propname );
76 unsigned int remove_ulong(
const char* propname,
unsigned int dflt );
78 bool remove_bool(
const char* propname );
79 bool remove_bool(
const char* propname,
bool dflt );
81 float remove_float(
const char* propname,
float dflt );
82 double remove_double(
const char* propname,
double dflt );
84 void clear_prop(
const char* propname );
86 bool remove_first_prop( std::string* propname, std::string* value );
87 bool remove_prop(
const char* propname, std::string* value );
88 bool remove_prop(
const char* propname,
unsigned int* plong );
89 bool remove_prop(
const char* propname,
unsigned short* pushort );
91 bool read_prop(
const char* propname, std::string* value )
const;
94 void get_prop(
const char* propname,
unsigned int* plong )
const;
96 std::string read_string(
const char* propname )
const;
97 std::string read_string(
const char* propname,
const char* dflt )
const;
100 void add_prop( std::string propname, std::string propval );
101 void add_prop( std::string propname,
unsigned int lval );
102 void add_prop( std::string propname,
unsigned short sval );
103 void add_prop( std::string propname,
short sval );
105 POL_NORETURN void throw_error(
const std::string& errmsg )
const;
106 void warn(
const std::string& errmsg )
const;
107 void warn_with_line(
const std::string& errmsg )
const;
109 void set_rest(
const char* newrest );
110 void set_type(
const char* newtype );
115 POL_NORETURN void prop_not_found(
const char* propname )
const;
116 typedef std::multimap<std::string, std::string, ci_cmp_pred>
Props;
127 bool type_is(
const char*
name )
const;
128 const char* type()
const;
129 const char* rest()
const;
131 bool has_prop(
const char* propname )
const;
133 std::string remove_string(
const char* propname );
134 std::string remove_string(
const char* propname,
const char* dflt );
136 unsigned short remove_ushort(
const char* propname );
137 unsigned short remove_ushort(
const char* propname,
unsigned short dflt );
139 int remove_int(
const char* propname );
140 int remove_int(
const char* propname,
int dflt );
142 unsigned int remove_ulong(
const char* propname );
143 unsigned int remove_ulong(
const char* propname,
unsigned int dflt );
145 bool remove_bool(
const char* propname );
146 bool remove_bool(
const char* propname,
bool dflt );
148 float remove_float(
const char* propname,
float dflt );
149 double remove_double(
const char* propname,
double dflt );
151 void clear_prop(
const char* propname );
153 bool remove_first_prop( std::string* propname, std::string* value );
154 bool remove_prop(
const char* propname, std::string* value );
155 bool remove_prop(
const char* propname,
unsigned int* plong );
156 bool remove_prop(
const char* propname,
unsigned short* pushort );
158 bool read_prop(
const char* propname, std::string* value )
const;
159 std::string read_string(
const char* propname )
const;
160 std::string read_string(
const char* propname,
const char* dflt )
const;
163 void add_prop( std::string propname, std::string propval );
164 void add_prop( std::string propname,
unsigned int lval );
165 void add_prop( std::string propname,
unsigned short sval );
167 POL_NORETURN void throw_error(
const std::string& errmsg )
const;
168 void warn(
const std::string& errmsg )
const;
170 void set_rest(
const char* newrest );
174 POL_NORETURN void prop_not_found(
const char* propname )
const;
178 typedef std::vector<ConfigProperty*>
Props;
friend class VectorConfigElem
std::vector< ConfigProperty * > Props
~ConfigProperty()=default
virtual ~ConfigElemBase()
ConfigProperty(std::string name, std::string value)
std::multimap< std::string, std::string, ci_cmp_pred > Props
const ConfigSource * _source