Public Types |
typedef ACE_Timer_Queue_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_QUEUE |
| Public type. More...
|
typedef int(* | PROACTOR_EVENT_HOOK )(ACE_Proactor *) |
Public Methods |
| ACE_Proactor (ACE_Proactor_Impl *implementation=0, int delete_implementation=0, TIMER_QUEUE *tq=0) |
virtual | ~ACE_Proactor (void) |
| Virtual destruction. More...
|
virtual int | close (void) |
| Close the associated ACE_Proactor_Impl implementation object. More...
|
virtual int | proactor_run_event_loop (PROACTOR_EVENT_HOOK=0) |
virtual int | proactor_run_event_loop (ACE_Time_Value &tv, PROACTOR_EVENT_HOOK=0) |
virtual int | proactor_end_event_loop (void) |
virtual int | proactor_event_loop_done (void) |
| Report if the ACE_Proactor event loop is finished. More...
|
virtual int | proactor_reset_event_loop (void) |
| Resets the <ACE_Proactor::end_event_loop_> static so that the <run_event_loop> method can be restarted. More...
|
virtual int | register_handle (ACE_HANDLE handle, const void *completion_key) |
| This method adds the <handle> to the I/O completion port. This function is a no-op function for Unix systems and returns 0;. More...
|
virtual long | schedule_timer (ACE_Handler &handler, const void *act, const ACE_Time_Value &time) |
virtual long | schedule_repeating_timer (ACE_Handler &handler, const void *act, const ACE_Time_Value &interval) |
virtual long | schedule_timer (ACE_Handler &handler, const void *act, const ACE_Time_Value &time, const ACE_Time_Value &interval) |
| This combines the above two methods into one. Mostly for backward compatibility. More...
|
virtual int | cancel_timer (ACE_Handler &handler, int dont_call_handle_close=1) |
| Cancel all timers associated with this <handler>. Returns number of timers cancelled. More...
|
virtual int | cancel_timer (long timer_id, const void **act=0, int dont_call_handle_close=1) |
virtual int | handle_events (ACE_Time_Value &wait_time) |
virtual int | handle_events (void) |
int | wake_up_dispatch_threads (void) |
| Add wakeup dispatch threads (reinit). More...
|
int | close_dispatch_threads (int wait) |
| Close all dispatch threads. More...
|
size_t | number_of_threads (void) const |
| Get number of thread used as a parameter to CreatIoCompletionPort. More...
|
void | number_of_threads (size_t threads) |
| Set number of thread used as a parameter to CreatIoCompletionPort. More...
|
TIMER_QUEUE * | timer_queue (void) const |
| Get timer queue. More...
|
void | timer_queue (TIMER_QUEUE *timer_queue) |
| Set timer queue. More...
|
virtual ACE_HANDLE | get_handle (void) const |
virtual ACE_Proactor_Impl * | implementation (void) const |
| Get the implementation class. More...
|
virtual ACE_Asynch_Read_Stream_Impl * | create_asynch_read_stream (void) |
| Create the correct implementation class for doing Asynch_Read_Stream. More...
|
virtual ACE_Asynch_Write_Stream_Impl * | create_asynch_write_stream (void) |
| Create the correct implementation class for doing Asynch_Write_Stream. More...
|
virtual ACE_Asynch_Read_File_Impl * | create_asynch_read_file (void) |
| Create the correct implementation class for doing Asynch_Read_File. More...
|
virtual ACE_Asynch_Write_File_Impl * | create_asynch_write_file (void) |
| Create the correct implementation class for doing Asynch_Write_File. More...
|
virtual ACE_Asynch_Accept_Impl * | create_asynch_accept (void) |
| Create the correct implementation class for doing Asynch_Accept. More...
|
virtual ACE_Asynch_Connect_Impl * | create_asynch_connect (void) |
| Create the correct implementation class for doing Asynch_Connect. More...
|
virtual ACE_Asynch_Transmit_File_Impl * | create_asynch_transmit_file (void) |
| Create the correct implementation class for doing Asynch_Transmit_File. More...
|
virtual ACE_Asynch_Read_Dgram_Impl * | create_asynch_read_dgram (void) |
| Create the correct implementation class for doing Asynch_Read_Dgram. More...
|
virtual ACE_Asynch_Write_Dgram_Impl * | create_asynch_write_dgram (void) |
| Create the correct implementation class for doing Asynch_Write_Dgram. More...
|
virtual ACE_Asynch_Read_Stream_Result_Impl * | create_asynch_read_stream_result (ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block &message_block, u_long bytes_to_read, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Read_Stream::Result class. More...
|
virtual ACE_Asynch_Write_Stream_Result_Impl * | create_asynch_write_stream_result (ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block &message_block, u_long bytes_to_write, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Write_Stream::Result. More...
|
virtual ACE_Asynch_Read_File_Result_Impl * | create_asynch_read_file_result (ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block &message_block, u_long bytes_to_read, const void *act, u_long offset, u_long offset_high, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Read_File::Result. More...
|
virtual ACE_Asynch_Write_File_Result_Impl * | create_asynch_write_file_result (ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block &message_block, u_long bytes_to_write, const void *act, u_long offset, u_long offset_high, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Write_File::Result. More...
|
virtual ACE_Asynch_Read_Dgram_Result_Impl * | create_asynch_read_dgram_result (ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block *message_block, size_t bytes_to_read, int flags, int protocol_family, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Read_Dgram::Result. More...
|
virtual ACE_Asynch_Write_Dgram_Result_Impl * | create_asynch_write_dgram_result (ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block *message_block, size_t bytes_to_write, int flags, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Write_Dgram::Result. More...
|
virtual ACE_Asynch_Accept_Result_Impl * | create_asynch_accept_result (ACE_Handler &handler, ACE_HANDLE listen_handle, ACE_HANDLE accept_handle, ACE_Message_Block &message_block, u_long bytes_to_read, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Accept::Result. More...
|
virtual ACE_Asynch_Connect_Result_Impl * | create_asynch_connect_result (ACE_Handler &handler, ACE_HANDLE connect_handle, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Connect::Result. More...
|
virtual ACE_Asynch_Transmit_File_Result_Impl * | create_asynch_transmit_file_result (ACE_Handler &handler, ACE_HANDLE socket, ACE_HANDLE file, ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer, u_long bytes_to_write, u_long offset, u_long offset_high, u_long bytes_per_send, u_long flags, const void *act, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
| Create the correct implementation class for ACE_Asynch_Transmit_File::Result. More...
|
virtual ACE_Asynch_Result_Impl * | create_asynch_timer (ACE_Handler &handler, const void *act, const ACE_Time_Value &tv, ACE_HANDLE event=ACE_INVALID_HANDLE, int priority=0, int signal_number=ACE_SIGRTMIN) |
Static Public Methods |
ACE_Proactor * | instance (size_t threads=0) |
| Get pointer to a process-wide <ACE_Proactor>. <threads> should be part of another method. More...
|
ACE_Proactor * | instance (ACE_Proactor *proactor, int delete_proactor=0) |
| Set pointer to a process-wide <ACE_Proactor> and return existing pointer. More...
|
void | close_singleton (void) |
| Delete the dynamically allocated Singleton. More...
|
void | cleanup (void *instance, void *arg) |
| Cleanup method, used by the <ACE_Object_Manager> to destroy the singleton. More...
|
const ACE_TCHAR * | dll_name (void) |
| Name of dll in which the singleton instance lives. More...
|
const ACE_TCHAR * | name (void) |
| Name of component--ACE_Proactor in this case. More...
|
int | run_event_loop (void) |
| Run the event loop until the <ACE_Proactor::handle_events> method returns -1 or the <end_event_loop> method is invoked. More...
|
int | run_event_loop (ACE_Time_Value &tv) |
int | end_event_loop (void) |
int | reset_event_loop (void) |
int | check_reconfiguration (ACE_Proactor *) |
int | event_loop_done (void) |
| Report if the <ACE_Proactor::instance> event loop is finished. More...
|
Protected Methods |
virtual int | proactor_post_wakeup_completions (int how_many) |
virtual void | implementation (ACE_Proactor_Impl *implementation) |
| Set the implementation class. More...
|
Static Protected Methods |
int | post_wakeup_completions (int how_many) |
Protected Attributes |
ACE_Proactor_Impl * | implementation_ |
| Delegation/implementation class that all methods will be forwarded to. More...
|
int | delete_implementation_ |
| Flag used to indicate whether we are responsible for cleaning up the implementation instance. More...
|
ACE_Proactor_Timer_Handler * | timer_handler_ |
| Handles timeout events. More...
|
ACE_Thread_Manager | thr_mgr_ |
| This will manage the thread in the Timer_Handler. More...
|
TIMER_QUEUE * | timer_queue_ |
| Timer Queue. More...
|
int | delete_timer_queue_ |
| Flag on whether to delete the timer queue. More...
|
sig_atomic_t | end_event_loop_ |
| Terminate the proactor event loop. More...
|
sig_atomic_t | event_loop_thread_count_ |
| Number of threads in the event loop. More...
|
ACE_SYNCH_MUTEX | mutex_ |
| Mutex to protect work with lists. More...
|
Static Protected Attributes |
ACE_Proactor * | proactor_ = 0 |
| Pointer to a process-wide <ACE_Proactor>. More...
|
int | delete_proactor_ = 0 |
| Must delete the <proactor_> if non-0. More...
|
Private Types |
typedef ACE_Timer_Queue_Iterator_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_QUEUE_ITERATOR |
typedef ACE_Timer_List_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_LIST |
typedef ACE_Timer_List_Iterator_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_LIST_ITERATOR |
typedef ACE_Timer_Heap_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_HEAP |
typedef ACE_Timer_Heap_Iterator_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_HEAP_ITERATOR |
typedef ACE_Timer_Wheel_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_WHEEL |
typedef ACE_Timer_Wheel_Iterator_T<
ACE_Handler *, ACE_Proactor_Handle_Timeout_Upcall,
ACE_SYNCH_RECURSIVE_MUTEX > | TIMER_WHEEL_ITERATOR |
Private Methods |
| ACE_Proactor (const ACE_Proactor &) |
| Deny access since member-wise won't work... More...
|
ACE_Proactor & | operator= (const ACE_Proactor &) |
Friends |
class | ACE_Proactor_Timer_Handler |
| Timer handler runs a thread and manages the timers, on behalf of the Proactor. More...
|