![]() |
Kea 3.0.0
|
parser for a single pool definition More...
#include <dhcp_parsers.h>
Public Member Functions | |
| virtual | ~PoolParser () |
| destructor. | |
| virtual void | parse (PoolStoragePtr pools, isc::data::ConstElementPtr pool_structure, const uint16_t address_family, bool encapsulate_options=true) |
| parses the actual structure | |
| 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 boost::shared_ptr< OptionDataListParser > | createOptionDataListParser (const uint16_t address_family) const |
Returns an instance of the OptionDataListParser to be used in parsing the option-data structure. | |
| virtual PoolPtr | poolMaker (isc::asiolink::IOAddress &addr, uint32_t len, int32_t ptype=0)=0 |
| Creates a Pool object given a IPv4 prefix and the prefix length. | |
| virtual PoolPtr | poolMaker (isc::asiolink::IOAddress &min, isc::asiolink::IOAddress &max, int32_t ptype=0)=0 |
| Creates a Pool object given starting and ending IP addresses. | |
| 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. | |
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 ¶ms) |
| 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::Position & | getPosition (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. | |
parser for a single pool definition
This abstract parser handles pool definitions, i.e. a list of entries of one of two syntaxes: min-max and prefix/len. Pool objects are created and stored in chosen PoolStorage container.
It is useful for parsing Dhcp<4/6>/subnet<4/6>[X]/pools[X] structure.
Definition at line 290 of file dhcp_parsers.h.
|
inlinevirtual |
destructor.
Definition at line 294 of file dhcp_parsers.h.
|
protectedvirtual |
Returns an instance of the OptionDataListParser to be used in parsing the option-data structure.
This function can be overridden in the child classes to supply a custom parser for option data.
| address_family | AF_INET (for DHCPv4) or AF_INET6 (for DHCPv6). |
OptionDataListParser. Definition at line 547 of file dhcp_parsers.cc.
Referenced by parse().
|
virtual |
parses the actual structure
This method parses the actual list of interfaces. No validation is done at this stage, everything is interpreted as interface name.
| pools | is the storage in which to store the parsed pool |
| pool_structure | a single entry on a list of pools |
| address_family | AF_INET (for DHCPv4) or AF_INET6 (for DHCPv6). |
| encapsulate_options | a boolean parameter indicating if the parsed options should be encapsulated with suboptions. |
| isc::dhcp::DhcpConfigError | when pool parsing fails |
Definition at line 378 of file dhcp_parsers.cc.
References isc::dhcp::Pool::addAdditionalClass(), isc::dhcp::Pool::allowClientClass(), isc::data::SimpleParser::checkKeywords(), createOptionDataListParser(), isc::dhcp::BaseNetworkParser::getAdditionalClassesElem(), isc::dhcp::BaseNetworkParser::getClientClassesElem(), isc_throw, isc::data::Element::map, isc::dhcp::BaseNetworkParser::parseDdnsParameters(), isc::dhcp::SimpleParser4::POOL4_PARAMETERS, isc::dhcp::SimpleParser6::POOL6_PARAMETERS, and poolMaker().
|
protectedpure virtual |
Creates a Pool object given a IPv4 prefix and the prefix length.
| addr | is the IP prefix of the pool. |
| len | is the prefix length. |
| ptype | is the type of pool to create. |
Implemented in isc::dhcp::Pool4Parser, and isc::dhcp::Pool6Parser.
Referenced by parse().
|
protectedpure virtual |
Creates a Pool object given starting and ending IP addresses.
| min | is the first IP address in the pool. |
| max | is the last IP address in the pool. |
| ptype | is the type of pool to create (not used by all derivations) |
Implemented in isc::dhcp::Pool4Parser, and isc::dhcp::Pool6Parser.