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

Container for storing client class names. More...

#include <classify.h>

Public Types

typedef std::list< ClientClass >::const_iterator const_iterator
 Type of iterators. More...
 

Public Member Functions

 ClientClasses ()
 Default constructor. More...
 
 ClientClasses (const ClientClass &class_names)
 Constructor from comma separated values. More...
 
const_iterator cbegin () const
 Iterator to the first element. More...
 
const_iterator cend () const
 Iterator to the past the end element. More...
 
void clear ()
 Clears containers. More...
 
bool contains (const ClientClass &x) const
 returns if class x belongs to the defined classes More...
 
bool empty () const
 Check if classes is empty. More...
 
void erase (const ClientClass &class_name)
 Erase element by name. More...
 
void insert (const ClientClass &class_name)
 Insert an element. More...
 
size_t size () const
 Returns the number of classes. More...
 
std::string toText (const std::string &separator=", ") const
 Returns all class names as text. More...
 

Detailed Description

Container for storing client class names.

Both a list to iterate on it in insert order and unordered set of names for existence.

Definition at line 43 of file classify.h.

Member Typedef Documentation

Type of iterators.

Definition at line 47 of file classify.h.

Constructor & Destructor Documentation

isc::dhcp::ClientClasses::ClientClasses ( )
inline

Default constructor.

Definition at line 50 of file classify.h.

isc::dhcp::ClientClasses::ClientClasses ( const ClientClass class_names)

Constructor from comma separated values.

Parameters
class_namesA string containing a client classes separated with commas. The class names are trimmed before insertion to the set.

Definition at line 19 of file classify.cc.

References insert(), and isc::util::str::trim().

+ Here is the call graph for this function:

Member Function Documentation

void isc::dhcp::ClientClasses::clear ( )
inline

Clears containers.

Definition at line 104 of file classify.h.

bool isc::dhcp::ClientClasses::contains ( const ClientClass x) const
inline

returns if class x belongs to the defined classes

Parameters
xclient class to be checked
Returns
true if x belongs to the classes

Definition at line 99 of file classify.h.

Referenced by isc::dhcp::Pkt::addClass(), isc::dhcp::Pool::clientSupported(), isc::dhcp::Network::clientSupported(), isc::dhcp::Pkt::inClass(), and isc::dhcp::Pool::requireClientClass().

void isc::dhcp::ClientClasses::erase ( const ClientClass class_name)

Erase element by name.

Parameters
class_nameThe name of the class to erase.

Definition at line 34 of file classify.cc.

void isc::dhcp::ClientClasses::insert ( const ClientClass class_name)
inline

Insert an element.

Parameters
class_nameThe name of the class to insert

Definition at line 62 of file classify.h.

Referenced by isc::dhcp::Pkt::addClass(), ClientClasses(), isc::dhcp::Pool::requireClientClass(), isc::dhcp::Dhcpv6Srv::requiredClassify(), and isc::dhcp::Dhcpv4Srv::requiredClassify().

size_t isc::dhcp::ClientClasses::size ( ) const
inline

Returns the number of classes.

Note
; in C++ 11 list size complexity is constant so there is no advantage to use the set part.

Definition at line 81 of file classify.h.

std::string isc::dhcp::ClientClasses::toText ( const std::string &  separator = ", ") const

Returns all class names as text.

Parameters
separatorSeparator to be used between class names. The default separator comprises comma sign followed by space character.

Definition at line 40 of file classify.cc.

References cbegin(), and cend().

Referenced by isc::dhcp::Dhcpv4Exchange::Dhcpv4Exchange(), and isc::dhcp::Dhcpv6Srv::setReservedClientClasses().

+ Here is the call graph for this function:


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