Kea  1.5.0
translator_pool.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_POOL_H
8 #define ISC_TRANSLATOR_POOL_H 1
9 
11 #include <list>
12 
13 namespace isc {
14 namespace yang {
15 
124 class TranslatorPool : virtual public TranslatorOptionDataList {
125 public:
126 
131 #ifndef HAVE_PRE_0_7_6_SYSREPO
132  TranslatorPool(sysrepo::S_Session session, const std::string& model);
133 #else
134  TranslatorPool(S_Session session, const std::string& model);
135 #endif
136 
138  virtual ~TranslatorPool();
139 
145  isc::data::ElementPtr getPool(const std::string& xpath);
146 
151  void setPool(const std::string& xpath, isc::data::ConstElementPtr elem);
152 
159  static void getAddresses(const std::string& prefix,
160  std::string& start_address,
161  std::string& end_address);
162 
163 protected:
169  isc::data::ElementPtr getPoolIetf6(const std::string& xpath);
170 
177  void setPoolIetf6(const std::string& xpath,
179 
185  isc::data::ElementPtr getPoolKea(const std::string& xpath);
186 
192  void setPoolKea(const std::string& xpath, isc::data::ConstElementPtr elem);
193 };
194 
198 class TranslatorPools : virtual public TranslatorPool {
199 public:
200 
205 #ifndef HAVE_PRE_0_7_6_SYSREPO
206  TranslatorPools(sysrepo::S_Session session, const std::string& model);
207 #else
208  TranslatorPools(S_Session session, const std::string& model);
209 #endif
210 
212  virtual ~TranslatorPools();
213 
218  isc::data::ElementPtr getPools(const std::string& xpath);
219 
224  void setPools(const std::string& xpath, isc::data::ConstElementPtr elem);
225 
226 protected:
230  isc::data::ElementPtr getPoolsIetf(const std::string& xpath);
231 
235  isc::data::ElementPtr getPoolsKea(const std::string& xpath);
236 
241  void setPoolsById(const std::string& xpath,
243 
249  void setPoolsByAddresses(const std::string& xpath,
251 };
252 
253 }; // end of namespace isc::yang
254 }; // end of namespace isc
255 
256 #endif // ISC_TRANSLATOR_POOL_H
isc::yang::TranslatorOptionDataList
A translator class for converting an option data list between YANG and JSON.
Definition: translator_option_data.h:126
isc::yang::TranslatorPool
A translator class for converting a pool between YANG and JSON.
Definition: translator_pool.h:124
isc::yang::TranslatorPool::TranslatorPool
TranslatorPool(sysrepo::S_Session session, const std::string &model)
Constructor.
Definition: translator_pool.cc:28
isc::yang::TranslatorPool::getPool
isc::data::ElementPtr getPool(const std::string &xpath)
Get and translate a pool from YANG to JSON.
Definition: translator_pool.cc:38
isc::yang::TranslatorPool::setPool
void setPool(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set (address) pool from JSON to YANG.
Definition: translator_pool.cc:131
isc::yang::TranslatorPools::getPoolsIetf
isc::data::ElementPtr getPoolsIetf(const std::string &xpath)
getPools for ietf-dhcpv6-server.
Definition: translator_pool.cc:298
isc::yang::TranslatorPool::getPoolKea
isc::data::ElementPtr getPoolKea(const std::string &xpath)
getPool for kea-dhcp[46]-server.
Definition: translator_pool.cc:94
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::yang::TranslatorPools::~TranslatorPools
virtual ~TranslatorPools()
Destructor.
Definition: translator_pool.cc:276
isc::yang::TranslatorPools
A translator class for converting pools between YANG and JSON.
Definition: translator_pool.h:198
isc::yang::TranslatorPool::getPoolIetf6
isc::data::ElementPtr getPoolIetf6(const std::string &xpath)
getPool for ietf-dhcpv6-server.
Definition: translator_pool.cc:56
isc::yang::TranslatorPool::getAddresses
static void getAddresses(const std::string &prefix, std::string &start_address, std::string &end_address)
Get start and end addresses from prefix.
Definition: translator_pool.cc:249
isc::yang::TranslatorPools::TranslatorPools
TranslatorPools(sysrepo::S_Session session, const std::string &model)
Constructor.
Definition: translator_pool.cc:269
isc::yang::TranslatorPools::setPools
void setPools(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set (address) pools from JSON to YANG.
Definition: translator_pool.cc:334
isc::yang::TranslatorPool::setPoolKea
void setPoolKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setPool for kea-dhcp[46]-server.
Definition: translator_pool.cc:203
isc::yang::TranslatorPools::getPools
isc::data::ElementPtr getPools(const std::string &xpath)
Get and translate pools from YANG to JSON.
Definition: translator_pool.cc:280
translator_option_data.h
isc::yang::TranslatorPool::setPoolIetf6
void setPoolIetf6(const std::string &xpath, isc::data::ConstElementPtr elem)
setPool for ietf-dhcpv6-server.
Definition: translator_pool.cc:150
isc::yang::TranslatorPools::getPoolsKea
isc::data::ElementPtr getPoolsKea(const std::string &xpath)
getPools for kea-dhcp[46]-server.
Definition: translator_pool.cc:316
isc::yang::TranslatorPools::setPoolsByAddresses
void setPoolsByAddresses(const std::string &xpath, isc::data::ConstElementPtr elem)
setPools using address pair.
Definition: translator_pool.cc:363
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::TranslatorPools::setPoolsById
void setPoolsById(const std::string &xpath, isc::data::ConstElementPtr elem)
setPools using pool-id.
Definition: translator_pool.cc:353
isc::yang::TranslatorPool::~TranslatorPool
virtual ~TranslatorPool()
Destructor.
Definition: translator_pool.cc:34