Kea  1.9.9-git
adaptor_option.h
Go to the documentation of this file.
1 // Copyright (C) 2018,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_ADAPTOR_OPTION_H
8 #define ISC_ADAPTOR_OPTION_H 1
9 
10 #include <yang/adaptor.h>
11 #include <map>
12 #include <list>
13 
14 namespace isc {
15 
16 namespace dhcp {
18 struct OptionDefParams;
19 };
20 
21 namespace yang {
22 
28 typedef std::map<std::string, uint16_t> OptionCodes;
29 
46 public:
47 
49  AdaptorOption();
50 
52  virtual ~AdaptorOption();
53 
58  static void setSpace(isc::data::ElementPtr option,
59  const std::string& space);
60 
65  static void checkType(isc::data::ConstElementPtr option);
66 
71  static void checkCode(isc::data::ConstElementPtr option);
72 
81  static void collect(isc::data::ConstElementPtr option, OptionCodes& codes);
82 
87  static void setCode(isc::data::ElementPtr option,
88  const OptionCodes& codes);
89 
94  static void initCodes(OptionCodes& codes, const std::string& space);
95 
96 protected:
103  static void initCodesInternal(OptionCodes& codes, const std::string& space,
104  const isc::dhcp::OptionDefParams* params,
105  size_t params_size);
106 };
107 
108 }; // end of namespace isc::yang
109 }; // end of namespace isc
110 
111 #endif // ISC_ADAPTOR_OPTION_H
AdaptorOption()
Constructor.
static void setCode(isc::data::ElementPtr option, const OptionCodes &codes)
Set code from name and definitions.
std::map< std::string, uint16_t > OptionCodes
Map for DHCP option definitions handling code and an index built from space and name.
static void setSpace(isc::data::ElementPtr option, const std::string &space)
Set space.
boost::shared_ptr< Element > ElementPtr
Definition: data.h:20
Parameters being used to make up an option definition.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
virtual ~AdaptorOption()
Destructor.
Defines the logger used by the top-level component of kea-dhcp-ddns.
static void collect(isc::data::ConstElementPtr option, OptionCodes &codes)
Collect definition.
static void checkCode(isc::data::ConstElementPtr option)
Check if code is specified in option defintion.
static void initCodesInternal(OptionCodes &codes, const std::string &space, const isc::dhcp::OptionDefParams *params, size_t params_size)
Initialize code map from option definition parameters.
JSON adaptor for option data or definition setting defaults.
static void checkType(isc::data::ConstElementPtr option)
Checks if type is specified in option definition.
static void initCodes(OptionCodes &codes, const std::string &space)
Initialize code map.