Kea 2.2.0
adaptor_option.h
Go to the documentation of this file.
1// Copyright (C) 2018-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 ISC_ADAPTOR_OPTION_H
8#define ISC_ADAPTOR_OPTION_H 1
9
10#include <yang/adaptor.h>
11#include <map>
12#include <list>
13
14namespace isc {
15
16namespace dhcp {
18struct OptionDefParams;
19};
20
21namespace yang {
22
28typedef std::map<std::string, uint16_t> OptionCodes;
29
46public:
47
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
96protected:
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
JSON adaptor for option data or definition setting defaults.
static void setCode(isc::data::ElementPtr option, const OptionCodes &codes)
Set code from name and definitions.
static void initCodes(OptionCodes &codes, const std::string &space)
Initialize code map.
static void setSpace(isc::data::ElementPtr option, const std::string &space)
Set space.
static void checkType(isc::data::ConstElementPtr option)
Checks if type is specified in option definition.
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.
virtual ~AdaptorOption()
Destructor.
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.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
std::map< std::string, uint16_t > OptionCodes
Map for DHCP option definitions handling code and an index built from space and name.
Defines the logger used by the top-level component of kea-lfc.
Parameters being used to make up an option definition.