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

Container for storing client class names. More...

#include <classify.h>

Public Types

typedef ClientClassContainer::const_iterator const_iterator
 Type of iterators. More...
 
typedef ClientClassContainer::iterator iterator
 

Public Member Functions

 ClientClasses ()
 Default constructor. More...
 
 ClientClasses (const ClientClass &class_names)
 Constructor from comma separated values. 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...
 
isc::data::ElementPtr toElement () const
 Returns all class names as an ElementPtr of type ListElement. More...
 
std::string toText (const std::string &separator=", ") const
 Returns all class names as text. More...
 
const_iterator cbegin () const
 Iterators to the first element. More...
 
const_iterator begin () const
 
iterator begin ()
 
const_iterator cend () const
 Iterators to the past the end element. More...
 
const_iterator end () const
 
iterator end ()
 

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 70 of file classify.h.

Member Typedef Documentation

◆ const_iterator

typedef ClientClassContainer::const_iterator isc::dhcp::ClientClasses::const_iterator

Type of iterators.

Definition at line 74 of file classify.h.

◆ iterator

typedef ClientClassContainer::iterator isc::dhcp::ClientClasses::iterator

Definition at line 75 of file classify.h.

Constructor & Destructor Documentation

◆ ClientClasses() [1/2]

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

Default constructor.

Definition at line 78 of file classify.h.

◆ ClientClasses() [2/2]

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 25 of file classify.cc.

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

+ Here is the call graph for this function:

Member Function Documentation

◆ begin() [1/2]

const_iterator isc::dhcp::ClientClasses::begin ( ) const
inline

Definition at line 117 of file classify.h.

◆ begin() [2/2]

iterator isc::dhcp::ClientClasses::begin ( )
inline

Definition at line 120 of file classify.h.

◆ cbegin()

◆ cend()

◆ clear()

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

Clears containers.

Definition at line 145 of file classify.h.

◆ contains()

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

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 49 of file classify.cc.

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

◆ empty()

◆ end() [1/2]

const_iterator isc::dhcp::ClientClasses::end ( ) const
inline

Definition at line 130 of file classify.h.

◆ end() [2/2]

iterator isc::dhcp::ClientClasses::end ( )
inline

Definition at line 133 of file classify.h.

◆ erase()

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 40 of file classify.cc.

◆ insert()

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

◆ size()

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 108 of file classify.h.

◆ toElement()

ElementPtr isc::dhcp::ClientClasses::toElement ( ) const

Returns all class names as an ElementPtr of type ListElement.

Returns
the list

Definition at line 67 of file classify.cc.

References isc::data::Element::create(), and isc::data::Element::createList().

+ Here is the call graph for this function:

◆ toText()

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.
Returns
the string representation of all classes

Definition at line 55 of file classify.cc.

References cbegin(), and cend().

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

+ Here is the call graph for this function:

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