AIStatefulTask ‐ Asynchronous, Stateful Task Scheduler library. Threads-like task objects evolving through user-defined states. |
Public Member Functions | |
Broker (bool debug) Args... task_args) | |
void | run (AIStatefulTask::Handler handler=AIStatefulTask::Handler::immediate) |
void | terminate () |
void | terminate (std::function< void(Task *)> callback) |
boost::intrusive_ptr< Task const > | run (statefultask::BrokerKey const &key, std::function< void(bool)> &&callback) |
Public Member Functions inherited from AIStatefulTask | |
Conditions | print_conditions (condition_type conditions) |
AIStatefulTask (bool debug) | |
void | run (Handler default_handler, std::function< void(bool)> cb_function) |
void | run (std::function< void(bool)> cb_function) |
The same as above but use the immediate Handler. | |
void | run (Handler default_handler, AIStatefulTask *parent, condition_type condition, on_abort_st on_abort=abort_parent) |
void | run (AIStatefulTask *parent, condition_type condition, on_abort_st on_abort=abort_parent) |
void | run (Handler default_handler=Handler::immediate) |
void | kill () |
void | abort () |
bool | signal (condition_type condition) |
bool | running () const |
bool | waiting () const |
bool | waiting_or_aborting () const |
bool | active (Handler handler) const |
bool | is_immediate () const |
bool | finished () const |
bool | aborted () const |
bool | executing () const |
duration_type | getDuration () const |
char const * | task_name () const |
Static Public Attributes | |
static constexpr state_type | state_end = Broker_do_work + 1 |
Static Public Attributes inherited from AIStatefulTask | |
static constexpr condition_type | slow_down_condition = 0x40000000 |
static constexpr condition_type | thread_pool_full_condition = 0x80000000 |
static constexpr condition_type | AND_conditions_mask = 0xf0000000 |
static constexpr condition_type | OR_conditions_mask = 0x0fffffff |
static constexpr state_type | state_end = bs_killed + 1 |
The next state value to use for derived classes. | |
Protected Types | |
enum | broker_state_type { Broker_start = direct_base_type::state_end , Broker_do_work } |
using | direct_base_type = AIStatefulTask |
Protected Types inherited from AIStatefulTask | |
enum | base_state_type { bs_reset , bs_initialize , bs_multiplex , bs_abort , bs_finish , bs_callback , bs_killed } |
The type of mState . More... | |
Protected Member Functions | |
char const * | state_str_impl (state_type run_state) const override |
Called to stringify a run state for debugging output. Must be overridden. More... | |
char const * | task_name_impl () const override |
This can be used to get a human readable name of the most-derived class. It must be guaranteed to always return the same pointer value so it can be used with Tracy (for example). More... | |
void | multiplex_impl (state_type run_state) override |
Called for base state bs_multiplex. More... | |
void | abort_impl () override |
Called for base state bs_abort. More... | |
Protected Member Functions inherited from AIStatefulTask | |
virtual | ~AIStatefulTask () |
Destructor. | |
void | set_state (state_type new_state) |
void | wait (condition_type conditions) |
void | wait_until (AIWaitConditionFunc const &wait_condition, condition_type conditions) |
void | wait_until (AIWaitConditionFunc const &wait_condition, condition_type conditions, state_type new_state) |
void | finish () |
utils::FuzzyBool | is_self_locked (AIStatefulTaskMutex const &stateful_task_mutex, AIStatefulTaskMutexNode const *handle) |
void | yield () |
void | target (Handler handler) |
void | yield (Handler handler) |
void | yield_frame (AIEngine *engine, unsigned int frames) |
void | yield_ms (AIEngine *engine, unsigned int ms) |
bool | yield_if_not (Handler handler) |
virtual char const * | condition_str_impl (condition_type condition) const |
Called to stringify a condition type for debugging output. More... | |
virtual void | initialize_impl () |
Called for base state bs_initialize. More... | |
virtual void | finish_impl () |
Called for base state bs_finish. More... | |
virtual void | force_killed () |
Called from AIEngine::flush(). More... | |
Additional Inherited Members | |
Public Types inherited from AIStatefulTask | |
enum | on_abort_st { abort_parent , signal_parent , do_nothing } |
What to do when a child task is aborted. More... | |
using | state_type = uint32_t |
The type of run_state. | |
using | condition_type = uint32_t |
The type of the skip_wait and idle bit masks. | |
Static Public Member Functions inherited from AIStatefulTask | |
static char const * | state_str (base_state_type state) |
|
overrideprotectedvirtual |
Called for base state bs_abort.
Reimplemented from AIStatefulTask.
|
overrideprotectedvirtual |
Called for base state bs_multiplex.
Implements AIStatefulTask.
|
overrideprotectedvirtual |
Called to stringify a run state for debugging output. Must be overridden.
Reimplemented from AIStatefulTask.
|
overrideprotectedvirtual |
This can be used to get a human readable name of the most-derived class. It must be guaranteed to always return the same pointer value so it can be used with Tracy (for example).
Implements AIStatefulTask.