Template Class Action

Inheritance Relationships

Base Type

Derived Types

Class Documentation

template<class T>
class Action : public reactor::BaseAction

Subclassed by reactor::LogicalAction< T >, reactor::PhysicalAction< T >

Public Functions

inline virtual void startup() final
inline virtual void shutdown() final
template<class Dur = Duration>
void schedule(const ImmutableValuePtr<T> &value_ptr, Dur delay = Dur::zero())
template<class Dur = Duration>
inline void schedule(MutableValuePtr<T> &&value_ptr, Dur delay = Dur::zero())
template<class Dur = Duration>
inline void schedule(const T &value, Dur delay = Dur::zero())
template<class Dur = Duration>
inline void schedule(T &&value, Dur delay = Dur::zero())
template<class Dur = Duration>
void schedule(std::nullptr_t, Dur) = delete
inline auto get() const noexcept -> const ImmutableValuePtr<T>&

Protected Functions

inline Action(const std::string &name, Reactor *container, bool logical, Duration min_delay)

Private Functions

virtual void setup() noexcept final
virtual void cleanup() noexcept final

Private Members

ImmutableValuePtr<T> value_ptr_ = {nullptr}
std::map<Tag, ImmutableValuePtr<T>> events_
std::mutex mutex_events_