Commit 9c682953 authored by Francis Dupont's avatar Francis Dupont
Browse files

[5123] Removed old templates

parent a911efe6
......@@ -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() << ")");
}
}
};
};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment