summaryrefslogtreecommitdiffstats
path: root/src/lib/process/config_ctl_parser.h
blob: 4182a1908e52cb380a6aee75cb4009a97828a94b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Copyright (C) 2018 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

#ifndef PROCESS_CONFIG_CONTROL_PARSER_H
#define PROCESS_CONFIG_CONTROL_PARSER_H

#include <cc/data.h>
#include <cc/simple_parser.h>
#include <process/config_ctl_info.h>

namespace isc {
namespace process {

/// @brief Implements parser for config control information, "config-control"
class ConfigControlParser : isc::data::SimpleParser {
public:

    /// @brief Parses a configuration control Element
    ///
    /// @param config_control Element holding the config control content
    /// to be parsed.
    ///
    /// @return Pointer to newly created ConfigControlInfo instance
    /// @throw DhcpConfigError when config control content is invalid.
    ConfigControlInfoPtr
    parse(const data::ConstElementPtr& config_control);
};

} // enf of namespace isc::process
} // end of namespace isc

#endif // PROCESS_CONFIG_CONTROL_PARSER_H