11 #ifndef ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP 12 #define ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP 14 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 20 #if defined(ASIO_HAS_IOCP) \ 21 || (!defined(ASIO_HAS_DEV_POLL) \ 22 && !defined(ASIO_HAS_EPOLL) \ 23 && !defined(ASIO_HAS_KQUEUE) \ 24 && !defined(ASIO_WINDOWS_RUNTIME)) 31 template <
typename Time_Traits>
34 do_add_timer_queue(queue);
38 template <
typename Time_Traits>
41 do_remove_timer_queue(queue);
44 template <
typename Time_Traits>
46 const typename Time_Traits::time_type& time,
53 io_service_.post_immediate_completion(op,
false);
58 io_service_.work_started();
63 template <
typename Time_Traits>
66 std::size_t max_cancelled)
70 std::size_t n = queue.
cancel_timer(timer, ops, max_cancelled);
72 io_service_.post_deferred_completions(ops);
81 #endif // defined(ASIO_HAS_IOCP) 87 #endif // ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP ASIO_DECL void interrupt()
void remove_timer_queue(timer_queue< Time_Traits > &queue)
std::size_t cancel_timer(timer_queue< Time_Traits > &queue, typename timer_queue< Time_Traits >::per_timer_data &timer, std::size_t max_cancelled=(std::numeric_limits< std::size_t >::max)())
bool enqueue_timer(const time_type &time, per_timer_data &timer, wait_op *op)
void schedule_timer(timer_queue< Time_Traits > &queue, const typename Time_Traits::time_type &time, typename timer_queue< Time_Traits >::per_timer_data &timer, wait_op *op)
void add_timer_queue(timer_queue< Time_Traits > &queue)
std::size_t cancel_timer(per_timer_data &timer, op_queue< operation > &ops, std::size_t max_cancelled=(std::numeric_limits< std::size_t >::max)())