Kea: isc::dns::rdata::generic::NAPTR Class Reference

| Kea 2.2.0

Public Member Functions | List of all members
isc::dns::rdata::generic::NAPTR Class Reference

`NAPTR` class represents the NAPTR rdata defined in RFC2915, RFC2168 and RFC3403 More...

`#include <rdataclass.h>`

Inheritance diagram for isc::dns::rdata::generic::NAPTR:
[legend]

## Public Member Functions
| NAPTR (const NAPTR &other)
| NAPTR (const std::string &type_str)
| NAPTR (isc::util::InputBuffer &buffer, size_t rdata_len)
| NAPTR (MasterLexer &lexer, const Name *name, MasterLoader::Options options, MasterLoaderCallbacks &callbacks)
| ~NAPTR ()
virtual int | compare (const Rdata &other) const
| Compare two instances of `Rdata`. More...
const std::string | getFlags () const
uint16_t | getOrder () const
uint16_t | getPreference () const
const std::string | getRegexp () const
const Name & | getReplacement () const
const std::string | getServices () const
NAPTR & | operator= (const NAPTR &source)
virtual std::string | toText () const
| Convert an `Rdata` to a string. More...
virtual void | toWire (AbstractMessageRenderer &renderer) const
| Render the `Rdata` in the wire format into a `MessageRenderer` object. More...
virtual void | toWire (isc::util::OutputBuffer &buffer) const
| Render the `Rdata` in the wire format into a buffer. More...
Public Member Functions inherited from isc::dns::rdata::Rdata
virtual uint16_t | getLength () const
| Get the wire format length of an Rdata. More...
virtual | ~Rdata ()
| The destructor. More...

## Additional Inherited Members
Protected Member Functions inherited from isc::dns::rdata::Rdata
| Rdata ()
| The default constructor. More...

## Detailed Description

`NAPTR` class represents the NAPTR rdata defined in RFC2915, RFC2168 and RFC3403

This class implements the basic interfaces inherited from the `rdata::Rdata` class, and provides accessors specific to the NAPTR rdata.

Definition at line 1118 of file rdataclass.h.

## Constructor & Destructor Documentation

## ◆ NAPTR() [1/4]

isc::dns::rdata::generic::NAPTR::NAPTR | ( | const std::string & | type_str | ) |
| explicit

## ◆ NAPTR() [2/4]

isc::dns::rdata::generic::NAPTR::NAPTR | ( | isc::util::InputBuffer & | buffer,
|  | size_t | rdata_len
| ) |  |

## ◆ NAPTR() [3/4]

isc::dns::rdata::generic::NAPTR::NAPTR | ( | const NAPTR & | other | ) |

## ◆ NAPTR() [4/4]

isc::dns::rdata::generic::NAPTR::NAPTR | ( | MasterLexer & | lexer,
|  | const Name * | name,
|  | MasterLoader::Options | options,
|  | MasterLoaderCallbacks & | callbacks
| ) |  |

## ◆ ~NAPTR()

isc::dns::rdata::generic::NAPTR::~NAPTR | ( |  | ) |

## Member Function Documentation

## ◆ compare()

virtual int isc::dns::rdata::generic::NAPTR::compare | ( | const Rdata & | other | ) | const
| virtual

Compare two instances of `Rdata`.

This method compares `this` and the `other` Rdata objects in terms of the DNSSEC sorting order as defined in RFC4034, and returns the result as an integer.

This is a pure virtual method without the definition; the actual comparison logic is specific to each derived concrete class and should be explicitly defined in the derived class.

Specific implementations of this method must confirm that `this` and the `other` are objects of the same concrete derived class of `Rdata`. This is normally done by `dynamic_cast` in the implementation. It also means if the assumption isn't met an exception of class `std::bad_cast` will be thrown.

Here is an implementation choice: instead of relying on `dynamic_cast`, we could first convert the data into wire-format and compare the pair as opaque data. This would be more polymorphic, but might involve significant overhead, especially for a large size of RDATA.

Parameters

  other | the right-hand operand to compare against.

Returns
  < 0 if `this` would be sorted before `other`.
  0 if `this` is identical to `other` in terms of sorting order.
  > 0 if `this` would be sorted after `other`.

Implements isc::dns::rdata::Rdata.

## ◆ getFlags()

const std::string isc::dns::rdata::generic::NAPTR::getFlags | ( |  | ) | const

## ◆ getOrder()

uint16_t isc::dns::rdata::generic::NAPTR::getOrder | ( |  | ) | const

## ◆ getPreference()

uint16_t isc::dns::rdata::generic::NAPTR::getPreference | ( |  | ) | const

## ◆ getRegexp()

const std::string isc::dns::rdata::generic::NAPTR::getRegexp | ( |  | ) | const

## ◆ getReplacement()

const Name & isc::dns::rdata::generic::NAPTR::getReplacement | ( |  | ) | const

## ◆ getServices()

const std::string isc::dns::rdata::generic::NAPTR::getServices | ( |  | ) | const

## ◆ operator=()

NAPTR & isc::dns::rdata::generic::NAPTR::operator= | ( | const NAPTR & | source | ) |

## ◆ toText()

virtual std::string isc::dns::rdata::generic::NAPTR::toText | ( |  | ) | const
| virtual

Convert an `Rdata` to a string.

This method returns a `std::string` object representing the `Rdata`.

This is a pure virtual method without the definition; the actual representation is specific to each derived concrete class and should be explicitly defined in the derived class.

Returns
  A string representation of `Rdata`.

Implements isc::dns::rdata::Rdata.

## ◆ toWire() [1/2]

virtual void isc::dns::rdata::generic::NAPTR::toWire | ( | AbstractMessageRenderer & | renderer | ) | const
| virtual

Render the `Rdata` in the wire format into a `MessageRenderer` object.

This is a pure virtual method without the definition; the actual conversion is specific to each derived concrete class and should be explicitly defined in the derived class.

Parameters

  renderer | DNS message rendering context that encapsulates the output buffer in which the `Rdata` is to be stored.

Implements isc::dns::rdata::Rdata.

## ◆ toWire() [2/2]

virtual void isc::dns::rdata::generic::NAPTR::toWire | ( | isc::util::OutputBuffer & | buffer | ) | const
| virtual

Render the `Rdata` in the wire format into a buffer.

This is a pure virtual method without the definition; the actual conversion is specific to each derived concrete class and should be explicitly defined in the derived class.

Parameters

  buffer | An output buffer to store the wire data.

Implements isc::dns::rdata::Rdata.

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

- rdataclass.h