Kea: isc::dhcp_ddns::D2Dhcid Class Reference

| Kea 1.5.0

Public Member Functions | List of all members
isc::dhcp_ddns::D2Dhcid Class Reference

Container class for handling the DHCID value within a NameChangeRequest. More...

`#include <ncr_msg.h>`

## Public Member Functions
| D2Dhcid ()
| Default constructor.
| D2Dhcid (const isc::dhcp::DUID &duid, const std::vector< uint8_t > &wire_fqdn)
| Constructor, creates an instance of the `D2Dhcid` from the `isc::dhcp::DUID`.
| D2Dhcid (const isc::dhcp::HWAddrPtr &hwaddr, const std::vector< uint8_t > &wire_fqdn)
| Constructor, creates an instance of the `D2Dhcid` from the HW address.
| D2Dhcid (const std::string &data)
| Constructor - Creates a new instance, populated by converting a given string of digits into an array of unsigned bytes.
| D2Dhcid (const std::vector< uint8_t > &clientid_data, const std::vector< uint8_t > &wire_fqdn)
| Constructor, creates an instance of the `D2Dhcid` from the client identifier carried in the Client Identifier option.
void | fromClientId (const std::vector< uint8_t > &clientid_data, const std::vector< uint8_t > &wire_fqdn)
| Sets the DHCID value based on the Client Identifier.
void | fromDUID (const isc::dhcp::DUID &duid, const std::vector< uint8_t > &wire_fqdn)
| Sets the DHCID value based on the DUID and FQDN.
void | fromHWAddr (const isc::dhcp::HWAddrPtr &hwaddr, const std::vector< uint8_t > &wire_fqdn)
| Sets the DHCID value based on the HW address and FQDN.
void | fromStr (const std::string &data)
| Sets the DHCID value based on the given string.
const std::vector< uint8_t > & | getBytes () const
| Returns a reference to the DHCID byte vector.
bool | operator!= (const D2Dhcid &other) const
| Compares two D2Dhcids for inequality.
bool | operator< (const D2Dhcid &other) const
| Compares two D2Dhcids lexically.
bool | operator== (const D2Dhcid &other) const
| Compares two D2Dhcids for equality.
std::string | toStr () const
| Returns the DHCID value as a string of hexadecimal digits.

## Detailed Description

Container class for handling the DHCID value within a NameChangeRequest.

It provides conversion to and from string for JSON formatting, but stores the data internally as unsigned bytes.

Definition at line 86 of file ncr_msg.h.

## Constructor & Destructor Documentation

## ◆ D2Dhcid() [1/5]

isc::dhcp_ddns::D2Dhcid::D2Dhcid | ( |  | ) |

Default constructor.

Definition at line 62 of file ncr_msg.cc.

## ◆ D2Dhcid() [2/5]

isc::dhcp_ddns::D2Dhcid::D2Dhcid | ( | const std::string & | data | ) |

Constructor - Creates a new instance, populated by converting a given string of digits into an array of unsigned bytes.

Parameters

  data | is a string of hexadecimal digits. The format is simply a contiguous stream of digits, with no delimiters. For example a string containing "14A3" converts to a byte array containing: 0x14, 0xA3.

Exceptions

  NcrMessageError | if the input data contains non-digits or there is an odd number of digits.

Definition at line 65 of file ncr_msg.cc.

References fromStr().

Here is the call graph for this function:

## ◆ D2Dhcid() [3/5]

isc::dhcp_ddns::D2Dhcid::D2Dhcid | ( | const isc::dhcp::HWAddrPtr & | hwaddr,
|  | const std::vector< uint8_t > & | wire_fqdn
| ) |  |

Constructor, creates an instance of the `D2Dhcid` from the HW address.

Parameters

  hwaddr | A pointer to the object encapsulating HW address.
  wire_fqdn | A on-wire canonical representation of the FQDN.

Definition at line 69 of file ncr_msg.cc.

References fromHWAddr().

Here is the call graph for this function:

## ◆ D2Dhcid() [4/5]

isc::dhcp_ddns::D2Dhcid::D2Dhcid | ( | const std::vector< uint8_t > & | clientid_data,
|  | const std::vector< uint8_t > & | wire_fqdn
| ) |  |

Constructor, creates an instance of the `D2Dhcid` from the client identifier carried in the Client Identifier option.

Parameters

  clientid_data | Holds the raw bytes representing client identifier.
  wire_fqdn | A on-wire canonical representation of the FQDN.

Definition at line 74 of file ncr_msg.cc.

References fromClientId().

Here is the call graph for this function:

## ◆ D2Dhcid() [5/5]

isc::dhcp_ddns::D2Dhcid::D2Dhcid | ( | const isc::dhcp::DUID & | duid,
|  | const std::vector< uint8_t > & | wire_fqdn
| ) |  |

Constructor, creates an instance of the `D2Dhcid` from the `isc::dhcp::DUID`.

Parameters

  duid | An object representing DUID.
  wire_fqdn | A on-wire canonical representation of the FQDN.

Definition at line 79 of file ncr_msg.cc.

References fromDUID().

Here is the call graph for this function:

## Member Function Documentation

## ◆ fromClientId()

void isc::dhcp_ddns::D2Dhcid::fromClientId | ( | const std::vector< uint8_t > & | clientid_data,
|  | const std::vector< uint8_t > & | wire_fqdn
| ) |  |

Sets the DHCID value based on the Client Identifier.

Parameters

  clientid_data | Holds the raw bytes representing client identifier.
  wire_fqdn | A on-wire canonical representation of the FQDN.

Definition at line 101 of file ncr_msg.cc.

Referenced by D2Dhcid().

## ◆ fromDUID()

void isc::dhcp_ddns::D2Dhcid::fromDUID | ( | const isc::dhcp::DUID & | duid,
|  | const std::vector< uint8_t > & | wire_fqdn
| ) |  |

Sets the DHCID value based on the DUID and FQDN.

This function requires that the FQDN conforms to the section 3.5 of the RFC4701, which says that the FQDN must be in lowercase. This function doesn't validate if it really converted.

Parameters

  duid | A `isc::dhcp::DUID` object encapsulating DUID.
  wire_fqdn | A on-wire canonical representation of the FQDN.

Definition at line 127 of file ncr_msg.cc.

References isc::dhcp::DUID::getDuid().

Referenced by D2Dhcid().

Here is the call graph for this function:

## ◆ fromHWAddr()

void isc::dhcp_ddns::D2Dhcid::fromHWAddr | ( | const isc::dhcp::HWAddrPtr & | hwaddr,
|  | const std::vector< uint8_t > & | wire_fqdn
| ) |  |

Sets the DHCID value based on the HW address and FQDN.

Parameters

  hwaddr | A pointer to the object encapsulating HW address.
  wire_fqdn | A on-wire canonical representation of the FQDN.

Definition at line 107 of file ncr_msg.cc.

References isc_throw.

Referenced by D2Dhcid().

## ◆ fromStr()

void isc::dhcp_ddns::D2Dhcid::fromStr | ( | const std::string & | data | ) |

Sets the DHCID value based on the given string.

Parameters

  data | is a string of hexadecimal digits. The format is simply a contiguous stream of digits, with no delimiters. For example a string containing "14A3" converts to a byte array containing: 0x14, 0xA3.

Exceptions

  NcrMessageError | if the input data contains non-digits or there is an odd number of digits.

Definition at line 86 of file ncr_msg.cc.

References isc::util::encode::decodeHex(), isc_throw, and isc::Exception::what().

Referenced by D2Dhcid(), and isc::dhcp_ddns::NameChangeRequest::setDhcid().

Here is the call graph for this function:

## ◆ getBytes()

const std::vector< uint8_t > & isc::dhcp_ddns::D2Dhcid::getBytes | ( |  | ) | const
| inline

Returns a reference to the DHCID byte vector.

Returns
  a reference to the vector.

Definition at line 169 of file ncr_msg.h.

Referenced by isc::dhcp_ddns::NameChangeRequest::validateContent().

## ◆ operator!=()

bool isc::dhcp_ddns::D2Dhcid::operator!= | ( | const D2Dhcid & | other | ) | const
| inline

Compares two D2Dhcids for inequality.

Definition at line 179 of file ncr_msg.h.

## ◆ operator<()

bool isc::dhcp_ddns::D2Dhcid::operator< | ( | const D2Dhcid & | other | ) | const
| inline

Compares two D2Dhcids lexically.

Definition at line 184 of file ncr_msg.h.

## ◆ operator==()

bool isc::dhcp_ddns::D2Dhcid::operator== | ( | const D2Dhcid & | other | ) | const
| inline

Compares two D2Dhcids for equality.

Definition at line 174 of file ncr_msg.h.

## ◆ toStr()

std::string isc::dhcp_ddns::D2Dhcid::toStr | ( |  | ) | const

Returns the DHCID value as a string of hexadecimal digits.

Returns
  a string containing a contiguous stream of digits.

Definition at line 96 of file ncr_msg.cc.

References isc::util::encode::encodeHex().

Referenced by isc::dhcp_ddns::NameChangeRequest::getRequestId(), isc::d2::D2UpdateMgr::makeTransaction(), isc::dhcp_ddns::operator<<(), isc::dhcp_ddns::NameChangeRequest::toJSON(), and isc::dhcp_ddns::NameChangeRequest::toText().

Here is the call graph for this function:

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

- ncr_msg.h
- ncr_msg.cc