Kea  1.5.0
translator_subnet.h
Go to the documentation of this file.
1 // Copyright (C) 2018 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>
11 #include <yang/translator_pool.h>
13 #include <yang/translator_host.h>
14 #include <list>
15 
16 namespace isc {
17 namespace yang {
18 
231 
235 class TranslatorSubnet : virtual public TranslatorPools,
236  virtual public TranslatorPdPools, virtual public TranslatorHosts {
237 public:
238 
243 #ifndef HAVE_PRE_0_7_6_SYSREPO
244  TranslatorSubnet(sysrepo::S_Session session, const std::string& model);
245 #else
246  TranslatorSubnet(S_Session session, const std::string& model);
247 #endif
248 
250  virtual ~TranslatorSubnet();
251 
258  isc::data::ElementPtr getSubnet(const std::string& xpath);
259 
265  void setSubnet(const std::string& xpath, isc::data::ConstElementPtr elem);
266 
267 protected:
272  isc::data::ElementPtr getSubnetIetf6(const std::string& xpath);
273 
278  void setSubnetIetf6(const std::string& xpath,
280 
285  isc::data::ElementPtr getSubnetKea(const std::string& xpath);
286 
291  void setSubnetKea(const std::string& xpath,
293 };
294 
299 class TranslatorSubnets : virtual public TranslatorSubnet {
300 public:
301 
306 #ifndef HAVE_PRE_0_7_6_SYSREPO
307  TranslatorSubnets(sysrepo::S_Session session, const std::string& model);
308 #else
309  TranslatorSubnets(S_Session session, const std::string& model);
310 #endif
311 
313  virtual ~TranslatorSubnets();
314 
319  isc::data::ElementPtr getSubnets(const std::string& xpath);
320 
326  void setSubnets(const std::string& xpath, isc::data::ConstElementPtr elem);
327 
328 protected:
333  isc::data::ElementPtr getSubnetsCommon(const std::string& xpath,
334  const std::string& subsel);
335 
340  void setSubnetsIetf6(const std::string& xpath,
342 
348  void setSubnetsKea(const std::string& xpath,
350  const std::string& subsel);
351 };
352 
353 }; // end of namespace isc::yang
354 }; // end of namespace isc
355 
356 #endif // ISC_TRANSLATOR_SUBNET_H
isc::yang::TranslatorSubnet::TranslatorSubnet
TranslatorSubnet(sysrepo::S_Session session, const std::string &model)
Constructor.
Definition: translator_subnet.cc:23
isc::yang::TranslatorSubnets::setSubnetsIetf6
void setSubnetsIetf6(const std::string &xpath, isc::data::ConstElementPtr elem)
setSubnets for ietf-dhcpv6-server.
Definition: translator_subnet.cc:467
isc::yang::TranslatorSubnets
A translator class for converting a subnet list between YANG and JSON.
Definition: translator_subnet.h:299
isc::yang::TranslatorSubnet::~TranslatorSubnet
virtual ~TranslatorSubnet()
Destructor.
Definition: translator_subnet.cc:35
isc::yang::TranslatorSubnet::setSubnetIetf6
void setSubnetIetf6(const std::string &xpath, isc::data::ConstElementPtr elem)
setSubnet for ietf-dhcpv6-server.
Definition: translator_subnet.cc:238
isc::yang::TranslatorSubnet
Subnet (aka network range) translation between YANG and JSON.
Definition: translator_subnet.h:236
translator_pool.h
translator_pd_pool.h
translator_host.h
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::yang::TranslatorPools
A translator class for converting pools between YANG and JSON.
Definition: translator_pool.h:198
isc::yang::TranslatorHosts
A translator class for converting host reservations list between YANG and JSON.
Definition: translator_host.h:163
isc::yang::TranslatorSubnet::setSubnet
void setSubnet(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set subnet from JSON to YANG.
Definition: translator_subnet.cc:219
isc::yang::TranslatorSubnets::setSubnets
void setSubnets(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set subnets from JSON to YANG.
Definition: translator_subnet.cc:447
isc::yang::TranslatorSubnet::getSubnet
isc::data::ElementPtr getSubnet(const std::string &xpath)
Get and translate a subnet from YANG to JSON.
Definition: translator_subnet.cc:39
isc::yang::TranslatorSubnets::getSubnetsCommon
isc::data::ElementPtr getSubnetsCommon(const std::string &xpath, const std::string &subsel)
getSubnets common part.
Definition: translator_subnet.cc:428
isc::yang::TranslatorSubnets::TranslatorSubnets
TranslatorSubnets(sysrepo::S_Session session, const std::string &model)
Constructor.
Definition: translator_subnet.cc:392
isc::yang::TranslatorPdPools
A translator class for converting a pd-pool list between YANG and JSON.
Definition: translator_pd_pool.h:183
isc::yang::TranslatorSubnets::setSubnetsKea
void setSubnetsKea(const std::string &xpath, isc::data::ConstElementPtr elem, const std::string &subsel)
setSubnets for kea-dhcp[46]-server.
Definition: translator_subnet.cc:482
isc::yang::TranslatorSubnet::getSubnetKea
isc::data::ElementPtr getSubnetKea(const std::string &xpath)
getSubnet for kea-dhcp[46]-server.
Definition: translator_subnet.cc:95
isc::yang::TranslatorSubnets::~TranslatorSubnets
virtual ~TranslatorSubnets()
Destructor.
Definition: translator_subnet.cc:405
isc::yang::TranslatorSubnets::getSubnets
isc::data::ElementPtr getSubnets(const std::string &xpath)
Get and translate subnets from YANG to JSON.
Definition: translator_subnet.cc:409
isc::data::ElementPtr
boost::shared_ptr< Element > ElementPtr
Definition: data.h:20
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
isc::yang::TranslatorSubnet::getSubnetIetf6
isc::data::ElementPtr getSubnetIetf6(const std::string &xpath)
getSubnet for ietf-dhcpv6-server.
Definition: translator_subnet.cc:57
translator.h
isc::yang::TranslatorSubnet::setSubnetKea
void setSubnetKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setSubnet for kea-dhcp[46]-server.
Definition: translator_subnet.cc:266