7 #ifndef SIMPLE_PARSER_H 8 #define SIMPLE_PARSER_H 79 static void checkRequired(
const SimpleRequiredKeywords& required,
92 static void checkKeywords(
const SimpleKeywords& keywords,
110 const ParamsList& params);
124 const SimpleDefaults& default_values);
136 const SimpleDefaults& default_values);
160 const std::string& name);
172 const std::string& name);
188 const std::string& name,
189 int64_t min, int64_t max);
201 const std::string& name);
227 const std::string& name);
241 template <
typename int_type> int_type
243 const std::string& name) {
244 int64_t val_int = getInteger(scope, name);
245 if ((val_int < std::numeric_limits<int_type>::min()) ||
246 (val_int > std::numeric_limits<int_type>::max())) {
248 "out of range value (" << val_int
249 <<
") specified for parameter '" << name
250 <<
"' (" << getPosition(name, scope) <<
")");
252 return (static_cast<int_type>(val_int));
267 template <
typename target_type,
268 target_type convert(
const std::string&)> target_type
270 const std::string& name,
271 const std::string& type_name) {
272 std::string str = getString(scope, name);
274 return (convert(str));
275 }
catch (
const std::exception&) {
277 "invalid " << type_name <<
" (" << str
278 <<
") specified for parameter '" << name
279 <<
"' (" << getPosition(name, scope) <<
")");
293 const std::string& name) {
294 return (getIntType<uint32_t>(scope, name));
306 const std::string& name) {
307 return (getIntType<uint16_t>(scope, name));
319 return (getIntType<uint8_t>(scope, name));
333 const std::string& name);
std::map< std::string, isc::data::Element::types > SimpleKeywords
This specifies all accepted keywords with their types.
std::vector< SimpleDefault > SimpleDefaults
This specifies all default values in a given scope (e.g. a subnet).
boost::shared_ptr< Element > ElementPtr
const isc::data::Element::types type_
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
To be removed. Please use ConfigError instead.
SimpleDefault(const char *name, isc::data::Element::types type, const char *value)
uint8_t getUint8(ConstElementPtr scope, const std::string &name)
Get an uint8_t value.
boost::shared_ptr< const Element > ConstElementPtr
std::vector< std::string > SimpleRequiredKeywords
This specifies all required keywords.
This array defines a single entry of default values.
uint32_t getUint32(isc::data::ConstElementPtr scope, const std::string &name)
Returns a value converted to uint32_t.
Represents the position of the data element within a configuration string.
Defines the logger used by the top-level component of kea-lfc.
std::vector< std::string > ParamsList
This defines a list of all parameters that are derived (or inherited) between contexts.
target_type getAndConvert(isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name)
Returns a converted value from a scope.
int_type getIntType(isc::data::ConstElementPtr scope, const std::string &name)
Returns an integer value with range checking from a scope.
The IOAddress class represents an IP addresses (version agnostic)
uint16_t getUint16(isc::data::ConstElementPtr scope, const std::string &name)
Returns a value converted to uint16_t.