7#ifndef RRPARAMREGISTRY_H
8#define RRPARAMREGISTRY_H
14#include <boost/shared_ptr.hpp>
24struct RRParamRegistryImpl;
98 size_t rdata_len)
const = 0;
232 void add(
const std::string& type_string, uint16_t type_code,
233 const std::string& class_string, uint16_t class_code,
245 void add(
const std::string& type_string, uint16_t type_code,
275 bool addType(
const std::string& type_string, uint16_t type_code);
318 bool addClass(
const std::string& class_string, uint16_t class_code);
388 uint16_t& type_code)
const;
426 uint16_t& class_code)
const;
477 const std::string& rdata_string);
537 boost::shared_ptr<RRParamRegistryImpl> impl_;
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Tokenizer for parsing DNS master files.
Set of issue callbacks for a loader.
Options
Options how the parsing should work.
The Name class encapsulates DNS names.
A standard DNS module exception that is thrown if a new RR class is being registered with a different...
RRClassExists(const char *file, size_t line, const char *what)
The RRClass class encapsulates DNS resource record classes.
The RRParamRegistry class represents a registry of parameters to manipulate DNS resource records (RRs...
rdata::RdataPtr createRdata(const RRType &rrtype, const RRClass &rrclass, const std::string &rdata_string)
Create RDATA of a given pair of RR type and class from a string.
bool removeType(uint16_t type_code)
Remove mappings between RR type code and textual representation for a given type.
bool textToTypeCode(const std::string &type_string, uint16_t &type_code) const
Convert a textual representation of an RR type to the corresponding 16-bit integer code.
bool textToClassCode(const std::string &class_string, uint16_t &class_code) const
Convert a textual representation of an RR class to the corresponding 16-bit integer code.
std::string codeToClassText(uint16_t class_code) const
Convert class code into its textual representation.
std::string codeToTypeText(uint16_t type_code) const
Convert type code into its textual representation.
bool addClass(const std::string &class_string, uint16_t class_code)
Add mappings between RR class code and textual representation.
static RRParamRegistry & getRegistry()
Return the singleton instance of RRParamRegistry.
bool addType(const std::string &type_string, uint16_t type_code)
Add mappings between RR type code and textual representation.
bool removeRdataFactory(const RRType &rrtype, const RRClass &rrclass)
Remove registered RDATA factory for the given pair of RRType and RRClass.
void add(const std::string &type_string, uint16_t type_code, const std::string &class_string, uint16_t class_code, rdata::RdataFactoryPtr rdata_factory)
Add a set of parameters for a pair of RR type and class.
bool removeClass(uint16_t class_code)
Remove mappings between RR class code and textual representation for a given class.
A standard DNS module exception that is thrown if a new RR type is being registered with a different ...
RRTypeExists(const char *file, size_t line, const char *what)
The RRType class encapsulates DNS resource record types.
The AbstractRdataFactory class is an abstract base class to encapsulate a set of Rdata factory method...
virtual RdataPtr create(const std::string &rdata_str) const =0
Create RDATA from a string.
virtual RdataPtr create(const rdata::Rdata &source) const =0
Create RDATA from another Rdata object of the same type.
virtual RdataPtr create(isc::util::InputBuffer &buff, size_t rdata_len) const =0
Create RDATA from wire-format data.
AbstractRdataFactory()
The default constructor.
virtual RdataPtr create(MasterLexer &lexer, const Name *origin, MasterLoader::Options options, MasterLoaderCallbacks &callbacks) const =0
Create RDATA using MasterLexer.
virtual ~AbstractRdataFactory()
The destructor.
The Rdata class is an abstract base class that provides a set of common interfaces to manipulate conc...
boost::shared_ptr< AbstractRdataFactory > RdataFactoryPtr
The RdataFactoryPtr type is a pointer-like type, pointing to an object of some concrete derived class...
boost::shared_ptr< Rdata > RdataPtr
The RdataPtr type is a pointer-like type, pointing to an object of some concrete derived class of Rda...
Defines the logger used by the top-level component of kea-lfc.