MySQL 8.0.39
Source Code Documentation
|
#include <abstract_chain_element.h>
Public Member Functions | |
uint64 | get_id () const override |
Returns an application unique ID of this chain element object. More... | |
Abstract_chain_element & | operator= (Abstract_chain_element &&other)=delete |
Disable move assignment to avoid Wvirtual-move-assign warning. More... | |
void | register_progress_watcher (I_progress_watcher *new_progress_watcher) override |
Add new Progress Watcher to report to. More... | |
Public Member Functions inherited from Mysql::Tools::Dump::I_chain_element | |
~I_chain_element () override | |
Public Member Functions inherited from Mysql::Tools::Dump::I_progress_reporter | |
virtual | ~I_progress_reporter () |
Public Member Functions inherited from Mysql::Tools::Dump::Abstract_progress_reporter | |
void | register_progress_watcher (I_progress_watcher *new_progress_watcher) override |
Add new Progress Watcher to report to. More... | |
Protected Member Functions | |
Abstract_chain_element (std::function< bool(const Mysql::Tools::Base::Message_data &)> *message_handler, Simple_id_generator *object_id_generator) | |
template<typename TType , typename TClass > | |
bool | try_process_task (Item_processing_data *item_to_process, void(TClass::*processing_func)(TType *, Item_processing_data *)) |
Process task object with specified function if that task object can be casted to type TType. More... | |
template<typename TType , typename TClass > | |
bool | try_process_task (Item_processing_data *item_to_process, void(TClass::*processing_func)(TType *)) |
Process task object with specified function if that task object can be casted to type TType. More... | |
void | object_processing_starts (Item_processing_data *item_to_process) |
Item_processing_data * | object_to_be_processed_in_child (Item_processing_data *current_item_data, I_chain_element *child_chain_element) |
Item_processing_data * | new_task_created (I_dump_task *dump_task_created) |
Item_processing_data * | new_chain_created (Chain_data *new_chain_data, Item_processing_data *parent_processing_data, I_chain_element *child_chain_element) |
Item_processing_data * | new_chain_created (Item_processing_data *current_item_data, I_dump_task *dump_task_created) |
void | object_processing_ends (Item_processing_data *processed_item) |
uint64 | generate_new_object_id () |
Simple_id_generator * | get_object_id_generator () const |
void | pass_message (const Mysql::Tools::Base::Message_data &message_data) |
Passes message to message callback. More... | |
std::function< bool(const Mysql::Tools::Base::Message_data &)> * | get_message_handler () const |
virtual bool | need_callbacks_in_child () |
void | item_completion_in_child_callback (Item_processing_data *item_processed) override |
This callback can be requested to be called by child for any object processing. More... | |
Protected Member Functions inherited from Mysql::Tools::Dump::Abstract_progress_reporter | |
bool | have_progress_watcher () |
Specifies if have any Progress Watcher registered. More... | |
void | report_new_chain_created (Item_processing_data *new_chain_creator) |
Reports new non-empty chain being created by Chain Maker or new row fetched from table by Table Reader. More... | |
void | report_object_processing_started (Item_processing_data *process_data) |
Report new object(table, row or any other) was started processing by specified Object Reader, Table Reader, Formatter or Row Formatter. More... | |
void | report_object_processing_ended (Item_processing_data *finished_process_data) |
Report object(table, row or any other) finished being processed. More... | |
virtual void | report_crawler_completed (I_crawler *crawler) |
Reports crawler ended enumerating objects and creating chains for them. More... | |
void | register_progress_watchers_in_child (I_progress_reporter *reporter) |
Private Member Functions | |
void | item_completion_in_child_callback_wrapper (Item_processing_data *item_processed) |
Wrapper on item_completion_in_child_callback which allows creation of pointer to function which will then fetch correct virtual method pointer. More... | |
void | item_completion_in_child_completes_task_callback (Item_processing_data *item_processed) |
Wrapper on item_completion_in_child_callback_wrapper which also sets precessed task to be fully completed. More... | |
Item_processing_data * | task_to_be_processed_in_child (Item_processing_data *current_item_data, I_chain_element *child_chain_element, I_dump_task *task_to_be_processed, std::function< void(Item_processing_data *)> *callback) |
Private Attributes | |
uint64 | m_id |
std::function< bool(const Mysql::Tools::Base::Message_data &)> * | m_message_handler |
std::function< void(Item_processing_data *)> | m_item_processed_callback |
std::function< void(Item_processing_data *)> | m_item_processed_complete_callback |
Simple_id_generator * | m_object_id_generator |
Static Private Attributes | |
static std::atomic< uint64_t > | next_id |
Stores next chain element ID to be used. More... | |
|
protected |
|
protected |
|
overridevirtual |
Returns an application unique ID of this chain element object.
This helps progress watching with multiple parts of chain during all objects processing.
Implements Mysql::Tools::Dump::I_chain_element.
Reimplemented in Mysql::Tools::Dump::Abstract_crawler, Mysql::Tools::Dump::Abstract_progress_watcher, Mysql::Tools::Dump::Compression_lz4_writer, Mysql::Tools::Dump::Compression_zlib_writer, Mysql::Tools::Dump::File_writer, Mysql::Tools::Dump::Mysql_crawler, Mysql::Tools::Dump::Mysql_object_reader, Mysql::Tools::Dump::Mysqldump_tool_chain_maker, Mysql::Tools::Dump::Object_queue, Mysql::Tools::Dump::Sql_formatter, and Mysql::Tools::Dump::Standard_writer.
|
protected |
|
protected |
|
overrideprotectedvirtual |
This callback can be requested to be called by child for any object processing.
This will be called when the object processing has completed. Note that this function may be called from multiple threads so all implementations must be thread-safe.
Implements Mysql::Tools::Dump::I_chain_element.
Reimplemented in Mysql::Tools::Dump::Abstract_crawler, Mysql::Tools::Dump::Abstract_progress_watcher, Mysql::Tools::Dump::Compression_lz4_writer, Mysql::Tools::Dump::Compression_zlib_writer, Mysql::Tools::Dump::File_writer, Mysql::Tools::Dump::Mysql_crawler, Mysql::Tools::Dump::Mysql_object_reader, Mysql::Tools::Dump::Mysqldump_tool_chain_maker, Mysql::Tools::Dump::Object_queue, Mysql::Tools::Dump::Sql_formatter, and Mysql::Tools::Dump::Standard_writer.
|
private |
Wrapper on item_completion_in_child_callback which allows creation of pointer to function which will then fetch correct virtual method pointer.
|
private |
Wrapper on item_completion_in_child_callback_wrapper which also sets precessed task to be fully completed.
|
protectedvirtual |
Reimplemented in Mysql::Tools::Dump::Abstract_crawler.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
delete |
Disable move assignment to avoid Wvirtual-move-assign warning.
|
protected |
Passes message to message callback.
|
inlineoverridevirtual |
Add new Progress Watcher to report to.
Implements Mysql::Tools::Dump::I_progress_reporter.
Reimplemented in Mysql::Tools::Dump::Abstract_crawler, Mysql::Tools::Dump::Abstract_progress_watcher, Mysql::Tools::Dump::Compression_lz4_writer, Mysql::Tools::Dump::Compression_zlib_writer, Mysql::Tools::Dump::File_writer, Mysql::Tools::Dump::Mysql_crawler, Mysql::Tools::Dump::Mysql_object_reader, Mysql::Tools::Dump::Mysqldump_tool_chain_maker, Mysql::Tools::Dump::Object_queue, Mysql::Tools::Dump::Sql_formatter, and Mysql::Tools::Dump::Standard_writer.
|
private |
|
inlineprotected |
Process task object with specified function if that task object can be casted to type TType.
Returns true if object was processed.
|
inlineprotected |
Process task object with specified function if that task object can be casted to type TType.
Returns true if object was processed.
|
private |
|
private |
|
private |
|
private |
|
private |
|
staticprivate |
Stores next chain element ID to be used.
Used as ID generator.