Kea 1.9.11
client_class_def_parser.h
Go to the documentation of this file.
1// Copyright (C) 2015-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 CLIENT_CLASS_DEF_PARSER_H
8#define CLIENT_CLASS_DEF_PARSER_H
9
10#include <cc/data.h>
11#include <cc/simple_parser.h>
12#include <eval/eval_context.h>
14#include <functional>
15#include <list>
16
54namespace isc {
55namespace dhcp {
56
63public:
64
73 void parse(ExpressionPtr& expression,
74 isc::data::ConstElementPtr expression_cfg,
75 uint16_t family,
78};
79
84public:
85
101 void parse(ClientClassDictionaryPtr& class_dictionary,
102 isc::data::ConstElementPtr client_class_def,
103 uint16_t family,
104 bool append_error_position = true,
105 bool check_dependencies = true);
106
117 const uint16_t family);
118};
119
121typedef boost::shared_ptr<ClientClassDefParser> ClientClassDefParserPtr;
122
130public:
131
146 parse(isc::data::ConstElementPtr class_def_list, uint16_t family,
147 bool check_dependencies = true);
148};
149
150} // end of namespace isc::dhcp
151} // end of namespace isc
152
153#endif // CLIENT_CLASS_DEF_PARSER_H
Parser for a list of client class definitions.
ClientClassDictionaryPtr parse(isc::data::ConstElementPtr class_def_list, uint16_t family, bool check_dependencies=true)
Parse configuration entries.
Parser for a single client class definition.
void parse(ClientClassDictionaryPtr &class_dictionary, isc::data::ConstElementPtr client_class_def, uint16_t family, bool append_error_position=true, bool check_dependencies=true)
Parses an entry that describes single client class definition.
void checkParametersSupported(const isc::data::ConstElementPtr &class_def_cfg, const uint16_t family)
Iterates over class parameters and checks if they are supported.
Parser for a logical expression.
void parse(ExpressionPtr &expression, isc::data::ConstElementPtr expression_cfg, uint16_t family, isc::eval::EvalContext::CheckDefined check_defined=isc::eval::EvalContext::acceptAll)
Parses an expression configuration element into an Expression.
std::function< bool(const ClientClass &)> CheckDefined
Type of the check defined function.
Definition: eval_context.h:44
static bool acceptAll(const ClientClass &client_class)
Accept all client class names.
Definition: eval_context.cc:32
Defines classes for storing client class definitions.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
boost::shared_ptr< Expression > ExpressionPtr
Definition: token.h:30
boost::shared_ptr< ClientClassDictionary > ClientClassDictionaryPtr
Defines a pointer to a ClientClassDictionary.
boost::shared_ptr< ClientClassDefParser > ClientClassDefParserPtr
Defines a pointer to a ClientClassDefParser.
Defines the logger used by the top-level component of kea-lfc.