-// Copyright (C) 2019-2020 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
return (parameters);
}
+ClientClassDefPtr
+ConfigBackendPoolDHCPv6::getClientClass6(const BackendSelector& backend_selector,
+ const ServerSelector& server_selector,
+ const std::string& name) const {
+ ClientClassDefPtr client_class;
+ getPropertyPtrConst<ClientClassDefPtr, const std::string&>
+ (&ConfigBackendDHCPv6::getClientClass6, backend_selector, server_selector,
+ client_class, name);
+ return (client_class);
+}
+
+ClientClassDictionary
+ConfigBackendPoolDHCPv6::getAllClientClasses6(const BackendSelector& backend_selector,
+ const ServerSelector& server_selector) const {
+ ClientClassDictionary client_classes;
+ getAllPropertiesConst<ClientClassDictionary>
+ (&ConfigBackendDHCPv6::getAllClientClasses6, backend_selector, server_selector,
+ client_classes);
+ return (client_classes);
+
+}
+
+ClientClassDictionary
+ConfigBackendPoolDHCPv6::getModifiedClientClasses6(const BackendSelector& backend_selector,
+ const ServerSelector& server_selector,
+ const boost::posix_time::ptime& modification_time) const {
+ ClientClassDictionary client_classes;
+ getMultiplePropertiesConst<ClientClassDictionary, const boost::posix_time::ptime&>
+ (&ConfigBackendDHCPv6::getModifiedClientClasses6, backend_selector, server_selector,
+ client_classes, modification_time);
+ return (client_classes);
+}
+
AuditEntryCollection
ConfigBackendPoolDHCPv6::
getRecentAuditEntries(const db::BackendSelector& backend_selector,
server_selector, value);
}
+void
+ConfigBackendPoolDHCPv6::createUpdateClientClass6(const BackendSelector& backend_selector,
+ const ServerSelector& server_selector,
+ const ClientClassDefPtr& client_class,
+ const std::string& follow_class_name) {
+ createUpdateDeleteProperty<void, const ClientClassDefPtr&, const std::string&>
+ (&ConfigBackendDHCPv6::createUpdateClientClass6, backend_selector,
+ server_selector, client_class, follow_class_name);
+}
+
void
ConfigBackendPoolDHCPv6::createUpdateServer6(const BackendSelector& backend_selector,
const ServerPtr& server) {
server_selector));
}
+uint64_t
+ConfigBackendPoolDHCPv6::deleteClientClass6(const BackendSelector& backend_selector,
+ const ServerSelector& server_selector,
+ const std::string& name) {
+ return (createUpdateDeleteProperty<uint64_t, const std::string&>
+ (&ConfigBackendDHCPv6::deleteClientClass6, backend_selector,
+ server_selector, name));
+}
+
+uint64_t
+ConfigBackendPoolDHCPv6::deleteAllClientClasses6(const BackendSelector& backend_selector,
+ const ServerSelector& server_selector) {
+ return (createUpdateDeleteProperty<uint64_t>
+ (&ConfigBackendDHCPv6::deleteAllClientClasses6, backend_selector, server_selector));
+}
+
uint64_t
ConfigBackendPoolDHCPv6::deleteServer6(const BackendSelector& backend_selector,
const ServerTag& server_tag) {
-// Copyright (C) 2019-2020 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2019-2021 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
#include <dhcp/option.h>
#include <dhcp/option_definition.h>
#include <dhcpsrv/cfg_option.h>
+#include <dhcpsrv/client_class_def.h>
#include <dhcpsrv/config_backend_dhcp6.h>
#include <dhcpsrv/shared_network.h>
#include <dhcpsrv/subnet.h>
const db::ServerSelector& server_selector,
const boost::posix_time::ptime& modification_time) const;
+ /// @brief Retrieves a client class by name.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param server_selector Server selector.
+ /// @param name Client class name.
+ /// @return Pointer to the retrieved client class.
+ virtual ClientClassDefPtr
+ getClientClass6(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector,
+ const std::string& name) const;
+
+ /// @brief Retrieves all client classes.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param selector Server selector.
+ /// @return Collection of client classes.
+ virtual ClientClassDictionary
+ getAllClientClasses6(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector) const;
+
+ /// @brief Retrieves client classes modified after specified time.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param selector Server selector.
+ /// @param modification_time Modification time.
+ /// @return Collection of client classes.
+ virtual ClientClassDictionary
+ getModifiedClientClasses6(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector,
+ const boost::posix_time::ptime& modification_time) const;
+
/// @brief Retrieves the most recent audit entries.
///
/// @param backend_selector Backend selector.
const db::ServerSelector& server_selector,
const data::StampedValuePtr& value);
+ /// @brief Creates or updates DHCPv6 client class.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param server_selector Server selector.
+ /// @param client_class Client class to be added or updated.
+ /// @param follow_client_class name of the class after which the
+ /// new or updated class should be positioned. An empty value
+ /// causes the class to be appended at the end of the class
+ /// hierarchy.
+ virtual void
+ createUpdateClientClass6(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector,
+ const ClientClassDefPtr& client_class,
+ const std::string& follow_class_name);
+
/// @brief Creates or updates a server.
///
/// @param backend_selector Backend selector.
deleteAllGlobalParameters6(const db::BackendSelector& backend_selector,
const db::ServerSelector& server_selector);
+ /// @brief Deletes DHCPv6 client class.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param server_selector Server selector.
+ /// @param name Name of the class to be deleted.
+ /// @return Number of deleted client classes.
+ virtual uint64_t
+ deleteClientClass6(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector,
+ const std::string& name);
+
+ /// @brief Deletes all client classes.
+ ///
+ /// @param backend_selector Backend selector.
+ /// @param server_selector Server selector.
+ /// @return Number of deleted client classes.
+ virtual uint64_t
+ deleteAllClientClasses6(const db::BackendSelector& backend_selector,
+ const db::ServerSelector& server_selector);
+
/// @brief Deletes a server from the backend.
///
/// @param backend_selector Backend selector.