Kea  1.9.9-git
isc::dhcp::ClientClassDictionary Class Reference

Maintains a list of ClientClassDef's. More...

#include <client_class_def.h>

+ Inheritance diagram for isc::dhcp::ClientClassDictionary:

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 ClientClassDefListPtrgetClasses () 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...
 

Detailed Description

Maintains a list of ClientClassDef's.

Definition at line 284 of file client_class_def.h.

Constructor & Destructor Documentation

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().

+ Here is the call graph for this function:

isc::dhcp::ClientClassDictionary::~ClientClassDictionary ( )

Destructor.

Definition at line 235 of file client_class_def.cc.

Member Function Documentation

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.

Parameters
nameName to assign to this class
match_exprExpression the class will use to determine membership
testOriginal version of match_expr
requiredOriginal value of the only if required flag
depend_on_knownUsing host so will be evaluated later
optionsCollection of options members should be given
defsOption definitions (optional)
user_contextUser context (optional)
next_servernext-server value for this class (optional)
snameserver-name value for this class (optional)
filenameboot-file-name value for this class (optional)
validvalid-lifetime triplet (optional)
Exceptions
DuplicateClientClassDefif 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.

Parameters
class_defpointer to class definition to add
Exceptions
DuplicateClientClassDefif 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.

+ Here is the call graph for this function:

bool isc::dhcp::ClientClassDictionary::dependOnClass ( const std::string &  name,
std::string &  dependent_class 
) const

Checks direct dependency.

Parameters
nameThe client class name.
[out]dependent_classReference to a variable where the name of the first class depending on the checked class is set.
Returns
true if a definition depends on the class name, false if none.

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.

Parameters
otherOther client class definition to compare to.
Returns
true if descriptors equal, false otherwise.

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.

Parameters
namethe name of the desired class
Returns
ClientClassDefPtr to the desired class if found, or an empty pointer if not.

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.

Returns
ClientClassDefListPtr to the list of classes

Definition at line 303 of file client_class_def.cc.

bool isc::dhcp::ClientClassDictionary::operator!= ( const ClientClassDictionary other) const
inline

Inequality operator.

Parameters
otherOther client class dictionary to compare to.
Returns
true if the dictionaries are not equal, false otherwise.

Definition at line 382 of file client_class_def.h.

References equals().

+ Here is the call graph for this function:

bool isc::dhcp::ClientClassDictionary::operator== ( const ClientClassDictionary other) const
inline

Equality operator.

Parameters
otherOther client class dictionary to compare to.
Returns
true if the dictionaries are equal, false otherwise.

Definition at line 373 of file client_class_def.h.

References equals().

+ Here is the call graph for this function:

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.

Parameters
namethe name of the class to remove

Definition at line 291 of file client_class_def.cc.

ElementPtr isc::dhcp::ClientClassDictionary::toElement ( ) const
virtual

Unparse a configuration object.

Returns
a pointer to unparsed configuration

Implements isc::data::CfgToElement.

Definition at line 351 of file client_class_def.cc.


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