24#ifndef MYSQL_CSA_EVENT_SET_FETCHABLE_CACHE_H
25#define MYSQL_CSA_EVENT_SET_FETCHABLE_CACHE_H
27#include <condition_variable>
71 bool streaming_open =
false);
79 std::optional<Managed_event>
fetch_next()
override;
100 bool is_trx()
const override;
105 void reset(
bool reset_events)
override;
Definition: log_event.h:3901
Stream class that yields Log_event objects from a source.
Definition: decompressing_event_object_istream.h:67
Empty implementation of Event_set_fetchable that does not fetch events from the storage as they were ...
Definition: event_set_fetchable_cache.h:48
Log_event_ptr m_fde_base
Owning pointer to Format_description_event.
Definition: event_set_fetchable_cache.h:162
bool wait_next() override
Fetches the next event from the internal cache.
Definition: event_set_fetchable_cache.cpp:153
virtual ~Event_set_fetchable_cache() override
Destructor.
Definition: event_set_fetchable_cache.cpp:237
bool m_is_trx
Flag indicating if this is a transaction.
Definition: event_set_fetchable_cache.h:151
const std::string & get_error_str() const override
Retrieves the error message if any error occurred.
Definition: event_set_fetchable_cache.cpp:225
Event_set_fetchable_cache(Event_set_type &&events, bool is_trx, Log_event_ptr fde, Relay_log_deleter_handle delete_file_handle, bool streaming_open=false)
Constructs an Event_set_fetchable_cache with pre-fetched events.
Definition: event_set_fetchable_cache.cpp:36
std::condition_variable m_stream_cv
Definition: event_set_fetchable_cache.h:171
std::optional< Log_event_ptr > decompress()
Decompresses and returns the next event from the TPLE stream.
Definition: event_set_fetchable_cache.cpp:118
void end_decompression()
Helper to deinitialize the decompression stream and update status.
Definition: event_set_fetchable_cache.cpp:110
void append_event(IReader_event_ptr event, bool seal_after=false)
Appends one event to a stream-open cache batch.
Definition: event_set_fetchable_cache.cpp:64
bool m_stream_open
Definition: event_set_fetchable_cache.h:172
std::size_t m_event_id
Index of the next event to fetch.
Definition: event_set_fetchable_cache.h:145
void set_success() override
Callback notifying that task was executed successfully.
Definition: event_set_fetchable_cache.cpp:54
Return_status m_status
Status of the object.
Definition: event_set_fetchable_cache.h:149
void set_stream_truncated()
Marks stream-open cache batch as truncated.
Definition: event_set_fetchable_cache.cpp:87
Relay_log_deleter_handle m_delete_file_handle
Handle to relay log deleter, relay log will be removed when last living reference to this file is rel...
Definition: event_set_fetchable_cache.h:167
std::optional< Managed_event > fetch_next() override
Fetches the next event if possible.
Definition: event_set_fetchable_cache.cpp:177
Stream_ptr m_decompressing_stream
Decompressing stream created from TPLE if any.
Definition: event_set_fetchable_cache.h:155
void reset(bool reset_events) override
Resets the state to allow fetching the event set again, clearing any error state.
Definition: event_set_fetchable_cache.cpp:239
Event_set_type m_events
Cached vector of events.
Definition: event_set_fetchable_cache.h:130
void start_decompression()
Helper to initialize the decompression stream and update status.
Definition: event_set_fetchable_cache.cpp:96
bool m_stream_sealed
Definition: event_set_fetchable_cache.h:173
Transaction_payload_log_event * m_compressed_event_ptr
Non-owning pointer to compressed event casted to Transaction_payload_log_event.
Definition: event_set_fetchable_cache.h:158
Fde_ptr get_fde() override
Obtains non-owning pointer to current transaction FDE.
Definition: event_set_fetchable_cache.cpp:58
bool m_stream_truncated
Definition: event_set_fetchable_cache.h:174
std::mutex m_stream_mutex
Stream synchronization state.
Definition: event_set_fetchable_cache.h:170
bool is_trx() const override
Checks if this event set represents a transaction.
Definition: event_set_fetchable_cache.cpp:62
std::unique_ptr< Stream_type > Stream_ptr
Unique pointer to the decompressing stream.
Definition: event_set_fetchable_cache.h:59
std::string m_failure_msg
Detailed error message if any.
Definition: event_set_fetchable_cache.h:147
Log_event_ptr m_compressed_event
Compressed event used during decompression.
Definition: event_set_fetchable_cache.h:160
bool is_error() const override
Checks if an error occurred in the fetchable stream.
Definition: event_set_fetchable_cache.cpp:233
bool is_done() const override
Checks if the fetchable stream has finished processing without error.
Definition: event_set_fetchable_cache.cpp:229
bool m_is_done
Flag indicating if processing is done (finished or error).
Definition: event_set_fetchable_cache.h:143
std::vector< IReader_event_ptr > Event_set_type
Vector of Log_event_ptr representing a set of events.
Definition: event_set_fetchable_cache.h:55
Fde_ptr m_fde
Non-owning pointer to Format_description_event.
Definition: event_set_fetchable_cache.h:164
void seal_stream()
Seals stream-open cache batch.
Definition: event_set_fetchable_cache.cpp:79
bool m_decompressing
Flag indicating if currently decompressing a TPLE.
Definition: event_set_fetchable_cache.h:153
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
std::shared_ptr< IReader_event > IReader_event_ptr
Definition: ireader_event.h:33
Return_status
Simple, strongly-typed enumeration to indicate internal status: ok, error.
Definition: return_status.h:40