Kea
1.9.9-git
|
Maintains a list of ClientClassDef's. More...
#include <client_class_def.h>
Public Member Functions | |
ClientClassDictionary () | |
Constructor. More... | |
ClientClassDictionary (const ClientClassDictionary &rhs) | |
~ClientClassDictionary () | |
Destructor. More... | |
void | addClass (const std::string &name, const ExpressionPtr &match_expr, const std::string &test, bool required, 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 Triplet< uint32_t > &valid=Triplet< uint32_t >()) |
Adds a new class to the list. More... | |
void | addClass (ClientClassDefPtr &class_def) |
Adds a new class to the list. More... | |
bool | dependOnClass (const std::string &name, std::string &dependent_class) const |
Checks direct dependency. More... | |
bool | equals (const ClientClassDictionary &other) const |
Compares two ClientClassDictionary objects for equality. More... | |
ClientClassDefPtr | findClass (const std::string &name) const |
Fetches the class definition for a given class name. More... | |
const ClientClassDefListPtr & | getClasses () const |
Fetches the dictionary's list of classes. More... | |
bool | operator!= (const ClientClassDictionary &other) const |
Inequality operator. More... | |
bool | operator== (const ClientClassDictionary &other) const |
Equality operator. More... | |
void | removeClass (const std::string &name) |
Removes a given class definition from the dictionary. More... | |
virtual isc::data::ElementPtr | toElement () const |
Unparse a configuration object. More... | |
Public Member Functions inherited from isc::data::CfgToElement | |
virtual | ~CfgToElement () |
Destructor. More... | |
Maintains a list of ClientClassDef's.
Definition at line 284 of file client_class_def.h.
isc::dhcp::ClientClassDictionary::ClientClassDictionary | ( | ) |
Constructor.
Definition at line 223 of file client_class_def.cc.
isc::dhcp::ClientClassDictionary::ClientClassDictionary | ( | const ClientClassDictionary & | rhs | ) |
Definition at line 227 of file client_class_def.cc.
References addClass(), and isc::data::copy().
isc::dhcp::ClientClassDictionary::~ClientClassDictionary | ( | ) |
Destructor.
Definition at line 235 of file client_class_def.cc.
void isc::dhcp::ClientClassDictionary::addClass | ( | const std::string & | name, |
const ExpressionPtr & | match_expr, | ||
const std::string & | test, | ||
bool | required, | ||
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 Triplet< uint32_t > & | valid = Triplet<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 |
required | Original value of the only if required 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) |
DuplicateClientClassDef | if class already exists within the dictionary. See dhcp::ClientClassDef::ClientClassDef() for others. |
Definition at line 239 of file client_class_def.cc.
Referenced by ClientClassDictionary().
void isc::dhcp::ClientClassDictionary::addClass | ( | 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 265 of file client_class_def.cc.
References findClass(), and isc_throw.
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 308 of file client_class_def.cc.
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 329 of file client_class_def.cc.
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 281 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 303 of file client_class_def.cc.
|
inline |
Inequality operator.
other | Other client class dictionary to compare to. |
Definition at line 382 of file client_class_def.h.
References equals().
|
inline |
Equality operator.
other | Other client class dictionary to compare to. |
Definition at line 373 of file client_class_def.h.
References 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 291 of file client_class_def.cc.
|
virtual |
Unparse a configuration object.
Implements isc::data::CfgToElement.
Definition at line 351 of file client_class_def.cc.