![]() |
MySQL 26.7.0
Source Code Documentation
|
Base interface for a dependency tracker. More...
#include <base_dependency_tracker.h>
Public Types | |
| using | Task_id_type = Task_id |
| using | Mutex_type = concurrency::Mutex |
Public Member Functions | |
| virtual bool | add_dependency (const Task_id_type &predecessor, const Task_id_type &successor)=0 |
| add_dependency More... | |
| virtual bool | activate_task (const Task_id &task)=0 |
| Register task in the system to prevent adding dependencies on non-existing tasks and adding active dependencies on tasks that are already finished. More... | |
| virtual bool | check_ready (const Task_id &task)=0 |
| check_ready More... | |
| virtual std::vector< Task_id > | mark_dependency_met (const Task_id &task, bool is_finished)=0 |
| Task is finished, mark all dependencies of this task as met. More... | |
| virtual | ~Base_dependency_tracker ()=default |
| Destructor. More... | |
Base interface for a dependency tracker.
Allows for:
|
virtualdefault |
Destructor.
|
pure virtual |
Register task in the system to prevent adding dependencies on non-existing tasks and adding active dependencies on tasks that are already finished.
Implemented in mysql::scheduler::Dependency_tracker_stub, and mysql::scheduler::Dependency_tracker_single_predecessor.
|
pure virtual |
add_dependency
Function adds dependency if valid
| predecessor | Predecessor task ID |
| successor | Successor task ID |
| true | Dependency added successfully |
| false | Failed to add dependency |
Implemented in mysql::scheduler::Dependency_tracker_stub, and mysql::scheduler::Dependency_tracker_single_predecessor.
|
pure virtual |
check_ready
Function checks whether a task is ready for execution
| task | Task ID |
Implemented in mysql::scheduler::Dependency_tracker_stub, and mysql::scheduler::Dependency_tracker_single_predecessor.
|
pure virtual |
Task is finished, mark all dependencies of this task as met.
| task | Identifier of a task that finished its execution |
| is_finished | Whether the task has finished execution |
Implemented in mysql::scheduler::Dependency_tracker_stub, and mysql::scheduler::Dependency_tracker_single_predecessor.