11 #ifndef ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP    12 #define ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP    14 #if defined(_MSC_VER) && (_MSC_VER >= 1200)    16 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)    20 #if defined(ASIO_WINDOWS_RUNTIME)    27 template <
typename Time_Traits>
    28 void winrt_timer_scheduler::add_timer_queue(timer_queue<Time_Traits>& queue)
    30   do_add_timer_queue(queue);
    34 template <
typename Time_Traits>
    35 void winrt_timer_scheduler::remove_timer_queue(timer_queue<Time_Traits>& queue)
    37   do_remove_timer_queue(queue);
    40 template <
typename Time_Traits>
    41 void winrt_timer_scheduler::schedule_timer(timer_queue<Time_Traits>& queue,
    42     const typename Time_Traits::time_type& time,
    43     typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op)
    49     io_service_.post_immediate_completion(op, 
false);
    53   bool earliest = queue.enqueue_timer(time, timer, op);
    54   io_service_.work_started();
    59 template <
typename Time_Traits>
    60 std::size_t winrt_timer_scheduler::cancel_timer(timer_queue<Time_Traits>& queue,
    61     typename timer_queue<Time_Traits>::per_timer_data& timer,
    62     std::size_t max_cancelled)
    65   op_queue<operation> ops;
    66   std::size_t n = queue.cancel_timer(timer, ops, max_cancelled);
    68   io_service_.post_deferred_completions(ops);
    77 #endif // defined(ASIO_WINDOWS_RUNTIME)    79 #endif // ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP