65        data_(&
name.ndata_[0]),
 
   66        offsets_(&
name.offsets_[0]),
 
 
  127        offsets_(ls.offsets_),
 
  128        first_label_(ls.first_label_),
 
  129        last_label_(ls.last_label_) {
 
 
  142        if (
this != &other) {
 
  145            offsets_ = other.offsets_;
 
  146            first_label_ = other.first_label_;
 
  147            last_label_ = other.last_label_;
 
 
  165    const uint8_t* 
getData(
size_t* len) 
const;
 
  248    void serialize(
void* buf, 
size_t buf_len) 
const;
 
  281                                 bool case_sensitive = 
false) 
const;
 
  309        return (last_label_ - first_label_ + 1);
 
 
  326    std::string 
toText() 
const;
 
  336    std::string 
toRawText(
bool omit_final_dot) 
const;
 
  383    std::string 
toText(
bool omit_final_dot) 
const;
 
  408    size_t getHash(
bool case_sensitive) 
const;
 
  416    const uint8_t* data_;       
 
  417    const uint8_t* offsets_;    
 
 
  440operator<<(std::ostream& os, 
const LabelSequence& label_sequence);
 
  442inline const LabelSequence&
 
  444    static const uint8_t wildcard_buf[4] = { 0x01, 0x00, 0x01, 
'*' };
 
 
Light-weight Accessor to Name data.
std::string toRawText(bool omit_final_dot) const
Convert the LabelSequence to a string without escape sequences.
LabelSequence(const LabelSequence &ls)
Copy constructor.
static const size_t MAX_SERIALIZED_LENGTH
Max possible size of serialized image generated by serialize.
size_t getHash(bool case_sensitive) const
Calculate a simple hash for the label sequence.
void serialize(void *buf, size_t buf_len) const
Serialize the LabelSequence object in to a buffer.
NameComparisonResult compare(const LabelSequence &other, bool case_sensitive=false) const
Compares two label sequences.
bool isAbsolute() const
Checks whether the label sequence is absolute.
std::string toText() const
Convert the LabelSequence to a string.
LabelSequence(const Name &name)
Constructs a LabelSequence for the given name.
bool operator==(const LabelSequence &other) const
Compares two label sequences for equality (case ignored).
LabelSequence & operator=(const LabelSequence &other)
Assignment operator.
bool equals(const LabelSequence &other, bool case_sensitive=false) const
Compares two label sequences for equality.
size_t getLabelCount() const
Returns the current number of labels for this LabelSequence.
size_t getSerializedLength() const
Return the size of serialized image of the LabelSequence.
static const LabelSequence & WILDCARD()
Wildcard label ("*")
void stripLeft(size_t i)
Remove labels from the front of this LabelSequence.
const uint8_t * getData(size_t *len) const
Return the wire-format data for this LabelSequence.
void stripRight(size_t i)
Remove labels from the end of this LabelSequence.
size_t getDataLength() const
Return the length of the wire-format data of this LabelSequence.
void extend(const LabelSequence &labels, uint8_t buf[MAX_SERIALIZED_LENGTH])
Extend this LabelSequence with the given labelsequence.
This is a supplemental class used only as a return value of Name::compare() and LabelSequence::compar...
The Name class encapsulates DNS names.
static const size_t MAX_WIRE
Max allowable length of domain names.
std::string toText(bool omit_final_dot=false) const
Convert the Name to a string.
static const size_t MAX_LABELS
Max allowable labels of domain names.
ostream & operator<<(std::ostream &os, const EDNS &edns)
Insert the EDNS as a string into stream.
Defines the logger used by the top-level component of kea-lfc.