Kea 2.7.6
isc::dhcp::OptionDescriptor Class Reference

Option descriptor. More...

#include <cfg_option.h>

+ Inheritance diagram for isc::dhcp::OptionDescriptor:

Public Member Functions

 OptionDescriptor (bool persist, bool cancel)
 Constructor.
 
 OptionDescriptor (const OptionDescriptor &desc)
 Copy constructor.
 
 OptionDescriptor (const OptionPtr &opt, bool persist, bool cancel, const std::string &formatted_value="", data::ConstElementPtr user_context=data::ConstElementPtr())
 Constructor.
 
void addClientClass (const std::string &class_name)
 Adds new client class for which the option is allowed.
 
bool allowedForClientClasses (const ClientClasses &cclasses) const
 Validates an OptionDescriptor's client-classes against a list of classes.
 
bool equals (const OptionDescriptor &other) const
 Checks if the one descriptor is equal to another.
 
bool operator!= (const OptionDescriptor &other) const
 Inequality operator.
 
OptionDescriptoroperator= (const OptionDescriptor &other)
 Assignment operator.
 
bool operator== (const OptionDescriptor &other) const
 Equality operator.
 
- Public Member Functions inherited from isc::data::StampedElement
 StampedElement ()
 Constructor.
 
void delServerTag (const std::string &server_tag)
 Deletes server tag.
 
isc::data::ElementPtr getMetadata () const
 Returns an object representing metadata to be returned with objects from the configuration backend.
 
std::set< ServerTaggetServerTags () const
 Returns server tags.
 
bool hasAllServerTag () const
 Checks if the element has 'all' server tag.
 
bool hasServerTag (const ServerTag &server_tag) const
 Checks if the element has the given server tag.
 
void setServerTag (const std::string &server_tag)
 Adds new server tag.
 
- Public Member Functions inherited from isc::data::BaseStampedElement
 BaseStampedElement ()
 Constructor.
 
uint64_t getId () const
 Returns element's database identifier.
 
boost::posix_time::ptime getModificationTime () const
 Returns timestamp.
 
void setId (const uint64_t id)
 Sets element's database identifier.
 
void setModificationTime (const boost::posix_time::ptime &timestamp)
 Sets timestamp to the explicitly provided value.
 
void updateModificationTime ()
 Sets timestamp to the current time.
 
- Public Member Functions inherited from isc::data::UserContext
void contextToElement (data::ElementPtr map) const
 Merge unparse a user_context object.
 
data::ConstElementPtr getContext () const
 Returns const pointer to the user context.
 
void setContext (const data::ConstElementPtr &ctx)
 Sets user context.
 

Static Public Member Functions

static OptionDescriptorPtr create (bool persist, bool cancel)
 Factory function creating an instance of the OptionDescriptor.
 
static OptionDescriptorPtr create (const OptionDescriptor &desc)
 Factory function creating an instance of the OptionDescriptor.
 
static OptionDescriptorPtr create (const OptionPtr &opt, bool persist, bool cancel, const std::string &formatted_value="", data::ConstElementPtr user_context=data::ConstElementPtr())
 Factory function creating an instance of the OptionDescriptor.
 
- Static Public Member Functions inherited from isc::data::UserContext
static data::ElementPtr toElement (data::ConstElementPtr map)
 Copy an Element map.
 

Public Attributes

bool cancelled_
 Cancelled flag.
 
ClientClasses client_classes_
 Collection of classes for the which option is allowed.
 
std::string formatted_value_
 Option value in textual (CSV) format.
 
OptionPtr option_
 Option instance.
 
bool persistent_
 Persistence flag.
 
std::string space_name_
 Option space name.
 

Additional Inherited Members

- Protected Attributes inherited from isc::data::BaseStampedElement
uint64_t id_
 Database identifier of the configuration element.
 
boost::posix_time::ptime timestamp_
 Holds timestamp value.
 
- Protected Attributes inherited from isc::data::UserContext
data::ConstElementPtr user_context_
 Pointer to the user context (may be NULL)
 

Detailed Description

Option descriptor.

Option descriptor holds instance of an option and additional information for this option. This information comprises whether this option is sent to DHCP client only on request (persistent = false) or always (persistent = true), or must never send (cancelled = true).

Definition at line 48 of file cfg_option.h.

Constructor & Destructor Documentation

◆ OptionDescriptor() [1/3]

isc::dhcp::OptionDescriptor::OptionDescriptor ( const OptionPtr & opt,
bool persist,
bool cancel,
const std::string & formatted_value = "",
data::ConstElementPtr user_context = data::ConstElementPtr() )
inline

Constructor.

Parameters
optoption instance.
persistif true, option is always sent.
cancelif true, option is never sent.
formatted_valueoption value in the textual format (optional).
user_contextuser context (optional).

Definition at line 104 of file cfg_option.h.

References isc::data::UserContext::setContext().

+ Here is the call graph for this function:

◆ OptionDescriptor() [2/3]

isc::dhcp::OptionDescriptor::OptionDescriptor ( bool persist,
bool cancel )
inline

Constructor.

Parameters
persistif true option is always sent.
cancelif true, option is never sent.

Definition at line 117 of file cfg_option.h.

◆ OptionDescriptor() [3/3]

isc::dhcp::OptionDescriptor::OptionDescriptor ( const OptionDescriptor & desc)
inline

Copy constructor.

Parameters
descoption descriptor to be copied.

Definition at line 124 of file cfg_option.h.

References isc::data::UserContext::getContext(), and isc::data::UserContext::setContext().

+ Here is the call graph for this function:

Member Function Documentation

◆ addClientClass()

void isc::dhcp::OptionDescriptor::addClientClass ( const std::string & class_name)

Adds new client class for which the option is allowed.

Parameters
class_nameClass name.

Definition at line 55 of file cfg_option.cc.

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

Referenced by isc::dhcp::OptionDataParser::createOption().

+ Here is the call graph for this function:

◆ allowedForClientClasses()

bool isc::dhcp::OptionDescriptor::allowedForClientClasses ( const ClientClasses & cclasses) const

Validates an OptionDescriptor's client-classes against a list of classes.

Parameters
cclasseslist of ClientClasses to validate against
Returns
True if descriptor's client-classes is empty or at least one of its members is found in the validation list.

Definition at line 63 of file cfg_option.cc.

References client_classes_, isc::dhcp::ClientClasses::empty(), and isc::dhcp::ClientClasses::intersects().

Referenced by isc::dhcp::Dhcpv4Srv::appendBasicOptions(), isc::dhcp::Dhcpv4Srv::appendRequestedOptions(), isc::dhcp::Dhcpv6Srv::appendRequestedOptions(), isc::dhcp::Dhcpv4Srv::appendRequestedVendorOptions(), and isc::dhcp::Dhcpv6Srv::appendRequestedVendorOptions().

+ Here is the call graph for this function:

◆ create() [1/3]

OptionDescriptorPtr isc::dhcp::OptionDescriptor::create ( bool persist,
bool cancel )
static

Factory function creating an instance of the OptionDescriptor.

Parameters
persistif true option is always sent.
cancelif true, option is never sent.
Returns
Pointer to the OptionDescriptor instance.

Definition at line 36 of file cfg_option.cc.

◆ create() [2/3]

OptionDescriptorPtr isc::dhcp::OptionDescriptor::create ( const OptionDescriptor & desc)
static

Factory function creating an instance of the OptionDescriptor.

Parameters
descoption descriptor to be copied.
Returns
Pointer to the OptionDescriptor instance.

Definition at line 41 of file cfg_option.cc.

◆ create() [3/3]

OptionDescriptorPtr isc::dhcp::OptionDescriptor::create ( const OptionPtr & opt,
bool persist,
bool cancel,
const std::string & formatted_value = "",
data::ConstElementPtr user_context = data::ConstElementPtr() )
static

Factory function creating an instance of the OptionDescriptor.

Parameters
optoption instance.
persistif true, option is always sent.
cancelif true, option is never sent.
formatted_valueoption value in the textual format (optional).
user_contextuser context (optional).
Returns
Pointer to the OptionDescriptor instance.

Definition at line 27 of file cfg_option.cc.

◆ equals()

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

Checks if the one descriptor is equal to another.

Parameters
otherOther option descriptor to compare to.
Returns
true if descriptors equal, false otherwise.

Definition at line 46 of file cfg_option.cc.

References cancelled_, formatted_value_, option_, persistent_, and space_name_.

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

◆ operator!=()

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

Inequality operator.

Parameters
otherOther option descriptor to compare to.
Returns
true if descriptors unequal, false otherwise.

Definition at line 205 of file cfg_option.h.

References equals().

+ Here is the call graph for this function:

◆ operator=()

OptionDescriptor & isc::dhcp::OptionDescriptor::operator= ( const OptionDescriptor & other)
inline

Assignment operator.

Parameters
otheroption descriptor to be assigned from.

Definition at line 138 of file cfg_option.h.

References cancelled_, client_classes_, formatted_value_, isc::data::UserContext::getContext(), option_, persistent_, isc::data::UserContext::setContext(), and space_name_.

+ Here is the call graph for this function:

◆ operator==()

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

Equality operator.

Parameters
otherOther option descriptor to compare to.
Returns
true if descriptors equal, false otherwise.

Definition at line 196 of file cfg_option.h.

References equals().

+ Here is the call graph for this function:

Member Data Documentation

◆ cancelled_

bool isc::dhcp::OptionDescriptor::cancelled_

Cancelled flag.

If true, option is never sent to the client. If false, option is sent when it should.

Note
: When true the action of this flag is final i.e. it can't be overridden at a more specific level and has precedence over persist.

Definition at line 65 of file cfg_option.h.

Referenced by isc::dhcp::OptionDataParser::createOption(), equals(), and operator=().

◆ client_classes_

ClientClasses isc::dhcp::OptionDescriptor::client_classes_

Collection of classes for the which option is allowed.

An empty list means no class restrictions.

Definition at line 95 of file cfg_option.h.

Referenced by addClientClass(), allowedForClientClasses(), isc::dhcp::OptionDataParser::createOption(), and operator=().

◆ formatted_value_

std::string isc::dhcp::OptionDescriptor::formatted_value_

Option value in textual (CSV) format.

This field is used to convey option value in human readable format, the same as used to specify option value in the server configuration. This value is optional and can be held in the host reservations database instead of the binary format.

Note that this value is carried in the option descriptor, rather than Option instance because it is a server specific value (same as persistence flag).

An example of the formatted value is: "2001:db8:1::1, 23, some text" for the option which carries IPv6 address, a number and a text.

Definition at line 80 of file cfg_option.h.

Referenced by isc::dhcp::CfgOption::createDescriptorOption(), isc::dhcp::OptionDataParser::createOption(), equals(), and operator=().

◆ option_

◆ persistent_

bool isc::dhcp::OptionDescriptor::persistent_

Persistence flag.

If true, option is always sent to the client. If false, option is sent to the client when requested using ORO or PRL option.

Definition at line 57 of file cfg_option.h.

Referenced by isc::dhcp::OptionDataParser::createOption(), equals(), and operator=().

◆ space_name_

std::string isc::dhcp::OptionDescriptor::space_name_

Option space name.

Options are associated with option spaces. Typically, such association is made when the option is stored in the OptionContainer. However, in some cases it is also required to associate option with the particular option space outside of the container. In particular, when the option is fetched from a database. The database configuration backend will set option space upon return of the option. In other cases this value won't be set.

Definition at line 91 of file cfg_option.h.

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


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