|
@@ -21,24 +21,25 @@
|
|
|
namespace isc {
|
|
|
namespace dns {
|
|
|
|
|
|
-/// \brief Light-weight Accessor to Name object
|
|
|
+/// \brief Light-weight Accessor to data of Name object
|
|
|
///
|
|
|
/// The purpose of this class is to easily match Names and parts of Names,
|
|
|
/// without needing to copy the underlying data on each label strip.
|
|
|
///
|
|
|
-/// It can only work on existing Name objects, and the Name object MUST
|
|
|
+/// It can only work on existing Name objects, or data as provided by the
|
|
|
+/// Name object or another LabelSequence, and the data or Name MUST
|
|
|
/// remain in scope during the entire lifetime of its associated
|
|
|
/// LabelSequence(s).
|
|
|
///
|
|
|
/// Upon creation of a LabelSequence, it records the offsets of the
|
|
|
/// labels in the wireformat data of the Name. When stripLeft() or
|
|
|
/// stripRight() is called on the LabelSequence, no changes in the
|
|
|
-/// Name's data occur, but the internal pointers of the
|
|
|
+/// original data occur, but the internal pointers of the
|
|
|
/// LabelSequence are modified.
|
|
|
///
|
|
|
/// LabelSequences can be compared to other LabelSequences, and their
|
|
|
/// data can be requested (which then points to part of the original
|
|
|
-/// data of the associated Name object).
|
|
|
+/// data of the original Name object).
|
|
|
///
|
|
|
class LabelSequence {
|
|
|
// Name calls the private toText(bool) method of LabelSequence.
|
|
@@ -69,9 +70,9 @@ public:
|
|
|
/// \note No validation is done on the given data upon construction;
|
|
|
/// use with care.
|
|
|
///
|
|
|
- /// \param data The Name data, in wire format
|
|
|
- /// \param offsets The offsets of the labels in the Name, as given
|
|
|
- /// by the Name object or another LabelSequence
|
|
|
+ /// \param data The raw data for the domain name, in wire format
|
|
|
+ /// \param offsets The offsets of the labels in the domain name data,
|
|
|
+ /// as given by a Name object or another LabelSequence
|
|
|
/// \param offsets_size The size of the offsets data
|
|
|
LabelSequence(const uint8_t* data,
|
|
|
const uint8_t* offsets,
|
|
@@ -84,12 +85,13 @@ public:
|
|
|
|
|
|
/// \brief Return the wire-format data for this LabelSequence
|
|
|
///
|
|
|
- /// The data, is returned as a pointer to the original wireformat
|
|
|
- /// data of the original Name object, and the given len value is
|
|
|
+ /// The data is returned as a pointer to (the part of) the original
|
|
|
+ /// wireformat data, from either the original Name object, or the
|
|
|
+ /// raw data given in the constructor, and the given len value is
|
|
|
/// set to the number of octets that match this labelsequence.
|
|
|
///
|
|
|
/// \note The data pointed to is only valid if the original Name
|
|
|
- /// object is still in scope
|
|
|
+ /// object or data is still in scope
|
|
|
///
|
|
|
/// \param len Pointer to a size_t where the length of the data
|
|
|
/// will be stored (in number of octets)
|
|
@@ -107,7 +109,7 @@ public:
|
|
|
/// versa.
|
|
|
///
|
|
|
/// \note The data pointed to is only valid if the original Name
|
|
|
- /// object is still in scope
|
|
|
+ /// object or data is still in scope
|
|
|
///
|
|
|
/// \return The length of the data of the label sequence in octets.
|
|
|
size_t getDataLength() const;
|
|
@@ -149,7 +151,7 @@ public:
|
|
|
/// \brief Remove labels from the end of this LabelSequence
|
|
|
///
|
|
|
/// \note No actual memory is changed, this operation merely updates the
|
|
|
- /// internal pointers based on the offsets in the Name object.
|
|
|
+ /// internal pointers based on the offsets originally provided.
|
|
|
///
|
|
|
/// \exception OutOfRange if i is greater than or equal to the number
|
|
|
/// of labels currently pointed to by this LabelSequence
|
|
@@ -168,13 +170,13 @@ public:
|
|
|
/// LabelSequence as a string. The returned string ends with a dot
|
|
|
/// '.' if the label sequence is absolute.
|
|
|
///
|
|
|
- /// This function assumes the underlying name is in proper
|
|
|
+ /// This function assumes the underlying data is in proper
|
|
|
/// uncompressed wire format. If it finds an unexpected label
|
|
|
/// character including compression pointer, an exception of class
|
|
|
/// \c BadLabelType will be thrown. In addition, if resource
|
|
|
/// allocation for the result string fails, a corresponding standard
|
|
|
/// exception will be thrown.
|
|
|
- //
|
|
|
+ ///
|
|
|
/// \return a string representation of the <code>LabelSequence</code>.
|
|
|
std::string toText() const;
|
|
|
|
|
@@ -244,7 +246,7 @@ private:
|
|
|
///
|
|
|
/// \param os A \c std::ostream object on which the insertion operation is
|
|
|
/// performed.
|
|
|
-/// \param name The \c LabelSequence object output by the operation.
|
|
|
+/// \param label_sequence The \c LabelSequence object output by the operation.
|
|
|
/// \return A reference to the same \c std::ostream object referenced by
|
|
|
/// parameter \c os after the insertion operation.
|
|
|
std::ostream&
|