|
@@ -199,60 +199,6 @@ protected:
|
|
|
<< "' (" << getPosition(name, scope) << ")");
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /// @todo remove this when they'll be no longer used.
|
|
|
-
|
|
|
- /// @brief Returns an integer value with range checking
|
|
|
- ///
|
|
|
- /// This template should be instantied in parsers when useful
|
|
|
- ///
|
|
|
- /// @tparam int_type the integer type e.g. uint32_t
|
|
|
- /// @tparam out_of_range always @c isc::dhcp::DhcpConfigError
|
|
|
- /// @param name name of the parameter for error report
|
|
|
- /// @param value value of the parameter
|
|
|
- /// @return a value of int_type
|
|
|
- /// @throw isc::data::TypeError when the value is not an integer
|
|
|
- /// @throw out_of_range when the value does not fit in int_type
|
|
|
- template <typename int_type, class out_of_range> int_type
|
|
|
- extractInt(const std::string& name, ConstElementPtr value) const {
|
|
|
- int64_t val_int = value->intValue();
|
|
|
- if ((val_int < std::numeric_limits<int_type>::min()) ||
|
|
|
- (val_int > std::numeric_limits<int_type>::max())) {
|
|
|
- isc_throw(out_of_range, "out of range value (" << val_int
|
|
|
- << ") specified for parameter '" << name
|
|
|
- << "' (" << value->getPosition() << ")");
|
|
|
- }
|
|
|
- return (static_cast<int_type>(val_int));
|
|
|
- }
|
|
|
-
|
|
|
- /// @brief Returns a converted value
|
|
|
- ///
|
|
|
- /// This template should be instantied in parsers when useful
|
|
|
- ///
|
|
|
- /// @tparam target_type the type of the result
|
|
|
- /// @tparam convert the conversion function std::string -> target_type
|
|
|
- /// @tparam exception_type always @c isc::dhcp::DhcpConfigError
|
|
|
- /// @param name name of the parameter for error report
|
|
|
- /// @param type_name name of target_type for error report
|
|
|
- /// @param value value of the parameter
|
|
|
- /// @return a converted value of target_type
|
|
|
- /// @throw isc::data::TypeError when the value is not an integer
|
|
|
- /// @throw exception_type when the value cannot be converted
|
|
|
- template <typename target_type,
|
|
|
- target_type convert(const std::string&),
|
|
|
- class exception_type> target_type
|
|
|
- extractConvert(const std::string& name,
|
|
|
- const std::string& type_name,
|
|
|
- ConstElementPtr value) const {
|
|
|
- std::string str = value->stringValue();
|
|
|
- try {
|
|
|
- return (convert(str));
|
|
|
- } catch (const std::exception&) {
|
|
|
- isc_throw(exception_type, "invalid " << type_name << " (" << str
|
|
|
- << ") specified for parameter '" << name
|
|
|
- << "' (" << value->getPosition() << ")");
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
};
|