Kea  1.9.9-git
translator_database.h
Go to the documentation of this file.
1 // Copyright (C) 2018-2019,2021 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_DATABASE_H
8 #define ISC_TRANSLATOR_DATABASE_H 1
9 
10 #include <yang/translator.h>
11 #include <list>
12 
13 namespace isc {
14 namespace yang {
15 
103 
110 class TranslatorDatabase : virtual public TranslatorBasic {
111 public:
112 
117 #ifndef HAVE_PRE_0_7_6_SYSREPO
118  TranslatorDatabase(sysrepo::S_Session session, const std::string& model);
119 #else
120  TranslatorDatabase(S_Session session, const std::string& model);
121 #endif
122 
124  virtual ~TranslatorDatabase();
125 
131  isc::data::ElementPtr getDatabase(const std::string& xpath);
132 
140  void setDatabase(const std::string& xpath,
142  bool skip = false);
143 
144 protected:
150  isc::data::ElementPtr getDatabaseKea(const std::string& xpath);
151 
158  void setDatabaseKea(const std::string& xpath,
160  bool skip);
161 };
162 
167 class TranslatorDatabases : virtual public TranslatorDatabase {
168 public:
169 
174 #ifndef HAVE_PRE_0_7_6_SYSREPO
175  TranslatorDatabases(sysrepo::S_Session session, const std::string& model);
176 #else
177  TranslatorDatabases(S_Session session, const std::string& model);
178 #endif
179 
181  virtual ~TranslatorDatabases();
182 
188  isc::data::ConstElementPtr getDatabases(const std::string& xpath);
189 
196  void setDatabases(const std::string& xpath,
198 
199 protected:
205  isc::data::ElementPtr getDatabasesKea(const std::string& xpath);
206 
212  void setDatabasesKea(const std::string& xpath,
214 };
215 
216 }; // end of namespace isc::yang
217 }; // end of namespace isc
218 
219 #endif // ISC_TRANSLATOR_DATABASE_H
isc::data::ConstElementPtr getDatabases(const std::string &xpath)
Get and translate database accesses from YANG to JSON.
void setDatabases(const std::string &xpath, isc::data::ConstElementPtr elem)
Translate and set database accesses from JSON to YANG.
isc::data::ElementPtr getDatabase(const std::string &xpath)
Get and translate a database access from YANG to JSON.
Between YANG and JSON translator class for basic values.
Definition: translator.h:27
TranslatorDatabase(sysrepo::S_Session session, const std::string &model)
Constructor.
TranslatorDatabases(sysrepo::S_Session session, const std::string &model)
Constructor.
boost::shared_ptr< Element > ElementPtr
Definition: data.h:20
isc::data::ElementPtr getDatabaseKea(const std::string &xpath)
getDatabase JSON for kea-dhcp[46]-server models.
isc::data::ElementPtr getDatabasesKea(const std::string &xpath)
getDatabases JSON for kea-dhcp[46]-server models.
virtual ~TranslatorDatabase()
Destructor.
void setDatabasesKea(const std::string &xpath, isc::data::ConstElementPtr elem)
setDatabases for kea-dhcp[46]-server models.
Database access translation between YANG and JSON.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
Defines the logger used by the top-level component of kea-dhcp-ddns.
A translator class for converting a database access list between YANG and JSON.
virtual ~TranslatorDatabases()
Destructor.
void setDatabase(const std::string &xpath, isc::data::ConstElementPtr elem, bool skip=false)
Translate and set database access from JSON to YANG.
void setDatabaseKea(const std::string &xpath, isc::data::ConstElementPtr elem, bool skip)
setDatabase for kea-dhcp[46]-server models.