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.
/// \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,
/// \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)
/// 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;
/// \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
/// 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;
///
/// \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&