66 template <
typename NativeObjectType>
95 struct no_message_queue : std::logic_error { no_message_queue() : std::logic_error(
"i_async_task::no_message_queue") {} };
116 virtual
bool halted() const noexcept = 0;
119 virtual
void wait() const noexcept = 0;
123 static
uuid const&
iid() {
static uuid const sIid{ 0x5e572b8a, 0x272a, 0x40d1, 0xa788, { 0xd7, 0x32, 0xf7, 0x74, 0xfc, 0xe5 } };
return sIid; }
virtual void * native_object()=0
virtual bool poll(bool aProcessEvents=true, std::size_t aMaximumPollCount=kDefaultPollCount)=0
i_async_service abstract_type
static constexpr std::size_t kDefaultPollCount
virtual ~i_async_service()=default
NativeObjectType & native_object()
virtual void register_event_queue(i_async_event_queue &aQueue)=0
virtual i_async_service & io_service()=0
virtual i_message_queue & message_queue()=0
virtual i_timer_service & timer_service()=0
virtual bool finished() const noexcept=0
static uuid const & iid()
virtual void wait() const noexcept=0
i_async_task abstract_type
virtual i_message_queue & create_message_queue(std::function< bool()> aIdleFunction=std::function< bool()>())=0
virtual void unregister_event_queue(i_async_event_queue &aQueue)=0
virtual bool joined() const =0
virtual bool running() const noexcept=0
virtual bool halted() const noexcept=0
virtual void join(i_thread &aThread)=0
virtual const i_message_queue & message_queue() const =0
virtual bool have_messages() const =0
virtual bool have_message_queue() const =0
virtual i_thread & thread() const =0
virtual bool pump_messages()=0
virtual i_timer_object & create_timer_object()=0
virtual void remove_timer_object(i_timer_object &aObject)=0
i_timer_service abstract_type
auto destroyed(Object &aObject, const Handler aHandler)
auto destroying(Object &aObject, const Handler aHandler)
#define declare_event(declName,...)