24#ifndef MYSQL_GTID_TSID_H 
   25#define MYSQL_GTID_TSID_H 
   79  std::size_t 
to_string(
char *out, 
const char *tag_sid_separator) 
const;
 
   85  [[nodiscard]] std::size_t 
from_cstring(
const char *text);
 
  168  [[nodiscard]] std::size_t 
decode_tsid(
const unsigned char *stream,
 
  169                                        std::size_t stream_len,
 
Representation of the GTID tag.
Definition: tag.h:49
 
bool is_defined() const
Indicates whether transaction tag is defined (is not empty)
Definition: tag.h:97
 
static constexpr std::size_t get_max_encoded_length()
Obtains maximum length of encoded tag (compile time)
Definition: tag.h:145
 
Represents Transaction Source Identifier which is composed of source UUID and transaction tag.
Definition: tsid.h:44
 
const Tag & get_tag() const
Tag accessor.
Definition: tsid.h:108
 
bool is_tagged() const
Checks whether this TSID contains tag.
Definition: tsid.h:129
 
Tsid(Tsid const &)=default
 
std::string to_string() const
Returns textual representation of Transaction Source Identifier.
Definition: tsid.cpp:34
 
static constexpr std::size_t get_max_encoded_length()
Obtains maximum length of encoded TSID (compile time)
Definition: tsid.h:146
 
Uuid m_uuid
GTID UUID.
Definition: tsid.h:173
 
bool operator!=(const Tsid &other) const
Operator !=.
Definition: tsid.cpp:62
 
Tsid & operator=(Tsid &&)=default
 
void clear()
Clears data - uuid and tag.
Definition: tsid.cpp:127
 
bool operator==(const Tsid &other) const
Operator ==.
Definition: tsid.cpp:58
 
Tag & get_tag_ref()
Tag accessor, non const (serialization)
Definition: tsid.h:112
 
Tsid & operator=(Tsid const &)=default
 
Uuid & get_uuid()
Non const getter is needed in some functions (copy data)
Definition: tsid.h:124
 
std::size_t encode_tsid(unsigned char *buf, const Gtid_format >id_format) const
stores TSID in buffer
Definition: tsid.cpp:97
 
Tsid()=default
Constructs empty TSID.
 
const Uuid & get_uuid() const
UUID accessor.
Definition: tsid.h:120
 
std::size_t from_cstring(const char *text)
Fills Tsid with data from text.
Definition: tsid.cpp:69
 
void set_tag(const Tag &tag)
Sets internal tag to a given tag object.
Definition: tsid.h:116
 
Tag m_tag
GTID Tag.
Definition: tsid.h:174
 
std::size_t decode_tsid(const unsigned char *stream, std::size_t stream_len, const Gtid_format >id_format)
reads TSID from the buffer
Definition: tsid.cpp:105
 
bool operator<(const Tsid &other) const
Operator <.
Definition: tsid.cpp:64
 
static constexpr auto tsid_separator
Default TSID separator.
Definition: tsid.h:88
 
Definition: buf0block_hint.cc:30
 
constexpr auto tsid_max_length
Maximum TSID text length (without null character)
Definition: tsid.h:38
 
Gtid_format
Gtid binary format indicator.
Definition: gtid_format.h:39
 
constexpr std::size_t tag_max_length
Maximal number of characters in a tag.
Definition: gtid_constants.h:44
 
Structure to compute hash function of a given Tag object.
Definition: tag.h:165
 
Structure to compute hash function of a given Tag object.
Definition: tsid.h:132
 
size_t operator()(const Tsid &arg) const
Computes hash of a given Tsid object.
Definition: tsid.h:135
 
TSID representation so that:
Definition: tsid_plain.h:40
 
Uuid is a trivial and of standard layout The structure contains the following components.
Definition: uuid.h:64
 
static const size_t TEXT_LENGTH
The number of bytes in the textual representation of a Uuid.
Definition: uuid.h:168
 
static constexpr std::size_t BYTE_LENGTH
The number of bytes in the data of a Uuid.
Definition: uuid.h:143