Kea 2.7.5
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.
 
typedef ClientClassContainer::iterator iterator
 

Public Member Functions

 ClientClasses ()
 Default constructor.
 
 ClientClasses (const ClientClasses &other)
 Copy constructor.
 
 ClientClasses (const std::string &class_names)
 Constructor from comma separated values.
 
void clear ()
 Clears containers.
 
bool contains (const ClientClass &x) const
 returns if class x belongs to the defined classes
 
bool empty () const
 Check if classes is empty.
 
bool equals (const ClientClasses &other) const
 Compares two ClientClasses container for equality.
 
void erase (const ClientClass &class_name)
 Erase element by name.
 
void fromElement (isc::data::ConstElementPtr list)
 Sets contents from a ListElement.
 
void insert (const ClientClass &class_name)
 Insert an element.
 
bool operator!= (const ClientClasses &other) const
 Compares two ClientClasses container for inequality.
 
ClientClassesoperator= (const ClientClasses &other)
 Assigns the contents of on container to another.
 
bool operator== (const ClientClasses &other) const
 Compares two ClientClasses containers for equality.
 
size_t size () const
 Returns the number of classes.
 
isc::data::ElementPtr toElement () const
 Returns all class names as an ElementPtr of type ListElement.
 
std::string toText (const std::string &separator=", ") const
 Returns all class names as text.
 
const_iterator cbegin () const
 Iterators to the first element.
 
const_iterator begin () const
 
iterator begin ()
 
const_iterator cend () const
 Iterators to the past the end element.
 
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 108 of file classify.h.

Member Typedef Documentation

◆ const_iterator

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

Type of iterators.

Definition at line 112 of file classify.h.

◆ iterator

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

Definition at line 113 of file classify.h.

Constructor & Destructor Documentation

◆ ClientClasses() [1/3]

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

Default constructor.

Definition at line 116 of file classify.h.

◆ ClientClasses() [2/3]

isc::dhcp::ClientClasses::ClientClasses ( const std::string & 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:

◆ ClientClasses() [3/3]

isc::dhcp::ClientClasses::ClientClasses ( const ClientClasses & other)

Copy constructor.

Parameters
otherClientClasses object to be copied.

Definition at line 39 of file classify.cc.

References insert().

+ Here is the call graph for this function:

Member Function Documentation

◆ begin() [1/2]

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

Definition at line 185 of file classify.h.

◆ begin() [2/2]

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

Definition at line 182 of file classify.h.

◆ cbegin()

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

Iterators to the first element.

Definition at line 179 of file classify.h.

Referenced by equals().

◆ cend()

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

Iterators to the past the end element.

Definition at line 192 of file classify.h.

Referenced by equals().

◆ clear()

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

Clears containers.

Definition at line 210 of file classify.h.

Referenced by fromElement(), and operator=().

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

Referenced by isc::dhcp::Pool::addAdditionalClass(), isc::dhcp::Network::addAdditionalClass(), isc::dhcp::Pkt::addAdditionalClass(), isc::dhcp::Pkt::addClass(), isc::dhcp::Pkt::addSubClass(), isc::dhcp::OptionDescriptor::allowedForClientClasses(), and isc::dhcp::Pkt::inClass().

◆ empty()

bool isc::dhcp::ClientClasses::empty ( ) const
inline

Check if classes is empty.

Definition at line 165 of file classify.h.

Referenced by isc::dhcp::OptionDescriptor::allowedForClientClasses().

◆ end() [1/2]

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

Definition at line 198 of file classify.h.

◆ end() [2/2]

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

Definition at line 195 of file classify.h.

◆ equals()

bool isc::dhcp::ClientClasses::equals ( const ClientClasses & other) const

Compares two ClientClasses container for equality.

Returns
True if the two containers are equal, false otherwise.

Definition at line 104 of file classify.cc.

References cbegin(), cend(), and size().

Referenced by operator!=(), and operator==().

+ Here is the call graph for this function:

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

◆ fromElement()

void isc::dhcp::ClientClasses::fromElement ( isc::data::ConstElementPtr list)

Sets contents from a ListElement.

Parameters
listJSON list of classes from which to populate the container.
Exceptions
BadValueif the element is not a list or contents are invalid

Definition at line 85 of file classify.cc.

References clear(), insert(), isc_throw, isc::data::Element::list, and isc::data::Element::string.

+ Here is the call graph for this function:

◆ insert()

◆ operator!=()

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

Compares two ClientClasses container for inequality.

Returns
True if the two containers are not equal, false otherwise.

Definition at line 148 of file classify.h.

References equals().

+ Here is the call graph for this function:

◆ operator=()

ClientClasses & isc::dhcp::ClientClasses::operator= ( const ClientClasses & other)

Assigns the contents of on container to another.

Definition at line 109 of file classify.cc.

References clear(), and insert().

+ Here is the call graph for this function:

◆ operator==()

bool isc::dhcp::ClientClasses::operator== ( const ClientClasses & other) const
inline

Compares two ClientClasses containers for equality.

Returns
True if the two containers are equal, false otherwise.

Definition at line 141 of file classify.h.

References equals().

+ Here is the call graph for this function:

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

Referenced by isc::dhcp::OptionDescriptor::allowedForClientClasses(), and equals().

◆ toElement()

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

Returns all class names as an ElementPtr of type ListElement.

Returns
the list

Definition at line 76 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 61 of file classify.cc.


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