Kea 2.7.1
isc::dhcp::HostReservationIdsParser Class Referenceabstract

Parser for a list of host identifiers. More...

#include <host_reservation_parser.h>

+ Inheritance diagram for isc::dhcp::HostReservationIdsParser:

Public Member Functions

 HostReservationIdsParser ()
 Constructor.
 
virtual ~HostReservationIdsParser ()
 Destructor.
 
void parse (isc::data::ConstElementPtr ids_list)
 Parses a list of host identifiers.
 
- Public Member Functions inherited from isc::data::SimpleParser
uint16_t getUint16 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint16_t.
 
uint32_t getUint32 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint32_t.
 
uint8_t getUint8 (ConstElementPtr scope, const std::string &name)
 Get an uint8_t value.
 
const isc::util::Triplet< uint32_t > parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name)
 Parses an integer triplet.
 

Protected Member Functions

virtual bool isSupportedIdentifier (const std::string &id_name) const =0
 Checks if specified identifier name is supported in the context of the parser.
 
virtual void parseInternal (isc::data::ConstElementPtr ids_list)
 Parses a list of host identifiers.
 
- Protected Member Functions inherited from isc::data::SimpleParser
template<typename target_type , target_type convert>
target_type getAndConvert (isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name)
 Returns a converted value from a scope.
 
template<typename int_type >
int_type getIntType (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer value with range checking from a scope.
 

Protected Attributes

CfgHostOperationsPtr staging_cfg_
 Pointer to the object holding configuration.
 

Additional Inherited Members

- Static Public Member Functions inherited from isc::data::SimpleParser
static void checkKeywords (const SimpleKeywords &keywords, isc::data::ConstElementPtr scope)
 Checks acceptable keywords with their expected type.
 
static void checkRequired (const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
 Checks that all required keywords are present.
 
static size_t deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList &params)
 Derives (inherits) parameters from parent scope to a child.
 
static isc::asiolink::IOAddress getAddress (const ConstElementPtr &scope, const std::string &name)
 Returns a IOAddress parameter from a scope.
 
static bool getBoolean (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a boolean parameter from a scope.
 
static double getDouble (const ConstElementPtr &scope, const std::string &name)
 Returns a floating point parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name, int64_t min, int64_t max)
 Returns an integer parameter from a scope and checks its range.
 
static const data::Element::PositiongetPosition (const std::string &name, const data::ConstElementPtr parent)
 Utility method that returns position of an element.
 
static std::string getString (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a string parameter from a scope.
 
static size_t setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values)
 Sets the default values.
 
static size_t setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values)
 Sets the default values for all entries in a list.
 

Detailed Description

Parser for a list of host identifiers.

This is a parent parser class for parsing "host-reservation-identifiers" global configuration parameter. The DHCPv4 and DHCPv6 specific parsers derive from this class.

Definition at line 152 of file host_reservation_parser.h.

Constructor & Destructor Documentation

◆ HostReservationIdsParser()

isc::dhcp::HostReservationIdsParser::HostReservationIdsParser ( )

Constructor.

Definition at line 370 of file host_reservation_parser.cc.

◆ ~HostReservationIdsParser()

virtual isc::dhcp::HostReservationIdsParser::~HostReservationIdsParser ( )
inlinevirtual

Destructor.

Definition at line 159 of file host_reservation_parser.h.

Member Function Documentation

◆ isSupportedIdentifier()

virtual bool isc::dhcp::HostReservationIdsParser::isSupportedIdentifier ( const std::string & id_name) const
protectedpure virtual

Checks if specified identifier name is supported in the context of the parser.

This is abstract method which must be implemented in the derived parser classes for DHCPv4 and DHCPv6.

Parameters
id_nameIdentifier name.
Returns
true if the specified identifier is supported, false otherwise.

Implemented in isc::dhcp::HostReservationIdsParser4, and isc::dhcp::HostReservationIdsParser6.

Referenced by parseInternal().

◆ parse()

void isc::dhcp::HostReservationIdsParser::parse ( isc::data::ConstElementPtr ids_list)

Parses a list of host identifiers.

Parameters
ids_listData element pointing to an ordered list of host identifier names.
Exceptions
DhcpConfigErrorIf specified configuration is invalid.

Definition at line 375 of file host_reservation_parser.cc.

References parseInternal().

Referenced by isc::dhcp::processDhcp4Config(), and isc::dhcp::processDhcp6Config().

+ Here is the call graph for this function:

◆ parseInternal()

void isc::dhcp::HostReservationIdsParser::parseInternal ( isc::data::ConstElementPtr ids_list)
protectedvirtual

Parses a list of host identifiers.

This method is called by parse and it can be overridden in the derived classes to provide class specific parsing logic.

Parameters
ids_listData element pointing to an ordered list of host identifier names.
Exceptions
DhcpConfigErrorIf specified configuration is invalid.

Definition at line 380 of file host_reservation_parser.cc.

References isc::dhcp::Host::getIdentifierName(), isc_throw, isSupportedIdentifier(), isc::dhcp::Host::LAST_IDENTIFIER_TYPE, staging_cfg_, and isc::Exception::what().

Referenced by parse().

+ Here is the call graph for this function:

Member Data Documentation

◆ staging_cfg_

CfgHostOperationsPtr isc::dhcp::HostReservationIdsParser::staging_cfg_
protected

The documentation for this class was generated from the following files: