60 bool poll(
bool aProcessEvents =
true, std::size_t aMaximumPollCount = kDefaultPollCount)
override;
68 mutable std::recursive_mutex iMutex;
69 std::vector<ref_ptr<i_timer_object>> iObjects;
90 struct no_thread : std::logic_error {
no_thread() : std::logic_error{
"neolib::async_task::no_thread" } {} };
95 typedef std::unique_ptr<i_message_queue> message_queue_pointer;
118 bool halted() const noexcept override;
119 void halt() override;
120 bool finished() const noexcept override;
121 void wait() const noexcept override;
125 void set_destroying() override;
126 void set_destroyed() override;
130 void cancel() noexcept override;
131 void idle() override;
134 std::recursive_mutex iMutex;
138 message_queue_pointer iMessageQueue;
neolib::i_async_service & io_service() override
bool joined() const override
bool have_message_queue() const override
void register_event_queue(i_async_event_queue &aQueue) override
void unregister_event_queue(i_async_event_queue &aQueue) override
const i_message_queue & message_queue() const override
bool have_messages() const override
void join(i_thread &aThread) override
i_async_task abstract_type
bool pump_messages() override
neolib::timer_service & timer_service() override
i_message_queue & message_queue() override
async_task(i_thread &aThread, const std::string &aName=std::string{})
async_task(const std::string &aName=std::string{})
define_declared_event(Destroying, destroying) define_declared_event(Destroyed
i_thread & thread() const override
i_message_queue & create_message_queue(std::function< bool()> aIdleFunction=std::function< bool()>()) override
bool running() const noexcept override
void * native_object() override
timer_service(async_task &aTask, bool aMultiThreaded=false)
void remove_timer_object(i_timer_object &aObject) override
i_timer_object & create_timer_object() override
bool poll(bool aProcessEvents=true, std::size_t aMaximumPollCount=kDefaultPollCount) override
auto destroyed(Object &aObject, const Handler aHandler)
auto destroying(Object &aObject, const Handler aHandler)
#define define_declared_event(name, declName,...)