MySQL 26.7.0
Source Code Documentation
mysql::scheduler::Delayed_schedule Class Reference

Represents Schedule for one-shot, delayed task. More...

#include <delayed_schedule.h>

Inheritance diagram for mysql::scheduler::Delayed_schedule:
[legend]

Public Member Functions

 Delayed_schedule (Task_id task_id, Scheduler_clock_ptr clock, uint64_t delay)
 Constructor. More...
 
bool next () override
 This function modifies the state of the schedule to next state. More...
 
const Time_delay_typeget_task_delay () const override
 Gets information about next execution time. More...
 
bool is_finished () const override
 
const Scheduler_clock_ptrget_clock () const override
 Obtain task clock. More...
 
const Task_idget_id () const override
 Obtain task id. More...
 
- Public Member Functions inherited from mysql::scheduler::Task_schedule
 Task_schedule ()
 Constructor sets the task delay to a given value. More...
 
bool has_higher_priority (const Task_schedule &arg, int phase) const
 Compare two task schedules to indicate which task should run first. More...
 
virtual ~Task_schedule ()=default
 Destructor. More...
 
virtual const Scheduler_clock_ptrget_phase_clock (unsigned int) const
 Obtain task clock for the given phase (current one by default) More...
 
virtual const Time_delay_typeget_phase_delay (unsigned int) const
 Obtains task execution point as a delay from the clock start, but for the given phase (current one by default) More...
 
virtual unsigned int get_phase_id () const
 Returns current phase id (sequence number), 0 by default. More...
 
void set_enqueued_by_scheduler ()
 Sets the flag indicating that the task was enqueued by the scheduler. More...
 
bool is_enqueued_by_scheduler () const
 Checks if the task was enqueued by the scheduler. More...
 
bool is_phase_ready () const
 Checks if the current phase is ready for execution. More...
 
void set_phase_ready ()
 Sets the phase ready flag to true. More...
 

Private Attributes

Task_id m_task_id
 This task id. More...
 
Scheduler_clock_ptr m_clock
 Clock this schedule is based on. More...
 
uint64_t m_task_delay
 Delay since clock start point. More...
 

Detailed Description

Represents Schedule for one-shot, delayed task.

Constructor & Destructor Documentation

◆ Delayed_schedule()

mysql::scheduler::Delayed_schedule::Delayed_schedule ( Task_id  task_id,
Scheduler_clock_ptr  clock,
uint64_t  delay 
)

Constructor.

constructs schedule with delay us from the clock start point

Parameters
task_idTask identifier
clockScheduler clock
delayDelay in microseconds

Member Function Documentation

◆ get_clock()

const Scheduler_clock_ptr & mysql::scheduler::Delayed_schedule::get_clock ( ) const
overridevirtual

Obtain task clock.

Implements mysql::scheduler::Task_schedule.

◆ get_id()

const Task_id & mysql::scheduler::Delayed_schedule::get_id ( ) const
overridevirtual

Obtain task id.

Implements mysql::scheduler::Task_schedule.

◆ get_task_delay()

const Time_delay_type & mysql::scheduler::Delayed_schedule::get_task_delay ( ) const
overridevirtual

Gets information about next execution time.

Returns
Current phase task delay

Implements mysql::scheduler::Task_schedule.

◆ is_finished()

bool mysql::scheduler::Delayed_schedule::is_finished ( ) const
inlineoverridevirtual
Note
TBI in derived

Implements mysql::scheduler::Task_schedule.

◆ next()

bool mysql::scheduler::Delayed_schedule::next ( )
overridevirtual

This function modifies the state of the schedule to next state.

Returns
false - Task is one-shot task, won't be executed in the future

Implements mysql::scheduler::Task_schedule.

Member Data Documentation

◆ m_clock

Scheduler_clock_ptr mysql::scheduler::Delayed_schedule::m_clock
private

Clock this schedule is based on.

◆ m_task_delay

uint64_t mysql::scheduler::Delayed_schedule::m_task_delay
private

Delay since clock start point.

◆ m_task_id

Task_id mysql::scheduler::Delayed_schedule::m_task_id
private

This task id.


The documentation for this class was generated from the following files: