Kea 3.2.0-git
translator_subnet.h
Go to the documentation of this file.
1// Copyright (C) 2018-2026 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#ifndef ISC_TRANSLATOR_SUBNET_H
8#define ISC_TRANSLATOR_SUBNET_H 1
9
10#include <yang/translator.h>
14
15namespace isc {
16namespace yang {
17
273
277class TranslatorSubnet : virtual public TranslatorPools,
278 virtual public TranslatorPdPools, virtual public TranslatorHosts {
279public:
284 TranslatorSubnet(sysrepo::Session session, const std::string& model);
285
287 virtual ~TranslatorSubnet() = default;
288
297 isc::data::ElementPtr getSubnet(libyang::DataNode const& data_node);
298
307 isc::data::ElementPtr getSubnetFromAbsoluteXpath(std::string const& xpath);
308
314 void setSubnet(const std::string& xpath, isc::data::ConstElementPtr elem);
315
316protected:
322 isc::data::ElementPtr getSubnetIetf6(libyang::DataNode const& data_node);
323
328 void setSubnetIetf6(const std::string& xpath,
330
336 isc::data::ElementPtr getSubnetKea(libyang::DataNode const& data_node);
337
342 void setSubnetKea(const std::string& xpath,
344}; // TranslatorSubnets
345
350class TranslatorSubnets : virtual public TranslatorSubnet {
351public:
356 TranslatorSubnets(sysrepo::Session session, const std::string& model);
357
359 virtual ~TranslatorSubnets() = default;
360
368 isc::data::ElementPtr getSubnets(libyang::DataNode const& data_node);
369
377 isc::data::ElementPtr getSubnetsFromAbsoluteXpath(std::string const& xpath);
378
384 void setSubnets(const std::string& xpath, isc::data::ConstElementPtr elem);
385
386protected:
393 isc::data::ElementPtr getSubnetsCommon(libyang::DataNode const& data_node,
394 const std::string& subsel);
395
400 void setSubnetsIetf6(const std::string& xpath,
402
408 void setSubnetsKea(const std::string& xpath,
410 const std::string& subsel);
411}; // TranslatorSubnets
412
413} // namespace yang
414} // namespace isc
415
416#endif // ISC_TRANSLATOR_SUBNET_H
TranslatorHosts(sysrepo::Session session, const std::string &model)
Constructor.
TranslatorPdPools(sysrepo::Session session, const std::string &model)
Constructor.
TranslatorPools(sysrepo::Session session, const std::string &model)
Constructor.
isc::data::ElementPtr getSubnet(libyang::DataNode const &data_node)
Get and translate a subnet from YANG to JSON.
void setSubnetIetf6(const std::string &xpath, isc::data::ConstElementPtr elem)
setSubnet for ietf-dhcpv6-server.
virtual ~TranslatorSubnet()=default
Destructor.
void setSubnet(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set subnet from JSON to YANG.
isc::data::ElementPtr getSubnetIetf6(libyang::DataNode const &data_node)
getSubnet for ietf-dhcpv6-server.
isc::data::ElementPtr getSubnetFromAbsoluteXpath(std::string const &xpath)
Get and translate a subnet from YANG to JSON.
TranslatorSubnet(sysrepo::Session session, const std::string &model)
Constructor.
isc::data::ElementPtr getSubnetKea(libyang::DataNode const &data_node)
getSubnet for kea-dhcp[46]-server.
void setSubnetKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setSubnet for kea-dhcp[46]-server.
isc::data::ElementPtr getSubnetsCommon(libyang::DataNode const &data_node, const std::string &subsel)
getSubnets common part.
void setSubnets(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set subnets from JSON to YANG.
void setSubnetsKea(const std::string &xpath, isc::data::ConstElementPtr elem, const std::string &subsel)
setSubnets for kea-dhcp[46]-server.
isc::data::ElementPtr getSubnets(libyang::DataNode const &data_node)
Get and translate subnets from YANG to JSON.
isc::data::ElementPtr getSubnetsFromAbsoluteXpath(std::string const &xpath)
Get and translate subnets from YANG to JSON.
virtual ~TranslatorSubnets()=default
Destructor.
void setSubnetsIetf6(const std::string &xpath, isc::data::ConstElementPtr elem)
setSubnets for ietf-dhcpv6-server.
TranslatorSubnets(sysrepo::Session session, const std::string &model)
Constructor.
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:30
boost::shared_ptr< Element > ElementPtr
Definition data.h:29
Defines the logger used by the top-level component of kea-lfc.