Kea 1.5.0
client_class_def_parser.h
Go to the documentation of this file.
1// Copyright (C) 2015-2018 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
99 void parse(ClientClassDictionaryPtr& class_dictionary,
100 isc::data::ConstElementPtr client_class_def,
101 uint16_t family,
102 bool append_error_position = true);
103
114 const uint16_t family);
115};
116
118typedef boost::shared_ptr<ClientClassDefParser> ClientClassDefParserPtr;
119
127public:
128
141 parse(isc::data::ConstElementPtr class_def_list, uint16_t family);
142};
143
144} // end of namespace isc::dhcp
145} // end of namespace isc
146
147#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)
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)
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:45
static bool acceptAll(const ClientClass &client_class)
Accept all client class names.
Definition: eval_context.cc:33
Defines classes for storing client class definitions.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
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-dhcp-ddns.