///
/// @code
/// Subnet4Ptr getSubnet4(const SubnetID& subnet_id,
- /// const BackendSelector& selector,
+ /// const BackendSelector& backend_selector,
/// const ServerSelector& server_selector) const {
/// Subnet4Ptr subnet;
/// getPropertyPtrConst<Subnet4Ptr, const SubnetID&>
- /// (&ConfigBackendDHCPv4::getSubnet4, selector, subnet, subnet_id);
+ /// (&ConfigBackendDHCPv4::getSubnet4, backend_selector,
+ /// server_selector, subnet, subnet_id);
/// return (subnet);
/// }
/// @endcode
/// @tparam InputType Type of the objects used as input to the backend call.
///
/// @param MethodPointer Pointer to the backend method to be called.
- /// @param selector Backend selector.
+ /// @param backend_selector Backend selector.
/// @param server_selector Server selector.
/// @param [out] property Reference to the shared pointer where retrieved
/// property should be assigned.
template<typename PropertyType, typename... InputType>
void getPropertyPtrConst(PropertyType (ConfigBackendType::*MethodPointer)
(const db::ServerSelector&, InputType...) const,
- const db::BackendSelector& selector,
+ const db::BackendSelector& backend_selector,
const db::ServerSelector& server_selector,
PropertyType& property,
InputType... input) const {
// If no particular backend is selected, call each backend and return
// the first non-null (non zero) value.
- if (selector.amUnspecified()) {
+ if (backend_selector.amUnspecified()) {
for (auto backend : backends_) {
property = ((*backend).*MethodPointer)(server_selector, input...);
if (property) {
} else {
// Backend selected, find the one that matches selection.
- auto backends = selectBackends(selector);
+ auto backends = selectBackends(backend_selector);
if (!backends.empty()) {
for (auto backend : backends) {
property = ((*backend).*MethodPointer)(server_selector, input...);
} else {
isc_throw(db::NoSuchDatabase, "no such database found for selector: "
- << selector.toText());
+ << backend_selector.toText());
}
}
}
/// @code
/// OptionalValue<std::string>
/// getGlobalParameter4(const std::string& parameter_name,
- /// const BackendSelector& selector,
+ /// const BackendSelector& backend_selector,
/// const ServerSelector& server_selector) const {
/// std::string parameter;
/// getOptionalPropertyConst<std::string, const std::string&>
- /// (&ConfigBackendDHCPv4::getGlobalParameter4, selector, server_selector,
- /// parameter, parameter_name);
+ /// (&ConfigBackendDHCPv4::getGlobalParameter4, backend_selector,
+ /// server_selector, parameter, parameter_name);
/// return (parameter);
/// }
/// @endcode
/// @tparam InputType Type of the objects used as input to the backend call.
///
/// @param MethodPointer Pointer to the backend method to be called.
- /// @param selector Backend selector.
+ /// @param backend_selector Backend selector.
/// @param server_selector Server selector.
/// @param [out] property Reference to the shared pointer where retrieved
/// property should be assigned.
void getOptionalPropertyConst(util::OptionalValue<PropertyType>
(ConfigBackendType::*MethodPointer)
(const db::ServerSelector&, InputType...) const,
- const db::BackendSelector& selector,
+ const db::BackendSelector& backend_selector,
const db::ServerSelector& server_selector,
util::OptionalValue<PropertyType>& property,
InputType... input) const {
// If no particular backend is selected, call each backend and return
// the first non-null (non zero) value.
- if (selector.amUnspecified()) {
+ if (backend_selector.amUnspecified()) {
for (auto backend : backends_) {
property = ((*backend).*MethodPointer)(server_selector, input...);
if (property.isSpecified()) {
} else {
// Backend selected, find the one that matches selection.
- auto backends = selectBackends(selector);
+ auto backends = selectBackends(backend_selector);
if (!backends.empty()) {
for (auto backend : backends) {
property = ((*backend).*MethodPointer)(server_selector, input...);
} else {
isc_throw(db::NoSuchDatabase, "no such database found for selector: "
- << selector.toText());
+ << backend_selector.toText());
}
}
}
/// @c getSubnets6 method:
///
/// @code
- /// Subnet6Collection getModifiedSubnets6(const BackendSelector& selector,
+ /// Subnet6Collection getModifiedSubnets6(const BackendSelector& backend_selector,
/// const ServerSelector& server_selector,
/// const ptime& modification_time) const {
/// Subnet6Collection subnets;
/// getMultiplePropertiesConst<Subnet6Collection, const ptime&>
- /// (&ConfigBackendDHCPv6::getSubnets6, selector, subnets,
- /// modification_time);
+ /// (&ConfigBackendDHCPv6::getSubnets6, backend_selector, server_selector,
+ /// subnets, modification_time);
/// return (subnets);
/// }
/// @endcode
/// @tparam InputType Type of the objects used as input to the backend call.
///
/// @param MethodPointer Pointer to the backend method to be called.
- /// @param selector Backend selector.
+ /// @param backend_selector Backend selector.
/// @param server_selector Server selector.
/// @param [out] properties Reference to the collection of retrieved properties.
/// @param input Values to be used as input to the backend call.
template<typename PropertyCollectionType, typename... InputType>
void getMultiplePropertiesConst(PropertyCollectionType (ConfigBackendType::*MethodPointer)
(const db::ServerSelector&, InputType...) const,
- const db::BackendSelector& selector,
+ const db::BackendSelector& backend_selector,
const db::ServerSelector& server_selector,
PropertyCollectionType& properties,
InputType... input) const {
- if (selector.amUnspecified()) {
+ if (backend_selector.amUnspecified()) {
for (auto backend : backends_) {
properties = ((*backend).*MethodPointer)(server_selector, input...);
if (!properties.empty()) {
}
} else {
- auto backends = selectBackends(selector);
+ auto backends = selectBackends(backend_selector);
if (!backends.empty()) {
for (auto backend : backends) {
properties = ((*backend).*MethodPointer)(server_selector, input...);
} else {
isc_throw(db::NoSuchDatabase, "no database found for selector: "
- << selector.toText());
+ << backend_selector.toText());
}
}
}
/// Subnet4Collection getAllSubnets4(const BackendSelector&, const ServerSelector&) const {
/// Subnet4Collection subnets;
/// getAllPropertiesConst<Subnet6Collection>
- /// (&ConfigBackendDHCPv4::getAllSubnets4, subnets, selector,
+ /// (&ConfigBackendDHCPv4::getAllSubnets4, subnets, backend_selector,
/// server_selector);
/// return (subnets);
/// }
/// properties are stored.
///
/// @param MethodPointer Pointer to the backend method to be called.
- /// @param selector Backend selector.
+ /// @param backend_selector Backend selector.
/// @param server_selector Server selector.
/// @param [out] properties Reference to the collection of retrieved properties.
///
template<typename PropertyCollectionType>
void getAllPropertiesConst(PropertyCollectionType (ConfigBackendType::*MethodPointer)
(const db::ServerSelector&) const,
- const db::BackendSelector& selector,
+ const db::BackendSelector& backend_selector,
const db::ServerSelector& server_selector,
PropertyCollectionType& properties) const {
- if (selector.amUnspecified()) {
+ if (backend_selector.amUnspecified()) {
for (auto backend : backends_) {
properties = ((*backend).*MethodPointer)(server_selector);
if (!properties.empty()) {
}
} else {
- auto backends = selectBackends(selector);
+ auto backends = selectBackends(backend_selector);
if (!backends.empty()) {
for (auto backend : backends) {
properties = ((*backend).*MethodPointer)(server_selector);
} else {
isc_throw(db::NoSuchDatabase, "no database found for selector: "
- << selector.toText());
+ << backend_selector.toText());
}
}
}
///
/// @code
/// void createUpdateSubnet6(const Subnet6Ptr& subnet,
- /// const BackendSelector& selector,
+ /// const BackendSelector& backend_selector,
/// const ServerSelector& server_selector) {
/// createUpdateDeleteProperty<const Subnet6Ptr&>
- /// (&ConfigBackendDHCPv6::createUpdateSubnet6, selector,
+ /// (&ConfigBackendDHCPv6::createUpdateSubnet6, backend_selector,
/// server_selector, subnet, selector);
/// }
/// @endcode
/// backend method, e.g. new property to be added, updated or deleted.
///
/// @param MethodPointer Pointer to the backend method to be called.
- /// @param selector Backend selector.
+ /// @param backend_selector Backend selector.
/// @param server_selector Server selector.
/// @param input Objects used as arguments to the backend method to be
/// called.
template<typename... InputType>
void createUpdateDeleteProperty(void (ConfigBackendType::*MethodPointer)
(const db::ServerSelector&, InputType...),
- const db::BackendSelector& selector,
+ const db::BackendSelector& backend_selector,
const db::ServerSelector& server_selector,
InputType... input) {
- auto backends = selectBackends(selector);
+ auto backends = selectBackends(backend_selector);
if (backends.empty()) {
isc_throw(db::NoSuchDatabase, "no database found for selector: "
- << selector.toText());
+ << backend_selector.toText());
} else if (backends.size() > 1) {
isc_throw(db::AmbiguousDatabase, "more than 1 database found for "
- "selector: " << selector.toText());
+ "selector: " << backend_selector.toText());
}
(*(*(backends.begin())).*MethodPointer)(server_selector, input...);
///
/// @param selector Selector for which matching backends should be selected.
std::list<ConfigBackendTypePtr>
- selectBackends(const db::BackendSelector& selector) const {
+ selectBackends(const db::BackendSelector& backend_selector) const {
std::list<ConfigBackendTypePtr> selected;
- // In case there is only one backend, it is allowed to not select the
- // database backend.
- if ((backends_.size() == 1) && selector.amUnspecified()) {
+ // In case there is only one backend and the caller hasn't specified
+ // any particular backend, simply return it.
+ if ((backends_.size() == 1) && backend_selector.amUnspecified()) {
selected.push_back(*backends_.begin());
return (selected);
}
// For other cases we return empty list.
- if (backends_.empty() || selector.amUnspecified()) {
+ if (backends_.empty() || backend_selector.amUnspecified()) {
return (selected);
}
for (auto backend : backends_) {
// If backend type is specified and it is not matching,
// do not select this backend.
- if ((selector.getBackendType() != db::BackendSelector::Type::UNSPEC) &&
- (selector.getBackendType() !=
+ if ((backend_selector.getBackendType() != db::BackendSelector::Type::UNSPEC) &&
+ (backend_selector.getBackendType() !=
db::BackendSelector::stringToBackendType(backend->getType()))) {
continue;
}
// If the host has been specified by the backend's host is not
// matching, do not select this backend.
- if ((!selector.getBackendHost().empty()) &&
- (selector.getBackendHost() != backend->getHost())) {
+ if ((!backend_selector.getBackendHost().empty()) &&
+ (backend_selector.getBackendHost() != backend->getHost())) {
continue;
}
// If the port has been specified by the backend's port is not
// matching, do not select this backend.
- if ((selector.getBackendPort() != 0) &&
- (selector.getBackendPort() != backend->getPort())) {
+ if ((backend_selector.getBackendPort() != 0) &&
+ (backend_selector.getBackendPort() != backend->getPort())) {
continue;
}
/// @brief Retrieves a value of the property.
///
/// @param property_name Name of the property which value should be returned.
- /// @param selector Backend selector. The default value of the selector
+ /// @param backend_selector Backend selector. The default value of the selector
/// is @c UNSPEC which means that the property will be searched in all backends
/// and the first value found will be returned.
/// @param server_selector Server selector. The default value is set to @c ALL,
/// which means that the property for all servers will be returned.
virtual int getProperty(const std::string& property_name,
- const BackendSelector& selector =
+ const BackendSelector& backend_selector =
BackendSelector::UNSPEC(),
const ServerSelector& server_selector =
ServerSelector::ALL()) const {
// The template arguments specify the returned value type and the
// argument of the getProperty method.
getPropertyPtrConst<int, const std::string&>
- (&TestConfigBackend::getProperty, selector, server_selector, property,
- property_name);
+ (&TestConfigBackend::getProperty, backend_selector, server_selector,
+ property, property_name);
return (property);
}
///
/// @param property_name Name of the property which value should be returned.
/// @param property_value Value of the property to be retrieved.
- /// @param selector Backend selector. The default value of the selector
+ /// @param backend_selector Backend selector. The default value of the selector
/// is @c UNSPEC which means that the property will be searched in all backends
/// and the first value found will be returned.
/// @param server_selector Server selector. The default value is set to @c ALL,
/// which means that the property for all servers will be returned.
virtual int getProperty(const std::string& property_name,
const int property_value,
- const BackendSelector& selector =
+ const BackendSelector& backend_selector =
BackendSelector::UNSPEC(),
const ServerSelector& server_selector =
ServerSelector::ALL()) const {
int property;
getPropertyPtrConst<int, const std::string&, int>
- (&TestConfigBackend::getProperty, selector, server_selector, property,
- property_name, property_value);
+ (&TestConfigBackend::getProperty, backend_selector, server_selector,
+ property, property_name, property_value);
return (property);
}
/// @brief Retrieves multiple properties.
///
/// @param property_name Name of the properties which should be retrieved.
- /// @param selector Backend selector. The default value of the selector
+ /// @param backend_selector Backend selector. The default value of the selector
/// is @c UNSPEC which means that the properties will be searched in all
/// backends and the first non-empty list will be returned.
/// @param server_selector Server selector. The default value is set to @c ALL,
/// which means that the properties for all servers will be returned.
virtual PropertiesList getProperties(const std::string& property_name,
- const BackendSelector& selector =
+ const BackendSelector& backend_selector =
BackendSelector::UNSPEC(),
const ServerSelector& server_selector =
ServerSelector::ALL()) const {
// The template arguments specify the type of the list of properties
// and the argument of the getProperties method.
getMultiplePropertiesConst<PropertiesList, const std::string&>
- (&TestConfigBackend::getProperties, selector, server_selector,
+ (&TestConfigBackend::getProperties, backend_selector, server_selector,
properties, property_name);
return (properties);
}
/// @brief Retrieves all properties.
///
- /// @param selector Backend selector. The default value of the selector
+ /// @param backend_selector Backend selector. The default value of the selector
/// is @c UNSPEC which means that the properties will be searched in all
/// backends and the first non-empty list will be returned.
/// @param server_selector Server selector. The default value is set to @c ALL,
/// which means that the properties for all servers will be returned.
- virtual PropertiesList getAllProperties(const BackendSelector& selector =
+ virtual PropertiesList getAllProperties(const BackendSelector& backend_selector =
BackendSelector::UNSPEC(),
const ServerSelector& server_selector =
ServerSelector::ALL()) const {
// This method is similar to getMultiplePropertiesConst but it lacks
// an argument and it simply returns all properties.
getAllPropertiesConst<PropertiesList>
- (&TestConfigBackend::getAllProperties, selector, server_selector,
+ (&TestConfigBackend::getAllProperties, backend_selector, server_selector,
properties);
return (properties);
}
/// @brief Creates new property in a selected backend.
///
/// @param new_property New property to be added to a backend.
- /// @param selector Backend selector. It has no default value.
+ /// @param backend_selector Backend selector. It has no default value.
/// @param server_selector The default value is @c ALL which means that
/// new property is going to be shared by all servers.
virtual void createProperty(const std::pair<std::string, int>& new_property,
- const BackendSelector& selector,
+ const BackendSelector& backend_selector,
const ServerSelector& server_selector =
ServerSelector::ALL()) {
createUpdateDeleteProperty<const std::pair<std::string, int>&>
- (&TestConfigBackend::createProperty, selector, server_selector,
+ (&TestConfigBackend::createProperty, backend_selector, server_selector,
new_property);
}
};