Kea 3.1.0
translator_pool.h
Go to the documentation of this file.
1// Copyright (C) 2018-2025 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_POOL_H
8#define ISC_TRANSLATOR_POOL_H 1
9
11
12namespace isc {
13namespace yang {
14
130public:
135 TranslatorPool(sysrepo::Session session, const std::string& model);
136
138 virtual ~TranslatorPool() = default;
139
147 isc::data::ElementPtr getPool(libyang::DataNode const& data_node);
148
156 isc::data::ElementPtr getPoolFromAbsoluteXpath(std::string const& xpath);
157
162 void setPool(const std::string& xpath, isc::data::ConstElementPtr elem);
163
170 static void getAddresses(const std::string& prefix,
171 std::string& start_address,
172 std::string& end_address);
173
174protected:
182 isc::data::ElementPtr getPoolIetf6(libyang::DataNode const& data_node);
183
190 void setPoolIetf6(const std::string& xpath,
192
200 isc::data::ElementPtr getPoolKea(libyang::DataNode const& data_node);
201
207 void setPoolKea(const std::string& xpath, isc::data::ConstElementPtr elem);
208}; // TranslatorPool
209
213class TranslatorPools : virtual public TranslatorPool {
214public:
219 TranslatorPools(sysrepo::Session session, const std::string& model);
220
222 virtual ~TranslatorPools() = default;
223
231 isc::data::ElementPtr getPools(libyang::DataNode const& data_node);
232
240 isc::data::ElementPtr getPoolsFromAbsoluteXpath(std::string const& xpath);
241
246 void setPools(const std::string& xpath, isc::data::ConstElementPtr elem);
247
248protected:
254 isc::data::ElementPtr getPoolsIetf(libyang::DataNode const& data_node);
255
261 isc::data::ElementPtr getPoolsKea(libyang::DataNode const& data_node);
262
267 void setPoolsById(const std::string& xpath,
269
275 void setPoolsByAddresses(const std::string& xpath,
277}; // TranslatorPools
278
279} // namespace yang
280} // namespace isc
281
282#endif // ISC_TRANSLATOR_POOL_H
TranslatorOptionDataList(sysrepo::Session session, const std::string &model)
Constructor.
void setPool(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set (address) pool from JSON to YANG.
void setPoolKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setPool for kea-dhcp[46]-server.
isc::data::ElementPtr getPoolIetf6(libyang::DataNode const &data_node)
getPool for ietf-dhcpv6-server.
isc::data::ElementPtr getPool(libyang::DataNode const &data_node)
Translate a pool from YANG to JSON.
isc::data::ElementPtr getPoolKea(libyang::DataNode const &data_node)
getPool for kea-dhcp[46]-server.
virtual ~TranslatorPool()=default
Destructor.
TranslatorPool(sysrepo::Session session, const std::string &model)
Constructor.
isc::data::ElementPtr getPoolFromAbsoluteXpath(std::string const &xpath)
Translate a pool from YANG to JSON.
static void getAddresses(const std::string &prefix, std::string &start_address, std::string &end_address)
Get start and end addresses from prefix.
void setPoolIetf6(const std::string &xpath, isc::data::ConstElementPtr elem)
setPool for ietf-dhcpv6-server.
void setPoolsByAddresses(const std::string &xpath, isc::data::ConstElementPtr elem)
setPools using address pair.
void setPoolsById(const std::string &xpath, isc::data::ConstElementPtr elem)
setPools using pool-id.
isc::data::ElementPtr getPoolsKea(libyang::DataNode const &data_node)
getPools for kea-dhcp[46]-server.
isc::data::ElementPtr getPoolsFromAbsoluteXpath(std::string const &xpath)
Translate pools from YANG to JSON.
TranslatorPools(sysrepo::Session session, const std::string &model)
Constructor.
virtual ~TranslatorPools()=default
Destructor.
void setPools(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set (address) pools from JSON to YANG.
isc::data::ElementPtr getPoolsIetf(libyang::DataNode const &data_node)
getPools for ietf-dhcpv6-server.
isc::data::ElementPtr getPools(libyang::DataNode const &data_node)
Translate pools from YANG to JSON.
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:29
boost::shared_ptr< Element > ElementPtr
Definition data.h:28
Defines the logger used by the top-level component of kea-lfc.