| Kea 3.0.2-git

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
10#include <exceptions/exceptions.h>
11
12#include <boost/shared_ptr.hpp>
13#include <functional>
14#include <string>
15
16 namespace isc {
17 namespace dns {
18 class Name;
19 class RRClass;
20 class RRType;
21 class RRTTL;
22 namespace rdata {
23 class Rdata;
24 typedef boost::shared_ptr<Rdata> RdataPtr;
25}
26
38 typedef std::function<void(const Name& name, const RRClass& rrclass,
39 const RRType& rrtype, const RRTTL& rrttl,
40 const rdata::RdataPtr& rdata)>
41 AddRRCallback;
42
49 class MasterLoaderCallbacks {
50 public:
61 typedef std::function<void(const std::string& source_name,
62 size_t source_line,
63 const std::string& reason)> IssueCallback;
64
72 MasterLoaderCallbacks(const IssueCallback& error,
73 const IssueCallback& warning) :
74 error_(error),
75 warning_(warning) {
76 if (!error_ || !warning_) {
77 isc_throw(isc::InvalidParameter,
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 }
113 private:
114 const IssueCallback error_;
115 const IssueCallback warning_;
116};
117
118}
119}
120
121#endif // MASTER_LOADER_CALLBACKS_H
isc::InvalidParameter
A generic exception that is thrown if a parameter given to a method or function is considered invalid...
Definition exceptions/exceptions.h:124
isc::dns::MasterLoaderCallbacks::MasterLoaderCallbacks
MasterLoaderCallbacks(const IssueCallback &error, const IssueCallback &warning)
Constructor.
Definition master_loader_callbacks.h:72
isc::dns::MasterLoaderCallbacks::error
void error(const std::string &source_name, size_t source_line, const std::string &reason) const
Call callback for serious errors.
Definition master_loader_callbacks.h:93
isc::dns::MasterLoaderCallbacks::IssueCallback
std::function< void(const std::string &source_name, size_t source_line, const std::string &reason)> IssueCallback
Type of one callback to report problems.
Definition master_loader_callbacks.h:63
isc::dns::MasterLoaderCallbacks::warning
void warning(const std::string &source_name, size_t source_line, const std::string &reason) const
Call callback for potential problems.
Definition master_loader_callbacks.h:109
isc::dns::Name
The Name class encapsulates DNS names.
Definition name.h:219
isc::dns::RRClass
The RRClass class encapsulates DNS resource record classes.
Definition rrclass.h:89
isc::dns::RRTTL
The RRTTL class encapsulates TTLs used in DNS resource records.
Definition rrttl.h:51
isc::dns::RRType
The RRType class encapsulates DNS resource record types.
Definition rrtype.h:96
isc::dns::rdata::Rdata
The Rdata class is an abstract base class that provides a set of common interfaces to manipulate conc...
Definition rdata.h:120
exceptions.h
isc_throw
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Definition exceptions/exceptions.h:210
isc::dns::name
Definition name.cc:69
isc::dns::rdata
Definition char_string.cc:27
isc::dns::rdata::RdataPtr
boost::shared_ptr< Rdata > RdataPtr
The RdataPtr type is a pointer-like type, pointing to an object of some concrete derived class of Rda...
Definition master_loader_callbacks.h:24
isc::dns
Definition char_string.cc:26
isc::dns::AddRRCallback
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.
Definition master_loader_callbacks.h:41
isc
Defines the logger used by the top-level component of kea-lfc.
Definition agent_parser.cc:148