24#ifndef MYSQL_CSA_EVENT_SET_FETCHABLE_RELAY_LOG_H
25#define MYSQL_CSA_EVENT_SET_FETCHABLE_RELAY_LOG_H
27#include <condition_variable>
79 std::size_t start_file_pos,
80 std::size_t end_file_pos,
82 bool checksum_validation,
bool is_trx,
90 std::optional<Managed_event>
fetch_next()
override;
110 bool is_trx()
const override;
116 void reset(
bool reset_events)
override;
Stream class that yields Log_event objects from a source.
Definition: decompressing_event_object_istream.h:67
Implementation of Event_set_fetchable that fetches events from the relay log.
Definition: event_set_fetchable_relay_log.h:51
void safe_close_reader()
Safely closes the reader if it is open.
Definition: event_set_fetchable_relay_log.cpp:278
bool m_is_trx
Flag indicating if this is a transaction.
Definition: event_set_fetchable_relay_log.h:189
bool wait_for_event_availability()
Waits until stream has at least one more event available.
Definition: event_set_fetchable_relay_log.cpp:103
std::mutex m_stream_mutex
Stream synchronization state.
Definition: event_set_fetchable_relay_log.h:199
bool m_decompressing
Flag indicating if currently decompressing an internal event (TPLE).
Definition: event_set_fetchable_relay_log.h:192
bool m_is_done
Flag indicating if processing is done (finished or error).
Definition: event_set_fetchable_relay_log.h:173
std::size_t m_published_end_file_pos
Definition: event_set_fetchable_relay_log.h:201
const std::string & get_error_str() const override
Retrieves the error message if any error occurred.
Definition: event_set_fetchable_relay_log.cpp:226
std::string to_string() const
Returns a string representation of this batch's information.
Definition: event_set_fetchable_relay_log.cpp:216
bool is_done() const override
Checks if the fetchable stream has finished without error.
Definition: event_set_fetchable_relay_log.cpp:230
Fde_ptr get_fde() override
Obtains non-owning pointer to current transaction FDE.
Definition: event_set_fetchable_relay_log.cpp:65
Log_event_ptr m_fde_base
owning pointer to FDE.
Definition: event_set_fetchable_relay_log.h:194
void set_stream_truncated()
Marks stream-open batch as truncated and wakes blocked readers.
Definition: event_set_fetchable_relay_log.cpp:94
bool wait_next() override
Fetches the next event from the initialized internal stream.
Definition: event_set_fetchable_relay_log.cpp:121
bool is_error() const override
Checks if an error occurred in the fetchable stream.
Definition: event_set_fetchable_relay_log.cpp:234
bool m_stream_sealed
Definition: event_set_fetchable_relay_log.h:203
Return_status m_status
Status of the object.
Definition: event_set_fetchable_relay_log.h:181
bool m_is_initialized
Flag indicating if the reader is open.
Definition: event_set_fetchable_relay_log.h:171
void set_success() override
Callback notifying that task was executed successfully.
Definition: event_set_fetchable_relay_log.cpp:57
std::unique_ptr< Stream_type > Stream_ptr
Unique pointer to the decompressing stream.
Definition: event_set_fetchable_relay_log.h:60
bool m_stream_open
Definition: event_set_fetchable_relay_log.h:202
bool is_trx() const override
Checks if this event set represents a transaction.
Definition: event_set_fetchable_relay_log.cpp:285
std::optional< Managed_event > fetch_from_stream()
Fetches the next event from the stream.
Definition: event_set_fetchable_relay_log.cpp:136
void start_reading()
Starts reading from the file by opening it and creating the input stream.
Definition: event_set_fetchable_relay_log.cpp:242
Relay_log_deleter_handle m_delete_file_handle
Handle to the relay log deleter.
Definition: event_set_fetchable_relay_log.h:183
bool decompressing() const
Checks if currently decompressing the internal stream (TPLE).
Definition: event_set_fetchable_relay_log.cpp:61
std::size_t m_start_file_pos
Starting file position for reading.
Definition: event_set_fetchable_relay_log.h:177
Relaylog_file_reader m_reader
Relay log file reader used by the decompressing stream.
Definition: event_set_fetchable_relay_log.h:187
Fde_ptr m_fde
non-owning pointer to FDE.
Definition: event_set_fetchable_relay_log.h:196
std::optional< Managed_event > fetch_next() override
Fetches the next event if possible.
Definition: event_set_fetchable_relay_log.cpp:209
std::string m_file_name
Name of the relay log file to read from.
Definition: event_set_fetchable_relay_log.h:175
Event_set_fetchable_relay_log(std::string filename, std::size_t start_file_pos, std::size_t end_file_pos, Relay_log_deleter_handle deleter, bool checksum_validation, bool is_trx, Log_event_ptr fde, bool streaming_open=false)
Constructs an Event_set_fetchable_relay_log with relay log coordinates.
Definition: event_set_fetchable_relay_log.cpp:38
void append_event_end(std::size_t end_file_pos, bool seal_after=false)
Appends one published event boundary for stream-open batch.
Definition: event_set_fetchable_relay_log.cpp:69
std::condition_variable m_stream_cv
Definition: event_set_fetchable_relay_log.h:200
void safe_open_reader()
Safely opens the reader (closes if already open and reopens).
Definition: event_set_fetchable_relay_log.cpp:265
Stream_ptr m_input_stream
Decompressing stream object for handling compressed events.
Definition: event_set_fetchable_relay_log.h:185
void reset(bool reset_events) override
Resets the state to allow fetching again, clearing error state.
Definition: event_set_fetchable_relay_log.cpp:257
virtual ~Event_set_fetchable_relay_log() override
Destructor.
Definition: event_set_fetchable_relay_log.cpp:238
std::string m_failure_msg
Detailed error message if any.
Definition: event_set_fetchable_relay_log.h:179
bool m_stream_truncated
Definition: event_set_fetchable_relay_log.h:204
void seal_stream()
Seals stream-open batch. No more events will be appended.
Definition: event_set_fetchable_relay_log.cpp:86
Represents metadata of a set of events, capable of being fetched from a storage.
Definition: event_set_fetchable.h:55
std::shared_ptr< Log_event > Log_event_ptr
Definition: event_set_fetchable.h:59
Stream class that yields Log_event objects, including events contained in Transaction_payload_log_eve...
Definition: channel.cpp:28
std::shared_ptr< Relay_log_deleter > Relay_log_deleter_handle
Represents a shared reference to Relay_log_deleter.
Definition: relay_log_deleter.h:40
Return_status
Simple, strongly-typed enumeration to indicate internal status: ok, error.
Definition: return_status.h:40
const char * filename
Definition: pfs_example_component_population.cc:67