Kea 2.7.6
|
Forward declaration to OptionIntArray. More...
#include <option_int_array.h>
Public Member Functions | |
OptionIntArray (const Option::Universe u, const uint16_t type) | |
Constructor. | |
OptionIntArray (const Option::Universe u, const uint16_t type, const OptionBuffer &buf) | |
Constructor. | |
OptionIntArray (const Option::Universe u, const uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) | |
Constructor. | |
void | addValue (const T value) |
Adds a new value to the array. | |
virtual OptionPtr | clone () const |
Copies this option and returns a pointer to the copy. | |
const std::vector< T > & | getValues () const |
Return collection of option values. | |
virtual uint16_t | len () const |
returns complete length of option | |
virtual void | pack (isc::util::OutputBuffer &buf, bool check=true) const |
Writes option in wire-format to buf, returns pointer to first unused byte after stored option. | |
void | setValues (const std::vector< T > &values) |
Set option values. | |
virtual std::string | toText (int indent=0) const |
Returns textual representation of the option. | |
virtual void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end) |
Parses received buffer. | |
Public Member Functions inherited from isc::dhcp::Option | |
Option (const Option &source) | |
Copy constructor. | |
Option (Universe u, uint16_t type) | |
ctor, used for options constructed, usually during transmission | |
Option (Universe u, uint16_t type, const OptionBuffer &data) | |
Constructor, used for received options. | |
Option (Universe u, uint16_t type, OptionBufferConstIter first, OptionBufferConstIter last) | |
Constructor, used for received options. | |
virtual | ~Option () |
just to force that every option has virtual dtor | |
void | addOption (OptionPtr opt) |
Adds a sub-option. | |
bool | delOption (uint16_t type) |
Attempts to delete first suboption of requested type. | |
virtual bool | equals (const Option &other) const |
Checks if two options are equal. | |
bool | equals (const OptionPtr &other) const |
Checks if options are equal. | |
virtual const OptionBuffer & | getData () const |
Returns pointer to actual data. | |
std::string | getEncapsulatedSpace () const |
Returns the name of the option space encapsulated by this option. | |
virtual uint16_t | getHeaderLen () const |
Returns length of header (2 for v4, 4 for v6) | |
OptionCollection & | getMutableOptions () |
Returns all encapsulated options. | |
OptionPtr | getOption (uint16_t type) const |
Returns shared_ptr to suboption of specific type. | |
const OptionCollection & | getOptions () const |
Returns all encapsulated options. | |
void | getOptionsCopy (OptionCollection &options_copy) const |
Performs deep copy of suboptions. | |
uint16_t | getType () const |
Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6) | |
uint16_t | getUint16 () const |
Returns content of first word. | |
uint32_t | getUint32 () const |
Returns content of first double word. | |
uint8_t | getUint8 () const |
Returns content of first byte. | |
Universe | getUniverse () const |
returns option universe (V4 or V6) | |
Option & | operator= (const Option &rhs) |
Assignment operator. | |
template<typename InputIterator > | |
void | setData (InputIterator first, InputIterator last) |
Sets content of this option from buffer. | |
void | setEncapsulatedSpace (const std::string &encapsulated_space) |
Sets the name of the option space encapsulated by this option. | |
void | setUint16 (uint16_t value) |
Sets content of this option to a single uint16 value. | |
void | setUint32 (uint32_t value) |
Sets content of this option to a single uint32 value. | |
void | setUint8 (uint8_t value) |
Sets content of this option to a single uint8 value. | |
virtual std::vector< uint8_t > | toBinary (const bool include_header=false) const |
Returns binary representation of the option. | |
virtual std::string | toHexString (const bool include_header=false) const |
Returns string containing hexadecimal representation of option. | |
virtual std::string | toString () const |
Returns string representation of the value. | |
virtual bool | valid () const |
returns if option is valid (e.g. | |
Additional Inherited Members | |
Public Types inherited from isc::dhcp::Option | |
typedef OptionPtr | Factory(Option::Universe u, uint16_t type, const OptionBuffer &buf) |
a factory function prototype | |
enum | Universe { V4 , V6 } |
defines option universe DHCPv4 or DHCPv6 More... | |
Static Public Member Functions inherited from isc::dhcp::Option | |
static OptionPtr | create (Universe u, uint16_t type) |
Factory function creating an instance of the Option . | |
static OptionPtr | create (Universe u, uint16_t type, const OptionBuffer &data) |
Factory function creating an instance of the Option . | |
static OptionPtr | factory (Option::Universe u, uint16_t type) |
Factory function to create instance of option. | |
static OptionPtr | factory (Option::Universe u, uint16_t type, const OptionBuffer &buf) |
Factory function to create instance of option. | |
Static Public Attributes inherited from isc::dhcp::Option | |
static bool | lenient_parsing_ |
Governs whether options should be parsed less strictly. | |
static const size_t | OPTION4_HDR_LEN = 2 |
length of the usual DHCPv4 option header (there are exceptions) | |
static const size_t | OPTION6_HDR_LEN = 4 |
length of any DHCPv6 option header | |
Protected Member Functions inherited from isc::dhcp::Option | |
void | check () const |
A protected method used for option correctness. | |
template<typename OptionType > | |
OptionPtr | cloneInternal () const |
Copies this option and returns a pointer to the copy. | |
std::string | headerToText (const int indent=0, const std::string &type_name="") const |
Returns option header in the textual format. | |
void | packHeader (isc::util::OutputBuffer &buf, bool check=true) const |
Store option's header in a buffer. | |
void | packOptions (isc::util::OutputBuffer &buf, bool check=true) const |
Store sub options in a buffer. | |
std::string | suboptionsToText (const int indent=0) const |
Returns collection of suboptions in the textual format. | |
void | unpackOptions (const OptionBuffer &buf) |
Builds a collection of sub options from the buffer. | |
Protected Attributes inherited from isc::dhcp::Option | |
OptionBuffer | data_ |
contains content of this data | |
std::string | encapsulated_space_ |
Name of the option space being encapsulated by this option. | |
OptionCollection | options_ |
collection for storing suboptions | |
uint16_t | type_ |
option type (0-255 for DHCPv4, 0-65535 for DHCPv6) | |
Universe | universe_ |
option universe (V4 or V6) | |
Forward declaration to OptionIntArray.
This template class represents DHCP (v4 or v6) option with an array of integer values.
Forward declaration of OptionIntArray.
This forward declaration is needed to access the OptionIntArray class without having to include the option_int_array.h header file. It is required because this header includes libdhcp++.h, and including option_int_array.h would cause circular inclusion between libdhcp++.h, option_definition.h and option_int_array.h.
The type of the elements in the array can be any of the following:
T | data field type (see above). |
Definition at line 56 of file option_int_array.h.
|
inline |
Constructor.
Creates option with empty values vector.
u | universe (V4 or V6). |
type | option type. |
isc::dhcp::InvalidDataType | if data field type provided as template parameter is not a supported integer type. |
Definition at line 73 of file option_int_array.h.
References isc_throw.
|
inline |
Constructor.
u | universe (V4 or V6). |
type | option type. |
buf | buffer with option data (must not be empty). |
isc::OutOfRange | if provided buffer is empty or its length is not multiple of size of the data type in bytes. |
isc::dhcp::InvalidDataType | if data field type provided as template parameter is not a supported integer type. |
Definition at line 91 of file option_int_array.h.
References isc_throw, and isc::dhcp::OptionIntArray< T >::unpack().
|
inline |
Constructor.
This constructor creates option from a buffer. This constructor may throw exception if unpack function throws during buffer parsing.
u | universe (V4 or V6). |
type | option type. |
begin | iterator to first byte of option data. |
end | iterator to end of option data (first byte after option end). |
isc::OutOfRange | if provided buffer is empty or its length is not multiple of size of the data type in bytes. |
isc::dhcp::InvalidDataType | if data field type provided as template parameter is not a supported integer type. |
Definition at line 115 of file option_int_array.h.
References isc_throw, and isc::dhcp::OptionIntArray< T >::unpack().
|
inline |
Adds a new value to the array.
value | a value being added. |
Definition at line 132 of file option_int_array.h.
|
inlinevirtual |
Copies this option and returns a pointer to the copy.
Reimplemented from isc::dhcp::Option.
Definition at line 125 of file option_int_array.h.
References isc::dhcp::Option::cloneInternal().
|
inline |
Return collection of option values.
Definition at line 231 of file option_int_array.h.
|
inlinevirtual |
returns complete length of option
Returns length of this option, including option header and suboptions
Reimplemented from isc::dhcp::Option.
Definition at line 243 of file option_int_array.h.
References isc::dhcp::Option::getUniverse(), isc::dhcp::Option::OPTION4_HDR_LEN, isc::dhcp::Option::OPTION6_HDR_LEN, isc::dhcp::Option::options_, and isc::dhcp::Option::V4.
|
inlinevirtual |
Writes option in wire-format to buf, returns pointer to first unused byte after stored option.
[out] | buf | buffer (option will be stored here) |
check | if set to false, allows options larger than 255 for v4 |
isc::dhcp::InvalidDataType | if size of a data fields type is not equal to 1, 2 or 4 bytes. The data type is not checked in this function because it is checked in a constructor. |
Reimplemented from isc::dhcp::Option.
Definition at line 145 of file option_int_array.h.
References isc::dhcp::Option::check(), isc_throw, isc::dhcp::Option::packHeader(), isc::util::OutputBuffer::writeUint16(), isc::util::OutputBuffer::writeUint32(), and isc::util::OutputBuffer::writeUint8().
|
inline |
Set option values.
values | collection of values to be set for option. |
Definition at line 236 of file option_int_array.h.
|
inlinevirtual |
Returns textual representation of the option.
indent | Number of space characters to be inserted before the text. |
Reimplemented from isc::dhcp::Option.
Definition at line 259 of file option_int_array.h.
References isc::dhcp::OptionDataTypeUtil::getDataTypeName(), and isc::dhcp::Option::headerToText().
|
inlinevirtual |
Parses received buffer.
Parses received buffer and returns offset to the first unused byte after parsed option.
begin | iterator to first byte of option data |
end | iterator to end of option data (first byte after option end) |
isc::dhcp::InvalidDataType | if size of a data fields type is not equal to 1, 2 or 4 bytes. The data type is not checked in this function because it is checked in a constructor. |
Reimplemented from isc::dhcp::Option.
Definition at line 185 of file option_int_array.h.
References isc::dhcp::Option::getType(), isc_throw, isc::util::readUint16(), and isc::util::readUint32().
Referenced by isc::dhcp::OptionIntArray< T >::OptionIntArray(), and isc::dhcp::OptionIntArray< T >::OptionIntArray().