24#ifndef BINLOG_ATOMIC_BCG_TICKET_H
25#define BINLOG_ATOMIC_BCG_TICKET_H
37class AtomicBgcTicketGuard;
103 bool inc_next_before_acquire =
false,
104 bool inc_next_before_release =
false);
RAII opaque for AtomicBgcTicket (set in use/set used synchronization operations in constructor/destru...
Definition: atomic_bgc_ticket_guard.h:44
Implements atomic ops on BgcTicket object.
Definition: atomic_bgc_ticket.h:43
AtomicBgcTicket(AtomicBgcTicket &&)=delete
AtomicBgcTicket & operator=(AtomicBgcTicket const &)=delete
void set_used(const BgcTicket &next_value)
Sets ticket synchronization value to "used/free".
Definition: atomic_bgc_ticket.cc:78
BgcTicket load() const
Ticket accessor, atomic load op.
Definition: atomic_bgc_ticket.cc:63
AtomicBgcTicket(AtomicBgcTicket const &)=delete
virtual ~AtomicBgcTicket()=default
memory::Aligned_atomic< BgcTicket::ValueType > m_ticket
internal ticket representation
Definition: atomic_bgc_ticket.h:112
AtomicBgcTicketGuard scoped_lock(bool inc_next_before_release=false)
Creates the "lock" that is held for the returned AtomicBgcTicketGuard object lifetime.
Definition: atomic_bgc_ticket.cc:69
void store(const BgcTicket &value)
Ticket mutator, atomic store op.
Definition: atomic_bgc_ticket.cc:65
std::pair< BgcTicket, BgcTicket > set_in_use(bool inc_next_before_acquire=false, bool inc_next_before_release=false)
Sets ticket synchronization value to "in use".
Definition: atomic_bgc_ticket.cc:34
friend std::ostream & operator<<(std::ostream &os, const AtomicBgcTicket &arg)
Stream operator impl for AtomicBgcTicket class.
Definition: atomic_bgc_ticket.cc:58
AtomicBgcTicket & operator=(AtomicBgcTicket &&)=delete
Represents the Binlog Group Commit Ticket - BGC Ticket.
Definition: bgc_ticket.h:54
std::uint64_t ValueType
Definition: bgc_ticket.h:56
Templated class that encapsulates an std::atomic within a byte buffer that is padded to the processor...
Definition: aligned_atomic.h:158