summaryrefslogtreecommitdiffstats
path: root/src/bin/agent/simple_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/agent/simple_parser.h')
-rw-r--r--src/bin/agent/simple_parser.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/bin/agent/simple_parser.h b/src/bin/agent/simple_parser.h
new file mode 100644
index 0000000..20f61d8
--- /dev/null
+++ b/src/bin/agent/simple_parser.h
@@ -0,0 +1,58 @@
+// Copyright (C) 2017-2021 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 AGENT_SIMPLE_PARSER_H
+#define AGENT_SIMPLE_PARSER_H
+
+#include <cc/simple_parser.h>
+#include <agent/ca_cfg_mgr.h>
+
+namespace isc {
+namespace agent {
+
+/// @brief SimpleParser specialized for Control Agent
+///
+/// This class is a @ref isc::data::SimpleParser dedicated to Control Agent.
+/// In particular, it contains all the default values for the whole
+/// agent and for the socket defaults.
+///
+/// For the actual values, see @file agent/simple_parser.cc
+class AgentSimpleParser : public isc::data::SimpleParser {
+public:
+ /// @brief Sets all defaults for Control Agent configuration
+ ///
+ /// This method sets global, option data and option definitions defaults.
+ ///
+ /// @param global scope to be filled in with defaults.
+ /// @return number of default values added
+ static size_t setAllDefaults(const isc::data::ElementPtr& global);
+
+ /// @brief Check TLS setup consistency i.e. all or none.
+ ///
+ /// @param config - Element tree structure that holds configuration.
+ /// @throw ConfigError when the configuration is not consistent.
+ void checkTlsSetup(const isc::data::ConstElementPtr& config);
+
+ /// @brief Parses the control agent configuration
+ ///
+ /// @param ctx - parsed information will be stored here
+ /// @param config - Element tree structure that holds configuration
+ /// @param check_only - if true the configuration is verified only, not applied
+ ///
+ /// @throw ConfigError if any issues are encountered.
+ void parse(const CtrlAgentCfgContextPtr& ctx,
+ const isc::data::ConstElementPtr& config,
+ bool check_only);
+
+ // see simple_parser.cc for comments for those parameters
+ static const isc::data::SimpleDefaults AGENT_DEFAULTS;
+ static const isc::data::SimpleDefaults AUTH_DEFAULTS;
+ static const isc::data::SimpleDefaults SOCKET_DEFAULTS;
+};
+
+}
+}
+#endif