7 #ifndef OPAQUE_DATA_TUPLE_H
8 #define OPAQUE_DATA_TUPLE_H
86 : length_field_type_(length_field_type) {
103 void append(
const char* data,
const size_t len) {
104 data_.insert(data_.end(), data, data + len);
107 data_.insert(data_.end(), data, data + len);
116 void append(
const std::string& text);
128 void assign(
const char* data,
const size_t len) {
129 data_.assign(data, data + len);
132 data_.assign(data, data + len);
141 void assign(
const std::string& text);
149 bool equals(
const std::string& other)
const;
153 return (length_field_type_);
158 return (data_.size());
236 bool operator==(
const std::string& other)
const;
int getDataFieldSize() const
Returns the size of the tuple length field.
OpaqueDataTuple & operator=(const std::string &other)
Assignment operator.
LengthFieldType getLengthFieldType() const
Returns tuple length data field type.
Buffer::const_iterator InputIterator
bool equals(const std::string &other) const
Checks if the data carried in the tuple match the string.
std::string getText() const
Return the tuple data in the textual format.
bool operator!=(const std::string &other)
Inequality operator.
void assign(const char *data, const size_t len)
Assigns data to the tuple.
void unpack(InputIterator begin, InputIterator end)
Parses wire data and creates a tuple from it.
void append(InputIterator data, const size_t len)
OpaqueDataTupleError(const char *file, size_t line, const char *what)
OpaqueDataTuple(LengthFieldType length_field_type)
Default constructor.
bool operator==(const std::string &other) const
Equality operator.
boost::shared_ptr< OpaqueDataTuple > OpaqueDataTuplePtr
Pointer to the OpaqueDataTuple object.
void pack(isc::util::OutputBuffer &buf) const
Renders the tuple to a buffer in the wire format.
void append(const char *data, const size_t len)
Appends data to the tuple.
std::vector< uint8_t > Buffer
Defines a type of the data buffer used to hold the opaque data.
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
LengthFieldType
Size of the length field in the tuple.
This is a base class for exceptions thrown from the DNS library module.
Defines the logger used by the top-level component of kea-dhcp-ddns.
const Buffer & getData() const
Returns a reference to the buffer holding tuple data.
std::ostream & operator<<(std::ostream &os, const OpaqueDataTuple &tuple)
Inserts the OpaqueDataTuple as a string into stream.
OpaqueDataTuple(LengthFieldType length_field_type, InputIterator begin, InputIterator end)
Constructor.
size_t getTotalLength() const
Returns a total size of the tuple, including length field.
Represents a single instance of the opaque data preceded by length.
size_t getLength() const
Returns the length of the data in the tuple.
void assign(InputIterator data, const size_t len)
std::istream & operator>>(std::istream &is, OpaqueDataTuple &tuple)
Inserts data carried in the stream into the tuple.
void clear()
Removes the contents of the tuple.
Exception to be thrown when the operation on OpaqueDataTuple object results in an error...