Kea  2.1.7-git
isc::dhcp::OptionDataListParser Class Reference

Parser for option data values within a subnet. More...

#include <option_data_parser.h>

+ Inheritance diagram for isc::dhcp::OptionDataListParser:

Public Member Functions

 OptionDataListParser (const uint16_t address_family, CfgOptionDefPtr cfg_option_def=CfgOptionDefPtr())
 Constructor. More...
 
virtual ~OptionDataListParser ()
 Virtual destructor. More...
 
void parse (const CfgOptionPtr &cfg, isc::data::ConstElementPtr option_data_list)
 Parses a list of options, instantiates them and stores in cfg. More...
 
- 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. More...
 
uint32_t getUint32 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint32_t. More...
 
uint8_t getUint8 (ConstElementPtr scope, const std::string &name)
 Get an uint8_t value. More...
 
const isc::util::Triplet< uint32_t > parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name)
 Parses an integer triplet. More...
 

Protected Member Functions

virtual boost::shared_ptr< OptionDataParsercreateOptionDataParser () const
 Returns an instance of the OptionDataListParser to be used in parsing options. More...
 
- 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. More...
 
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. More...
 

Protected Attributes

uint16_t address_family_
 Address family: AF_INET or AF_INET6. More...
 
CfgOptionDefPtr cfg_option_def_
 Config option definitions. More...
 

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. More...
 
static void checkRequired (const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
 Checks that all required keywords are present. More...
 
static size_t deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList &params)
 Derives (inherits) parameters from parent scope to a child. More...
 
static isc::asiolink::IOAddress getAddress (const ConstElementPtr &scope, const std::string &name)
 Returns a IOAddress parameter from a scope. More...
 
static bool getBoolean (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a boolean parameter from a scope. More...
 
static double getDouble (const ConstElementPtr &scope, const std::string &name)
 Returns a floating point parameter from a scope. More...
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer parameter from a scope. More...
 
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. More...
 
static const data::Element::PositiongetPosition (const std::string &name, const data::ConstElementPtr parent)
 Utility method that returns position of an element. More...
 
static std::string getString (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a string parameter from a scope. More...
 
static size_t setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values)
 Sets the default values. More...
 
static size_t setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values)
 Sets the default values for all entries in a list. More...
 

Detailed Description

Parser for option data values within a subnet.

This parser iterates over all entries that define options data for a particular subnet and creates a collection of options. If parsing is successful, all these options are added to the Subnet object.

Definition at line 185 of file option_data_parser.h.

Constructor & Destructor Documentation

◆ OptionDataListParser()

isc::dhcp::OptionDataListParser::OptionDataListParser ( const uint16_t  address_family,
CfgOptionDefPtr  cfg_option_def = CfgOptionDefPtr() 
)

Constructor.

Parameters
address_familyAddress family: AF_INET or AF_INET6
cfg_option_defConfig option definitions (optional)

Definition at line 419 of file option_data_parser.cc.

◆ ~OptionDataListParser()

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

Virtual destructor.

Definition at line 195 of file option_data_parser.h.

References isc::dhcp::OptionDataParser::parse().

+ Here is the call graph for this function:

Member Function Documentation

◆ createOptionDataParser()

boost::shared_ptr< OptionDataParser > isc::dhcp::OptionDataListParser::createOptionDataParser ( ) const
protectedvirtual

Returns an instance of the OptionDataListParser to be used in parsing options.

This function can be overridden in the child classes to supply a custom parser for option data.

Returns
an instance of the OptionDataListParser.

Definition at line 440 of file option_data_parser.cc.

References address_family_, and cfg_option_def_.

Referenced by parse().

◆ parse()

void isc::dhcp::OptionDataListParser::parse ( const CfgOptionPtr cfg,
isc::data::ConstElementPtr  option_data_list 
)

Parses a list of options, instantiates them and stores in cfg.

This method expects to get a list of options in option_data_list, iterates over them, creates option objects, wraps them with option descriptor and stores in specified cfg.

Parameters
cfgcreated options will be stored here
option_data_listconfiguration that describes the options

Definition at line 427 of file option_data_parser.cc.

References createOptionDataParser().

Referenced by isc::dhcp::configureDhcp4Server(), isc::dhcp::configureDhcp6Server(), isc::dhcp::HostReservationParser4::parseInternal(), and isc::dhcp::HostReservationParser6::parseInternal().

+ Here is the call graph for this function:

Member Data Documentation

◆ address_family_

uint16_t isc::dhcp::OptionDataListParser::address_family_
protected

Address family: AF_INET or AF_INET6.

Definition at line 220 of file option_data_parser.h.

Referenced by createOptionDataParser().

◆ cfg_option_def_

CfgOptionDefPtr isc::dhcp::OptionDataListParser::cfg_option_def_
protected

Config option definitions.

Definition at line 223 of file option_data_parser.h.

Referenced by createOptionDataParser().


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