asio::detail::select_reactor< Own_Thread > Class Template Reference

#include <select_reactor.hpp>

Inheritance diagram for asio::detail::select_reactor< Own_Thread >:

asio::detail::service_base< Type > asio::io_service::service

List of all members.

Public Member Functions

 select_reactor (asio::io_service &io_service)
 ~select_reactor ()
void shutdown_service ()
 Destroy all user-defined handler objects owned by the service.
int register_descriptor (socket_type descriptor)
template<typename Handler>
void start_read_op (socket_type descriptor, Handler handler)
template<typename Handler>
void start_write_op (socket_type descriptor, Handler handler)
template<typename Handler>
void start_except_op (socket_type descriptor, Handler handler)
template<typename Handler>
void start_write_and_except_ops (socket_type descriptor, Handler handler)
void cancel_ops (socket_type descriptor)
void enqueue_cancel_ops_unlocked (socket_type descriptor)
void close_descriptor (socket_type descriptor)
template<typename Time_Traits>
void add_timer_queue (timer_queue< Time_Traits > &timer_queue)
template<typename Time_Traits>
void remove_timer_queue (timer_queue< Time_Traits > &timer_queue)
template<typename Time_Traits, typename Handler>
void schedule_timer (timer_queue< Time_Traits > &timer_queue, const typename Time_Traits::time_type &time, Handler handler, void *token)
template<typename Time_Traits>
std::size_t cancel_timer (timer_queue< Time_Traits > &timer_queue, void *token)

Private Member Functions

void run (bool block)
void run_thread ()
void interrupt ()
bool all_timer_queues_are_empty () const
timevalget_timeout (timeval &tv)
void cancel_ops_unlocked (socket_type descriptor)

Static Private Member Functions

static void call_run_thread (select_reactor *reactor)

Private Attributes

asio::detail::mutex mutex_
bool select_in_progress_
select_interrupter interrupter_
reactor_op_queue< socket_typeread_op_queue_
reactor_op_queue< socket_typewrite_op_queue_
reactor_op_queue< socket_typeexcept_op_queue_
std::vector< timer_queue_base * > timer_queues_
std::vector< socket_typepending_cancellations_
bool stop_thread_
asio::detail::threadthread_
bool shutdown_

Friends

class task_io_service< select_reactor< Own_Thread > >


Detailed Description

template<bool Own_Thread>
class asio::detail::select_reactor< Own_Thread >

Definition at line 49 of file select_reactor.hpp.


Constructor & Destructor Documentation

template<bool Own_Thread>
asio::detail::select_reactor< Own_Thread >::select_reactor ( asio::io_service io_service  )  [inline]

template<bool Own_Thread>
asio::detail::select_reactor< Own_Thread >::~select_reactor (  )  [inline]


Member Function Documentation

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::shutdown_service (  )  [inline, virtual]

template<bool Own_Thread>
int asio::detail::select_reactor< Own_Thread >::register_descriptor ( socket_type  descriptor  )  [inline]

Definition at line 109 of file select_reactor.hpp.

template<bool Own_Thread>
template<typename Handler>
void asio::detail::select_reactor< Own_Thread >::start_read_op ( socket_type  descriptor,
Handler  handler 
) [inline]

template<bool Own_Thread>
template<typename Handler>
void asio::detail::select_reactor< Own_Thread >::start_write_op ( socket_type  descriptor,
Handler  handler 
) [inline]

template<bool Own_Thread>
template<typename Handler>
void asio::detail::select_reactor< Own_Thread >::start_except_op ( socket_type  descriptor,
Handler  handler 
) [inline]

template<bool Own_Thread>
template<typename Handler>
void asio::detail::select_reactor< Own_Thread >::start_write_and_except_ops ( socket_type  descriptor,
Handler  handler 
) [inline]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::cancel_ops ( socket_type  descriptor  )  [inline]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::enqueue_cancel_ops_unlocked ( socket_type  descriptor  )  [inline]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::close_descriptor ( socket_type  descriptor  )  [inline]

template<bool Own_Thread>
template<typename Time_Traits>
void asio::detail::select_reactor< Own_Thread >::add_timer_queue ( timer_queue< Time_Traits > &  timer_queue  )  [inline]

template<bool Own_Thread>
template<typename Time_Traits>
void asio::detail::select_reactor< Own_Thread >::remove_timer_queue ( timer_queue< Time_Traits > &  timer_queue  )  [inline]

template<bool Own_Thread>
template<typename Time_Traits, typename Handler>
void asio::detail::select_reactor< Own_Thread >::schedule_timer ( timer_queue< Time_Traits > &  timer_queue,
const typename Time_Traits::time_type &  time,
Handler  handler,
void *  token 
) [inline]

template<bool Own_Thread>
template<typename Time_Traits>
std::size_t asio::detail::select_reactor< Own_Thread >::cancel_timer ( timer_queue< Time_Traits > &  timer_queue,
void *  token 
) [inline]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::run ( bool  block  )  [inline, private]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::run_thread (  )  [inline, private]

template<bool Own_Thread>
static void asio::detail::select_reactor< Own_Thread >::call_run_thread ( select_reactor< Own_Thread > *  reactor  )  [inline, static, private]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::interrupt (  )  [inline, private]

template<bool Own_Thread>
bool asio::detail::select_reactor< Own_Thread >::all_timer_queues_are_empty (  )  const [inline, private]

template<bool Own_Thread>
timeval* asio::detail::select_reactor< Own_Thread >::get_timeout ( timeval tv  )  [inline, private]

template<bool Own_Thread>
void asio::detail::select_reactor< Own_Thread >::cancel_ops_unlocked ( socket_type  descriptor  )  [inline, private]


Friends And Related Function Documentation

template<bool Own_Thread>
friend class task_io_service< select_reactor< Own_Thread > > [friend]

Definition at line 236 of file select_reactor.hpp.


Member Data Documentation

template<bool Own_Thread>
asio::detail::mutex asio::detail::select_reactor< Own_Thread >::mutex_ [private]

template<bool Own_Thread>
bool asio::detail::select_reactor< Own_Thread >::select_in_progress_ [private]

Definition at line 421 of file select_reactor.hpp.

Referenced by asio::detail::select_reactor< Own_Thread >::run().

template<bool Own_Thread>
select_interrupter asio::detail::select_reactor< Own_Thread >::interrupter_ [private]

template<bool Own_Thread>
reactor_op_queue<socket_type> asio::detail::select_reactor< Own_Thread >::read_op_queue_ [private]

template<bool Own_Thread>
reactor_op_queue<socket_type> asio::detail::select_reactor< Own_Thread >::write_op_queue_ [private]

template<bool Own_Thread>
reactor_op_queue<socket_type> asio::detail::select_reactor< Own_Thread >::except_op_queue_ [private]

template<bool Own_Thread>
std::vector<timer_queue_base*> asio::detail::select_reactor< Own_Thread >::timer_queues_ [private]

template<bool Own_Thread>
std::vector<socket_type> asio::detail::select_reactor< Own_Thread >::pending_cancellations_ [private]

template<bool Own_Thread>
bool asio::detail::select_reactor< Own_Thread >::stop_thread_ [private]

template<bool Own_Thread>
asio::detail::thread* asio::detail::select_reactor< Own_Thread >::thread_ [private]

template<bool Own_Thread>
bool asio::detail::select_reactor< Own_Thread >::shutdown_ [private]


The documentation for this class was generated from the following file:

Generated on Sun May 25 00:21:33 2008 by  doxygen 1.5.6