Kea  2.1.7-git
cfg_duid.h
Go to the documentation of this file.
1 // Copyright (C) 2015-2020 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_DUID_H
8 #define CFG_DUID_H
9 
10 #include <dhcp/duid.h>
11 #include <cc/cfg_to_element.h>
12 #include <cc/user_context.h>
13 #include <boost/shared_ptr.hpp>
14 #include <stdint.h>
15 #include <vector>
16 
17 namespace isc {
18 namespace dhcp {
19 
31 public:
32 
34  CfgDUID();
35 
38  return (type_);
39  }
40 
42  void setType(const DUID::DUIDType& type) {
43  type_ = type;
44  }
45 
55  std::vector<uint8_t> getIdentifier() const {
56  return (identifier_);
57  }
58 
63  void setIdentifier(const std::string& identifier_as_hex);
64 
66  uint16_t getHType() const {
67  return (htype_);
68  }
69 
71  void setHType(const uint16_t htype) {
72  htype_ = htype;
73  }
74 
76  uint32_t getTime() const {
77  return (time_);
78  }
79 
81  void setTime(const uint32_t new_time) {
82  time_ = new_time;
83  }
84 
86  uint32_t getEnterpriseId() const {
87  return (enterprise_id_);
88  }
89 
93  void setEnterpriseId(const uint32_t enterprise_id) {
94  enterprise_id_ = enterprise_id;
95  }
96 
101  bool persist() const {
102  return (persist_);
103  }
104 
109  void setPersist(const bool persist) {
110  persist_ = persist;
111  }
112 
120  DuidPtr create(const std::string& duid_file_path);
121 
125  virtual isc::data::ElementPtr toElement() const;
126 
130  const DuidPtr getCurrentDuid() const {
131  return (current_duid_);
132  }
133 
134 private:
135 
137  DUID::DUIDType type_;
138 
140  std::vector<uint8_t> identifier_;
141 
143  uint16_t htype_;
144 
146  uint32_t time_;
147 
149  uint32_t enterprise_id_;
150 
153  bool persist_;
154 
155  DuidPtr current_duid_;
156 };
157 
159 
160 typedef boost::shared_ptr<CfgDUID> CfgDUIDPtr;
162 
164 typedef boost::shared_ptr<const CfgDUID> ConstCfgDUIDPtr;
165 
167 
168 }
169 }
170 
171 #endif // CFG_DUID_H
boost::shared_ptr< DUID > DuidPtr
Definition: duid.h:20
std::vector< uint8_t > getIdentifier() const
Returns identifier.
Definition: cfg_duid.h:55
uint16_t getHType() const
Returns hardware type for DUID-LLT and DUID-LL.
Definition: cfg_duid.h:66
Base class for user context.
Definition: user_context.h:22
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
bool persist() const
Checks if server identifier should be stored on disk.
Definition: cfg_duid.h:101
const DuidPtr getCurrentDuid() const
Fetches the duid created by create()
Definition: cfg_duid.h:130
boost::shared_ptr< const CfgDUID > ConstCfgDUIDPtr
Pointer to the const object.
Definition: cfg_duid.h:164
void setType(const DUID::DUIDType &type)
Sets DUID type.
Definition: cfg_duid.h:42
void setHType(const uint16_t htype)
Sets new hardware type for DUID-LLT and DUID-LL.
Definition: cfg_duid.h:71
DUIDType
specifies DUID type
Definition: duid.h:38
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition: cfg_duid.cc:86
Abstract class for configuration Cfg_* classes.
CfgDUID()
Constructor.
Definition: cfg_duid.cc:25
void setTime(const uint32_t new_time)
Sets new time for DUID-LLT.
Definition: cfg_duid.h:81
void setPersist(const bool persist)
Sets a boolean flag indicating if the server identifier should be stored on the disk (if true) or not...
Definition: cfg_duid.h:109
void setEnterpriseId(const uint32_t enterprise_id)
Sets new enterprise id.
Definition: cfg_duid.h:93
uint32_t getTime() const
Returns time for the DUID-LLT.
Definition: cfg_duid.h:76
Defines the logger used by the top-level component of kea-lfc.
DuidPtr create(const std::string &duid_file_path)
Creates instance of a DUID from the current configuration.
Definition: cfg_duid.cc:55
boost::shared_ptr< CfgDUID > CfgDUIDPtr
Pointer to the Non-const object.
Definition: cfg_duid.h:161
uint32_t getEnterpriseId() const
Returns enterprise id for the DUID-EN.
Definition: cfg_duid.h:86
DUID::DUIDType getType() const
Returns DUID type.
Definition: cfg_duid.h:37
void setIdentifier(const std::string &identifier_as_hex)
Sets new identifier as hex string.
Definition: cfg_duid.cc:31
Holds manual configuration of the server identifier (DUID).
Definition: cfg_duid.h:30