39 #include <boost/asio.hpp> 67 native_io_service_type iNativeIoService;
79 struct no_thread : std::logic_error {
no_thread() : std::logic_error{
"neolib::async_task::no_thread" } {} };
82 typedef std::unique_ptr<neolib::message_queue> message_queue_pointer;
85 async_task(
const std::string& aName = std::string{});
97 bool have_message_queue()
const;
98 bool have_messages()
const;
99 neolib::message_queue& create_message_queue(std::function<
bool()> aIdleFunction = std::function<
bool()>());
102 bool pump_messages();
108 void set_destroying()
override;
109 void set_destroyed()
override;
113 void idle()
override;
119 message_queue_pointer iMessageQueue;
#define define_declared_event(name, declName,...)
io_service & networking_io_service()
static constexpr std::size_t kDefaultPollCount
native_io_service_type & native_object()
io_service & timer_io_service()
bool do_io(bool aProcessEvents=true, std::size_t aMaximumPollCount=kDefaultPollCount) override
boost::asio::io_service native_io_service_type
io_service(async_task &aTask)
auto destroying(Object &aObject, const Handler aHandler)
auto destroyed(Object &aObject, const Handler aHandler)