|
@@ -41,13 +41,25 @@ public:
|
|
|
OPT& operator=(const OPT& source);
|
|
|
~OPT();
|
|
|
|
|
|
+ /// \brief A class representing a pseudo RR (or option) within an
|
|
|
+ /// OPT RR (see RFC 6891).
|
|
|
class PseudoRR {
|
|
|
public:
|
|
|
+ /// \brief Constructor.
|
|
|
+ /// \param code The OPTION-CODE field of the pseudo RR.
|
|
|
+ /// \param data The OPTION-DATA field of the pseudo
|
|
|
+ /// RR. OPTION-LENGTH is set to the length of this vector.
|
|
|
PseudoRR(uint16_t code,
|
|
|
boost::shared_ptr<std::vector<uint8_t> >& data);
|
|
|
|
|
|
+ /// \brief Return the option code of this pseudo RR.
|
|
|
uint16_t getCode() const;
|
|
|
+
|
|
|
+ /// \brief Return the option data of this pseudo RR.
|
|
|
const uint8_t* getData() const;
|
|
|
+
|
|
|
+ /// \brief Return the length of the option data of this
|
|
|
+ /// pseudo RR.
|
|
|
uint16_t getLength() const;
|
|
|
|
|
|
private:
|
|
@@ -55,7 +67,22 @@ public:
|
|
|
boost::shared_ptr<std::vector<uint8_t> > data_;
|
|
|
};
|
|
|
|
|
|
+ /// \brief Append a pseudo RR (option) in this OPT RR.
|
|
|
+ ///
|
|
|
+ /// \param code The OPTION-CODE field of the pseudo RR.
|
|
|
+ /// \param data The OPTION-DATA field of the pseudo RR.
|
|
|
+ /// \param length The size of the \c data argument. OPTION-LENGTH is
|
|
|
+ /// set to this size.
|
|
|
+ /// \throw \c isc::InvalidParameter if this pseudo RR would cause
|
|
|
+ /// the OPT RDATA to overflow its RDLENGTH.
|
|
|
void appendPseudoRR(uint16_t code, const uint8_t* data, uint16_t length);
|
|
|
+
|
|
|
+ /// \brief Return a vector of the pseudo RRs (options) in this
|
|
|
+ /// OPT RR.
|
|
|
+ ///
|
|
|
+ /// Note: The returned reference is only valid during the lifetime
|
|
|
+ /// of this \c generic::OPT object. It should not be used
|
|
|
+ /// afterwards.
|
|
|
const std::vector<PseudoRR>& getPseudoRRs() const;
|
|
|
|
|
|
private:
|