#include <applier_handler.h>
◆ Applier_handler()
Applier_handler::Applier_handler |
( |
| ) |
|
|
default |
◆ get_role()
int Applier_handler::get_role |
( |
| ) |
|
|
overridevirtual |
This method returns the handler role.
Handlers can have different roles according to the tasks they represent. Is based on this role that certain components can extract and interact with pipeline handlers. This means that if a role is given to a singleton handler, no one else can have that role.
- Returns
- the handler role
Implements Event_handler.
◆ handle_action()
Handling of an action as defined in the handler implementation.
As the handler can be included in a pipeline, somewhere in the method, the handler.next(action) method shall be invoked to allow the passing of the action to the next handler.
- Note
- Actions should not be treated asynchronously and as so, Continuations are not used here. Errors are returned directly or passed by in the action if it includes support for such
- Parameters
-
[in] | action | the pipeline event to be handled |
Implements Event_handler.
◆ handle_event()
Handling of an event as defined in the handler implementation.
As the handler can be included in a pipeline, somewhere in the method, the handler.next(event,continuation) method shall be invoked to allow the passing of the event to the next handler.
Also, if an error occurs, the continuation object shall be used to propagate such error. This class can also be used to know/report when the transaction to whom the event belongs was discarded.
- Parameters
-
[in] | event | the pipeline event to be handled |
[in,out] | continuation | termination notification object. |
Implements Event_handler.
◆ initialize()
int Applier_handler::initialize |
( |
| ) |
|
|
overridevirtual |
Initialization as defined in the handler implementation.
- Note
- It's up to the developer to decide its own initialization strategy, but the suggested approach is to initialize basic structures here and then depend on Action packets to configure and start existing handler routines.
Implements Event_handler.
◆ initialize_repositories()
int Applier_handler::initialize_repositories |
( |
bool |
reset_logs, |
|
|
ulong |
plugin_shutdown_timeout |
|
) |
| |
Initializes the SQL thread when receiving a configuration package.
- Parameters
-
reset_logs | if a reset was executed in the server |
plugin_shutdown_timeout | the plugin's timeout for component shutdown |
- Returns
- the operation status
- Return values
-
◆ is_applier_thread_waiting()
bool Applier_handler::is_applier_thread_waiting |
( |
| ) |
|
Checks if the applier, and its workers when parallel applier is enabled, has already consumed all relay log, that is, applier is waiting for transactions to be queued.
- Returns
- the applier status
- Return values
-
true | the applier is waiting |
false | otherwise |
◆ is_partial_transaction_on_relay_log()
int Applier_handler::is_partial_transaction_on_relay_log |
( |
| ) |
|
Checks if the channel's relay log contains partial transaction.
- Return values
-
true | If relaylog contains partial transaction. |
false | If relaylog does not contain partial transaction. |
◆ is_unique()
bool Applier_handler::is_unique |
( |
| ) |
|
|
overridevirtual |
This method identifies the handler as being unique.
An handler that is defined as unique is an handler that cannot be used more than once in a pipeline. Such tasks as certification and event application can only be done once. Unique handlers are also the only that, by being one of a kind, can be extracted during the pipeline life allowing dynamic changes to them.
- Returns
- if the handler is the a unique handler
- Return values
-
true | is a unique handler |
false | is a repeatable handler |
Implements Event_handler.
◆ start_applier_thread()
int Applier_handler::start_applier_thread |
( |
| ) |
|
Starts the SQL thread when receiving a action package.
- Returns
- the operation status
- Return values
-
◆ stop_applier_thread()
int Applier_handler::stop_applier_thread |
( |
| ) |
|
Stops the SQL thread when receiving a action package.
- Returns
- the operation status
- Return values
-
◆ terminate()
int Applier_handler::terminate |
( |
| ) |
|
|
overridevirtual |
Terminate the execution as defined in the handler implementation.
Implements Event_handler.
◆ wait_for_gtid_execution() [1/2]
int Applier_handler::wait_for_gtid_execution |
( |
double |
timeout | ) |
|
Checks if all the queued transactions were executed.
- Parameters
-
timeout | the time (seconds) after which the method returns if the above condition was not satisfied |
- Returns
- the operation status
- Return values
-
0 | All transactions were executed |
-1 | A timeout occurred |
-2 | An error occurred |
◆ wait_for_gtid_execution() [2/2]
int Applier_handler::wait_for_gtid_execution |
( |
std::string & |
retrieved_set, |
|
|
double |
timeout, |
|
|
bool |
update_THD_status = true |
|
) |
| |
Checks if all the given transactions were executed.
- Parameters
-
retrieved_set | the set in string format of transaction to wait for |
timeout | the time (seconds) after which the method returns if the above condition was not satisfied |
update_THD_status | Shall the method update the THD stage |
- Returns
- the operation status
- Return values
-
0 | All transactions were executed |
-1 | A timeout occurred |
-2 | An error occurred |
◆ channel_interface
The documentation for this class was generated from the following files: