Kea  2.5.3
cfg_db_access.h
Go to the documentation of this file.
1 // Copyright (C) 2016-2022 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 CFG_DBACCESS_H
8 #define CFG_DBACCESS_H
9 
10 #include <cc/cfg_to_element.h>
12 
13 #include <boost/shared_ptr.hpp>
14 #include <string>
15 #include <list>
16 
17 namespace isc {
18 namespace dhcp {
19 
25 class CfgDbAccess {
26 public:
28  CfgDbAccess();
29 
35  void setAppendedParameters(const std::string& appended_parameters) {
36  appended_parameters_ = appended_parameters;
37  }
38 
43  std::string getLeaseDbAccessString() const;
44 
48  void setLeaseDbAccessString(const std::string& lease_db_access) {
49  lease_db_access_ = lease_db_access;
50  }
51 
56  std::string getHostDbAccessString() const;
57 
62  void setHostDbAccessString(const std::string& host_db_access,
63  bool front = false) {
64  if (front) {
65  host_db_access_.push_front(host_db_access);
66  } else {
67  host_db_access_.push_back(host_db_access);
68  }
69  }
70 
75  std::list<std::string> getHostDbAccessStringList() const;
76 
90  void setIPReservationsUnique(const bool unique) {
91  ip_reservations_unique_ = unique;
92  }
93 
99  bool getIPReservationsUnique() const {
100  return (ip_reservations_unique_);
101  }
102 
107  void setExtendedInfoTablesEnabled(const bool enabled) {
109  }
110 
118  }
119 
122  void createManagers() const;
123 
124 protected:
125 
129  std::string getAccessString(const std::string& access_string) const;
130 
133  std::string appended_parameters_;
134 
136  std::string lease_db_access_;
137 
139  std::list<std::string> host_db_access_;
140 
144 
148 };
149 
151 typedef boost::shared_ptr<CfgDbAccess> CfgDbAccessPtr;
152 
154 typedef boost::shared_ptr<const CfgDbAccess> ConstCfgDbAccessPtr;
155 
159  CfgLeaseDbAccess(const CfgDbAccess& super) : CfgDbAccess(super) { }
160 
168  }
169 };
170 
173  CfgHostDbAccess(const CfgDbAccess& super) : CfgDbAccess(super) { }
174 
182  for (const std::string& dbaccess : host_db_access_) {
183  isc::data::ElementPtr entry =
185  if (entry->size() > 0) {
186  result->add(entry);
187  }
188  }
189  return (result);
190  }
191 };
192 
193 }
194 }
195 
196 #endif // CFG_DBACCESS_H
static ElementPtr createList(const Position &pos=ZERO_POSITION())
Creates an empty ListElement type ElementPtr.
Definition: data.cc:296
static isc::data::ElementPtr toElementDbAccessString(const std::string &dbaccess)
Unparse an access string.
Holds access parameters and the configuration of the lease and hosts database connection.
Definition: cfg_db_access.h:25
void setLeaseDbAccessString(const std::string &lease_db_access)
Sets lease database access string.
Definition: cfg_db_access.h:48
bool ip_reservations_unique_
Holds the setting whether IP reservations should be unique or can be non-unique.
std::string getAccessString(const std::string &access_string) const
Returns lease or host database access string.
void createManagers() const
Creates instance of lease manager and host data sources according to the configuration specified.
std::string getHostDbAccessString() const
Retrieves host database access string.
bool getIPReservationsUnique() const
Returns the setting indicating if the IP reservations are unique or can be non unique.
Definition: cfg_db_access.h:99
bool getExtendedInfoTablesEnabled() const
Returns the setting indicating if lease extended info tables are enabled.
std::list< std::string > host_db_access_
Holds host database access strings.
std::string appended_parameters_
Parameters to be appended to the database access strings.
CfgDbAccess()
Constructor.
bool extended_info_tables_enabled_
Holds the setting whether the lease extended info tables are enabled or disabled.
std::list< std::string > getHostDbAccessStringList() const
Retrieves host database access string.
void setIPReservationsUnique(const bool unique)
Modifies the setting imposing whether the IP reservations are unique or can be non unique.
Definition: cfg_db_access.h:90
void setHostDbAccessString(const std::string &host_db_access, bool front=false)
Sets host database access string.
Definition: cfg_db_access.h:62
void setAppendedParameters(const std::string &appended_parameters)
Sets parameters which will be appended to the database access strings.
Definition: cfg_db_access.h:35
void setExtendedInfoTablesEnabled(const bool enabled)
Modifies the setting whether the lease extended info tables are enabled.
std::string lease_db_access_
Holds lease database access string.
std::string getLeaseDbAccessString() const
Retrieves lease database access string.
boost::shared_ptr< Element > ElementPtr
Definition: data.h:26
boost::shared_ptr< CfgDbAccess > CfgDbAccessPtr
A pointer to the CfgDbAccess.
boost::shared_ptr< const CfgDbAccess > ConstCfgDbAccessPtr
A pointer to the const CfgDbAccess.
Defines the logger used by the top-level component of kea-lfc.
Abstract class for configuration Cfg_* classes.
CfgHostDbAccess(const CfgDbAccess &super)
Constructor.
virtual isc::data::ElementPtr toElement() const
Unparse.
utility class for unparsing
virtual isc::data::ElementPtr toElement() const
Unparse.
CfgLeaseDbAccess(const CfgDbAccess &super)
Constructor.