Kea 2.5.8
master_loader_callbacks.h
Go to the documentation of this file.
1// Copyright (C) 2012-2024 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 MASTER_LOADER_CALLBACKS_H
8#define MASTER_LOADER_CALLBACKS_H
9
11
12#include <boost/shared_ptr.hpp>
13#include <functional>
14#include <string>
15
16namespace isc {
17namespace dns {
18class Name;
19class RRClass;
20class RRType;
21class RRTTL;
22namespace rdata {
23class Rdata;
24typedef boost::shared_ptr<Rdata> RdataPtr;
25}
26
38typedef std::function<void(const Name& name, const RRClass& rrclass,
39 const RRType& rrtype, const RRTTL& rrttl,
40 const rdata::RdataPtr& rdata)>
42
50public:
61 typedef std::function<void(const std::string& source_name,
62 size_t source_line,
63 const std::string& reason)> IssueCallback;
64
73 const IssueCallback& warning) :
74 error_(error),
75 warning_(warning) {
76 if (!error_ || !warning_) {
78 "Empty function passed as callback");
79 }
80 }
81
93 void error(const std::string& source_name, size_t source_line,
94 const std::string& reason) const {
95 error_(source_name, source_line, reason);
96 }
97
109 void warning(const std::string& source_name, size_t source_line,
110 const std::string& reason) const {
111 warning_(source_name, source_line, reason);
112 }
113private:
114 const IssueCallback error_;
115 const IssueCallback warning_;
116};
117
118}
119}
120
121#endif // MASTER_LOADER_CALLBACKS_H
A generic exception that is thrown if a parameter given to a method or function is considered invalid...
Set of issue callbacks for a loader.
MasterLoaderCallbacks(const IssueCallback &error, const IssueCallback &warning)
Constructor.
void error(const std::string &source_name, size_t source_line, const std::string &reason) const
Call callback for serious errors.
std::function< void(const std::string &source_name, size_t source_line, const std::string &reason)> IssueCallback
Type of one callback to report problems.
void warning(const std::string &source_name, size_t source_line, const std::string &reason) const
Call callback for potential problems.
The Name class encapsulates DNS names.
Definition: name.h:219
The RRClass class encapsulates DNS resource record classes.
Definition: rrclass.h:89
The RRTTL class encapsulates TTLs used in DNS resource records.
Definition: rrttl.h:51
The RRType class encapsulates DNS resource record types.
Definition: rrtype.h:96
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
boost::shared_ptr< Rdata > RdataPtr
The RdataPtr type is a pointer-like type, pointing to an object of some concrete derived class of Rda...
std::function< void(const Name &name, const RRClass &rrclass, const RRType &rrtype, const RRTTL &rrttl, const rdata::RdataPtr &rdata)> AddRRCallback
Type of callback to add a RR.
Defines the logger used by the top-level component of kea-lfc.