![]() |
Kea 3.0.0
|
Maintains a list of ClientClassDef's. More...
#include <client_class_def.h>
Public Member Functions | |
| ClientClassDictionary () | |
| Constructor. | |
| ClientClassDictionary (const ClientClassDictionary &rhs) | |
| ~ClientClassDictionary () | |
| Destructor. | |
| void | addClass (const ClientClassDefPtr &class_def) |
| Adds a new class to the list. | |
| void | addClass (const std::string &name, const ExpressionPtr &match_expr, const std::string &test, bool additional, bool depend_on_known, const CfgOptionPtr &options, CfgOptionDefPtr defs=CfgOptionDefPtr(), isc::data::ConstElementPtr user_context=isc::data::ConstElementPtr(), asiolink::IOAddress next_server=asiolink::IOAddress("0.0.0.0"), const std::string &sname=std::string(), const std::string &filename=std::string(), const util::Triplet< uint32_t > &valid=util::Triplet< uint32_t >(), const util::Triplet< uint32_t > &preferred=util::Triplet< uint32_t >(), bool is_template=false, const util::Optional< uint32_t > &offer_lft=util::Optional< uint32_t >()) |
| Adds a new class to the list. | |
| void | createOptions (const CfgOptionDefPtr &cfg_option_def) |
| Iterates over the classes in the dictionary and recreates the options. | |
| bool | dependOnClass (const std::string &name, std::string &dependent_class) const |
| Checks direct dependency. | |
| bool | empty () const |
| Checks if the class dictionary is empty. | |
| void | encapsulateOptions () const |
| Iterates over the classes in the dictionary and encapsulates suboptions. | |
| bool | equals (const ClientClassDictionary &other) const |
Compares two ClientClassDictionary objects for equality. | |
| ClientClassDefPtr | findClass (const std::string &name) const |
| Fetches the class definition for a given class name. | |
| const ClientClassDefListPtr & | getClasses () const |
| Fetches the dictionary's list of classes. | |
| void | initMatchExpr (uint16_t family) |
| Iterates over the classes in the dictionary and ensures that that match expressions are initialized. | |
| bool | operator!= (const ClientClassDictionary &other) const |
| Inequality operator. | |
| ClientClassDictionary & | operator= (const ClientClassDictionary &rhs) |
| Copy assignment operator. | |
| bool | operator== (const ClientClassDictionary &other) const |
| Equality operator. | |
| void | removeClass (const std::string &name) |
| Removes a given class definition from the dictionary. | |
| void | removeClass (const uint64_t id) |
| Removes a client class by id. | |
| virtual isc::data::ElementPtr | toElement () const |
| Unparse a configuration object. | |
| Public Member Functions inherited from isc::data::CfgToElement | |
| virtual | ~CfgToElement () |
| Destructor. | |
Maintains a list of ClientClassDef's.
Definition at line 362 of file client_class_def.h.
| isc::dhcp::ClientClassDictionary::ClientClassDictionary | ( | ) |
Constructor.
Definition at line 320 of file client_class_def.cc.
Referenced by ClientClassDictionary(), equals(), operator!=(), operator=(), and operator==().
| isc::dhcp::ClientClassDictionary::ClientClassDictionary | ( | const ClientClassDictionary & | rhs | ) |
Definition at line 324 of file client_class_def.cc.
References ClientClassDictionary().
| isc::dhcp::ClientClassDictionary::~ClientClassDictionary | ( | ) |
Destructor.
Definition at line 332 of file client_class_def.cc.
| void isc::dhcp::ClientClassDictionary::addClass | ( | const ClientClassDefPtr & | class_def | ) |
Adds a new class to the list.
| class_def | pointer to class definition to add |
| DuplicateClientClassDef | if class already exists within the dictionary, BadValue if the pointer is empty. |
Definition at line 372 of file client_class_def.cc.
References findClass(), and isc_throw.
| void isc::dhcp::ClientClassDictionary::addClass | ( | const std::string & | name, |
| const ExpressionPtr & | match_expr, | ||
| const std::string & | test, | ||
| bool | additional, | ||
| bool | depend_on_known, | ||
| const CfgOptionPtr & | options, | ||
| CfgOptionDefPtr | defs = CfgOptionDefPtr(), | ||
| isc::data::ConstElementPtr | user_context = isc::data::ConstElementPtr(), | ||
| asiolink::IOAddress | next_server = asiolink::IOAddress("0.0.0.0"), | ||
| const std::string & | sname = std::string(), | ||
| const std::string & | filename = std::string(), | ||
| const util::Triplet< uint32_t > & | valid = util::Triplet<uint32_t>(), | ||
| const util::Triplet< uint32_t > & | preferred = util::Triplet<uint32_t>(), | ||
| bool | is_template = false, | ||
| const util::Optional< uint32_t > & | offer_lft = util::Optional<uint32_t>() ) |
Adds a new class to the list.
| name | Name to assign to this class |
| match_expr | Expression the class will use to determine membership |
| test | Original version of match_expr |
| additional | Original value of the only if additional flag |
| depend_on_known | Using host so will be evaluated later |
| options | Collection of options members should be given |
| defs | Option definitions (optional) |
| user_context | User context (optional) |
| next_server | next-server value for this class (optional) |
| sname | server-name value for this class (optional) |
| filename | boot-file-name value for this class (optional) |
| valid | valid-lifetime triplet (optional) |
| preferred | preferred-lifetime triplet (optional) |
| is_template | true if class is a template class. Defaults to false. |
| offer_lft | the offer lifetime assigned to the class (may be empty if not defined) |
| DuplicateClientClassDef | if class already exists within the dictionary. See dhcp::ClientClassDef::ClientClassDef() for others. |
Definition at line 336 of file client_class_def.cc.
References addClass().
Referenced by addClass(), and operator=().
| void isc::dhcp::ClientClassDictionary::createOptions | ( | const CfgOptionDefPtr & | cfg_option_def | ) |
Iterates over the classes in the dictionary and recreates the options.
| cfg_option_def | set of option definitions to use. |
Definition at line 504 of file client_class_def.cc.
Referenced by isc::dhcp::CBControlDHCPv4::databaseConfigApply(), and isc::dhcp::CBControlDHCPv6::databaseConfigApply().
| bool isc::dhcp::ClientClassDictionary::dependOnClass | ( | const std::string & | name, |
| std::string & | dependent_class ) const |
Checks direct dependency.
| name | The client class name. | |
| [out] | dependent_class | Reference to a variable where the name of the first class depending on the checked class is set. |
Definition at line 436 of file client_class_def.cc.
| bool isc::dhcp::ClientClassDictionary::empty | ( | ) | const |
Checks if the class dictionary is empty.
Definition at line 431 of file client_class_def.cc.
| void isc::dhcp::ClientClassDictionary::encapsulateOptions | ( | ) | const |
Iterates over the classes in the dictionary and encapsulates suboptions.
Definition at line 544 of file client_class_def.cc.
Referenced by isc::dhcp::CBControlDHCPv4::databaseConfigApply(), and isc::dhcp::CBControlDHCPv6::databaseConfigApply().
| bool isc::dhcp::ClientClassDictionary::equals | ( | const ClientClassDictionary & | other | ) | const |
Compares two ClientClassDictionary objects for equality.
| other | Other client class definition to compare to. |
Definition at line 456 of file client_class_def.cc.
References ClientClassDictionary().
Referenced by operator!=(), and operator==().
| ClientClassDefPtr isc::dhcp::ClientClassDictionary::findClass | ( | const std::string & | name | ) | const |
Fetches the class definition for a given class name.
| name | the name of the desired class |
Definition at line 388 of file client_class_def.cc.
Referenced by addClass().
| const ClientClassDefListPtr & isc::dhcp::ClientClassDictionary::getClasses | ( | ) | const |
Fetches the dictionary's list of classes.
Definition at line 426 of file client_class_def.cc.
| void isc::dhcp::ClientClassDictionary::initMatchExpr | ( | uint16_t | family | ) |
Iterates over the classes in the dictionary and ensures that that match expressions are initialized.
| family | Class universe, e.g. AF_INET or AF_INET6. |
Definition at line 478 of file client_class_def.cc.
References isc::eval::EvalContext::acceptAll(), isc::data::Element::create(), isc::dhcp::ExpressionParser::parse(), isc::eval::EvalContext::PARSER_BOOL, and isc::eval::EvalContext::PARSER_STRING.
Referenced by isc::dhcp::CBControlDHCPv4::databaseConfigApply(), and isc::dhcp::CBControlDHCPv6::databaseConfigApply().
|
inline |
Inequality operator.
| other | Other client class dictionary to compare to. |
Definition at line 492 of file client_class_def.h.
References ClientClassDictionary(), and equals().
| ClientClassDictionary & isc::dhcp::ClientClassDictionary::operator= | ( | const ClientClassDictionary & | rhs | ) |
Copy assignment operator.
| rhs | Client class dictionary to be copied from. |
Definition at line 564 of file client_class_def.cc.
References ClientClassDictionary(), addClass(), and isc::data::copy().
|
inline |
Equality operator.
| other | Other client class dictionary to compare to. |
Definition at line 483 of file client_class_def.h.
References ClientClassDictionary(), and equals().
| void isc::dhcp::ClientClassDictionary::removeClass | ( | const std::string & | name | ) |
Removes a given class definition from the dictionary.
Removes the class definition from the map if it exists, otherwise no harm, no foul.
| name | the name of the class to remove |
Definition at line 398 of file client_class_def.cc.
| void isc::dhcp::ClientClassDictionary::removeClass | ( | const uint64_t | id | ) |
Removes a client class by id.
| id | class id. |
Definition at line 410 of file client_class_def.cc.
|
virtual |
Unparse a configuration object.
Implements isc::data::CfgToElement.
Definition at line 554 of file client_class_def.cc.
References isc::data::Element::createList().