 |
Kea
1.5.0
|
Go to the documentation of this file.
12 #include <boost/function.hpp>
13 #include <boost/shared_ptr.hpp>
215 virtual std::string
toText(
int indent = 0)
const;
223 virtual std::string
toString()
const;
232 virtual std::vector<uint8_t>
toBinary(
const bool include_header =
false)
const;
241 virtual std::string
toHexString(
const bool include_header =
false)
const;
252 virtual uint16_t
len()
const;
262 virtual bool valid()
const;
365 template<
typename InputIterator>
366 void setData(InputIterator first, InputIterator last) {
367 data_.assign(first, last);
423 template<
typename OptionType>
425 const OptionType* cast_this =
dynamic_cast<const OptionType*
>(
this);
427 return (boost::shared_ptr<OptionType>(
new OptionType(*cast_this)));
488 const std::string& type_name =
"")
const;
virtual uint16_t len() const
Returns length of the complete option (data length + DHCPv4/DHCPv6 option header)
std::vector< uint8_t > OptionBuffer
buffer types used in DHCP code.
boost::shared_ptr< OptionBuffer > OptionBufferPtr
pointer to a DHCP buffer
OptionBuffer data_
contains content of this data
uint16_t getType() const
Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6)
uint16_t type_
option type (0-255 for DHCPv4, 0-65535 for DHCPv6)
std::string suboptionsToText(const int indent=0) const
Returns collection of suboptions in the textual format.
Universe universe_
option universe (V4 or V6)
virtual void pack(isc::util::OutputBuffer &buf) const
Writes option in wire-format to a buffer.
const OptionCollection & getOptions() const
Returns all encapsulated options.
OptionPtr getOption(uint16_t type) const
Returns shared_ptr to suboption of specific type.
virtual std::string toText(int indent=0) const
Returns string representation of the option.
void setUint16(uint16_t value)
Sets content of this option to singe uint16 value.
virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end)
Parses received buffer.
std::multimap< unsigned int, OptionPtr > OptionCollection
A collection of DHCP (v4 or v6) options.
OptionPtr cloneInternal() const
Copies this option and returns a pointer to the copy.
This is a base class for exceptions thrown from the DNS library module.
virtual std::vector< uint8_t > toBinary(const bool include_header=false) const
Returns binary representation of the option.
Universe getUniverse() const
returns option universe (V4 or V6)
static OptionPtr factory(Option::Universe u, uint16_t type)
Factory function to create instance of option.
Defines the logger used by the top-level component of kea-dhcp-ddns.
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
void setEncapsulatedSpace(const std::string &encapsulated_space)
Sets the name of the option space encapsulated by this option.
bool delOption(uint16_t type)
Attempts to delete first suboption of requested type.
SkipRemainingOptionsError(const char *file, size_t line, const char *what)
void packHeader(isc::util::OutputBuffer &buf) const
Store option's header in a buffer.
void getOptionsCopy(OptionCollection &options_copy) const
Performs deep copy of suboptions.
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
Exception thrown during option unpacking This exception is thrown when an error has occurred,...
std::string encapsulated_space_
Name of the option space being encapsulated by this option.
void unpackOptions(const OptionBuffer &buf)
Builds a collection of sub options from the buffer.
uint16_t getUint16() const
Returns content of first word.
bool equals(const OptionPtr &other) const
Checks if options are equal.
OptionBuffer::iterator OptionBufferIter
iterator for walking over OptionBuffer
static const size_t OPTION4_HDR_LEN
length of the usual DHCPv4 option header (there are exceptions)
static OptionPtr factory(Option::Universe u, uint16_t type, const OptionBuffer &buf)
Factory function to create instance of option.
void setData(InputIterator first, InputIterator last)
Sets content of this option from buffer.
boost::shared_ptr< OptionCollection > OptionCollectionPtr
A pointer to an OptionCollection.
void packOptions(isc::util::OutputBuffer &buf) const
Store sub options in a buffer.
virtual std::string toString() const
Returns string representation of the value.
void setUint8(uint8_t value)
Sets content of this option to singe uint8 value.
OptionPtr Factory(Option::Universe u, uint16_t type, const OptionBuffer &buf)
a factory function prototype
boost::shared_ptr< Option > OptionPtr
Option & operator=(const Option &rhs)
Assignment operator.
virtual bool valid() const
returns if option is valid (e.g.
virtual ~Option()
just to force that every option has virtual dtor
Universe
defines option universe DHCPv4 or DHCPv6
uint8_t getUint8() const
Returns content of first byte.
virtual const OptionBuffer & getData() const
Returns pointer to actual data.
void setUint32(uint32_t value)
Sets content of this option to singe uint32 value.
uint32_t getUint32() const
Returns content of first double word.
std::string headerToText(const int indent=0, const std::string &type_name="") const
Returns option header in the textual format.
virtual uint16_t getHeaderLen() const
Returns length of header (2 for v4, 4 for v6)
OptionBuffer::const_iterator OptionBufferConstIter
const_iterator for walking over OptionBuffer
OptionCollection options_
collection for storing suboptions
void addOption(OptionPtr opt)
Adds a sub-option.
virtual std::string toHexString(const bool include_header=false) const
Returns string containing hexadecimal representation of option.
Option(Universe u, uint16_t type)
ctor, used for options constructed, usually during transmission
std::string getEncapsulatedSpace() const
Returns the name of the option space encapsulated by this option.
static const size_t OPTION6_HDR_LEN
length of any DHCPv6 option header
virtual OptionPtr clone() const
Copies this option and returns a pointer to the copy.
void check() const
A protected method used for option correctness.