24#ifndef BINARY_LOG_GTIDS_GTID_SET_INCLUDED
25#define BINARY_LOG_GTIDS_GTID_SET_INCLUDED
206 virtual std::size_t
count()
const;
335 virtual bool add(
const Gtid >id);
361 virtual void reset();
376 virtual std::size_t
count()
const;
This class represents a range of transaction identifiers.
Definition: gtidset.h:48
virtual bool operator<(const Gno_interval &other) const
Establishes a total order between two intervals.
Definition: gtidset.cpp:51
virtual bool is_valid() const
Checks whether this interval is valid or not.
Definition: gtidset.cpp:100
Gno_interval & operator=(const Gno_interval &other)
Copy assignment.
Definition: gtidset.cpp:40
virtual bool intersects_or_contiguous(const Gno_interval &other) const
Checks if the other interval intersects or is contiguous with this one.
Definition: gtidset.cpp:75
virtual bool contiguous(const Gno_interval &other) const
Checks if this interval is contiguous with the other one.
Definition: gtidset.cpp:69
virtual gno_t get_start() const
Gets the first sequence number in the interval.
Definition: gtidset.cpp:79
static const std::string SEPARATOR_GNO_START_END
In 'UUID:GNO-GNO', this is the '-'.
Definition: gtidset.h:51
virtual bool operator==(const Gno_interval &other) const
Compares this interval with another one.
Definition: gtidset.cpp:46
gno_t m_next_gno_after_end
Definition: gtidset.h:55
virtual bool add(const Gno_interval &other)
Adds the other interval to this one.
Definition: gtidset.cpp:82
virtual bool intersects(const Gno_interval &other) const
This checks whether this interval intersects with the other.
Definition: gtidset.cpp:59
gno_t m_start
Definition: gtidset.h:54
virtual std::size_t count() const
Number of entries in this interval.
Definition: gtidset.cpp:30
virtual ~Gno_interval()=default
virtual std::string to_string() const
Gets a human readable representation of this identifier.
Definition: gtidset.cpp:91
virtual gno_t get_end() const
Gets the last sequence number in the interval.
Definition: gtidset.cpp:80
Gno_interval(const Gno_interval &other)
Construct a new Gno_interval object from the other one provided.
Definition: gtidset.cpp:37
This class represents a set of transaction identifiers.
Definition: gtidset.h:235
virtual std::size_t count() const
Gets the number of entries in this set.
Definition: gtidset.cpp:236
virtual std::string to_string() const
A human readable representation of this set.
Definition: gtidset.cpp:201
virtual bool add(const Uuid &uuid, const Gno_interval &interval)
Adds a new interval indexed by the given uuid.
Definition: gtidset.cpp:183
static const std::string SEPARATOR_SEQNO_INTERVALS
In 'UUID:INTERVAL:INTERVAL', this is the second ':'.
Definition: gtidset.h:239
virtual bool operator==(const Gtid_set &other) const
Compares this set with another one.
Definition: gtidset.cpp:115
virtual const Gno_interval_list & get_gtid_set() const
Gets a copy of the internal set.
Definition: gtidset.cpp:145
virtual bool do_add(const Uuid &uuid, const Gno_interval &interval)
Definition: gtidset.cpp:149
std::map< Uuid, std::set< Gno_interval >, Uuid_comparator > Gno_interval_list
Gno_interval_list is a map between uuids and an ordered set of Gno_intervals.
Definition: gtidset.h:256
virtual void reset()
Resets this set, making it empty.
Definition: gtidset.cpp:248
virtual bool contains(const Gtid >id) const
Checks whether this set contains the given identifier.
Definition: gtidset.cpp:222
Gno_interval_list m_gtid_set
An ordered map of entries mapping Uuid to a list of intervals.
Definition: gtidset.h:384
virtual bool is_empty() const
Returns true if this is an empty set.
Definition: gtidset.cpp:234
static const std::string EMPTY_GTID_SET
Definition: gtidset.h:237
static const std::string SEPARATOR_UUID_SETS
In 'SID:GNO,SID:GNO', this is the ','.
Definition: gtidset.h:241
Gtid_set & operator=(const Gtid_set &other)
Copy assignment.
Definition: gtidset.cpp:106
Represents a MySQL Global Transaction Identifier.
Definition: gtid.h:41
static void start(mysql_harness::PluginFuncEnv *env)
Definition: http_auth_backend_plugin.cc:177
static int interval
Definition: mysqladmin.cc:65
std::int64_t gno_t
Definition: global.h:34
This is a POD.
Definition: uuid.h:61
Definition: gtidset.h:243
bool operator()(const Uuid &lhs, const Uuid &rhs) const
Definition: gtidset.cpp:140