ACE_WIN32_Asynch_Connect Class Reference

#include <WIN32_Asynch_IO.h>

Inheritance diagram for ACE_WIN32_Asynch_Connect:

Inheritance graph
[legend]
Collaboration diagram for ACE_WIN32_Asynch_Connect:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_WIN32_Asynch_Connect (ACE_WIN32_Proactor *win32_proactor)
 Constructor.
virtual ~ACE_WIN32_Asynch_Connect (void)
 Destructor.
int open (ACE_Handler &handler, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor=0)
int connect (ACE_HANDLE connect_handle, const ACE_Addr &remote_sap, const ACE_Addr &local_sap, int reuse_addr, const void *act, int priority, int signal_number=0)
int cancel (void)
int close (void)
ACE_HANDLE get_handle (void) const
 Virtual from ACE_Event_Handler.
void set_handle (ACE_HANDLE handle)
 Virtual from ACE_Event_Handler.
int handle_input (ACE_HANDLE handle)
 Virtual from ACE_Event_Handler.
int handle_output (ACE_HANDLE handle)
int handle_exception (ACE_HANDLE handle)
 Called when an exceptional events occur (e.g., SIGURG).
int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
 Virtual from ACE_Event_Handler.
ACE_Proactorproactor (void) const
 Return the underlying proactor.

Private Types

typedef ACE_Map_Manager< ACE_HANDLE,
ACE_WIN32_Asynch_Connect_Result *,
ACE_SYNCH_NULL_MUTEX > 
MAP_MANAGER
typedef MAP_MANAGER::ITERATOR MAP_ITERATOR
typedef MAP_MANAGER::ENTRY MAP_ENTRY

Private Member Functions

int connect_i (ACE_WIN32_Asynch_Connect_Result *result, const ACE_Addr &remote_sap, const ACE_Addr &local_sap, int reuse_addr)
int post_result (ACE_WIN32_Asynch_Connect_Result *result, int flg_post)
int cancel_uncompleted (int flg_notify, ACE_Handle_Set &set)
 Cancel uncompleted connect operations.

Private Attributes

int flg_open_
int task_lock_count_
MAP_MANAGER result_map_
ACE_SYNCH_MUTEX lock_

Member Typedef Documentation

typedef MAP_MANAGER::ENTRY ACE_WIN32_Asynch_Connect::MAP_ENTRY [private]
 

typedef MAP_MANAGER::ITERATOR ACE_WIN32_Asynch_Connect::MAP_ITERATOR [private]
 

typedef ACE_Map_Manager<ACE_HANDLE, ACE_WIN32_Asynch_Connect_Result *, ACE_SYNCH_NULL_MUTEX> ACE_WIN32_Asynch_Connect::MAP_MANAGER [private]
 


Constructor & Destructor Documentation

ACE_WIN32_Asynch_Connect::ACE_WIN32_Asynch_Connect ACE_WIN32_Proactor win32_proactor  ) 
 

Constructor.

ACE_WIN32_Asynch_Connect::~ACE_WIN32_Asynch_Connect void   )  [virtual]
 

Destructor.


Member Function Documentation

int ACE_WIN32_Asynch_Connect::cancel void   )  [virtual]
 

Cancel all pending pseudo-asynchronus requests Behavior as usual AIO request

Reimplemented from ACE_WIN32_Asynch_Operation.

int ACE_WIN32_Asynch_Connect::cancel_uncompleted int  flg_notify,
ACE_Handle_Set set
[private]
 

Cancel uncompleted connect operations.

Parameters:
flg_notify Indicates whether or not to send notification about canceled connect operations. If 0, don't send notifications. If 1, notify user about canceled connects. According WIN32 standards we should receive notifications on canceled AIO requests.
set Receives the set of I/O handles on which asynchronous connect requests were canceled as a result of this method. The contents of set are completely replaced.

int ACE_WIN32_Asynch_Connect::close void   ) 
 

Close performs cancellation of all pending requests and close the connect handle

int ACE_WIN32_Asynch_Connect::connect ACE_HANDLE  connect_handle,
const ACE_Addr remote_sap,
const ACE_Addr local_sap,
int  reuse_addr,
const void *  act,
int  priority,
int  signal_number = 0
[virtual]
 

Start an asynchronous connect.

Parameters:
connect_handle Handle to use for the connect. If the value ACE_INVALID_HANDLE, a new handle will be created.
Return values:
0 Success
-1 Error

Implements ACE_Asynch_Connect_Impl.

int ACE_WIN32_Asynch_Connect::connect_i ACE_WIN32_Asynch_Connect_Result result,
const ACE_Addr remote_sap,
const ACE_Addr local_sap,
int  reuse_addr
[private]
 

ACE_HANDLE ACE_WIN32_Asynch_Connect::get_handle void   )  const [virtual]
 

Virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.

int ACE_WIN32_Asynch_Connect::handle_close ACE_HANDLE  handle,
ACE_Reactor_Mask  close_mask
[virtual]
 

Virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.

int ACE_WIN32_Asynch_Connect::handle_exception ACE_HANDLE  handle  )  [virtual]
 

Called when an exceptional events occur (e.g., SIGURG).

Reimplemented from ACE_Event_Handler.

int ACE_WIN32_Asynch_Connect::handle_input ACE_HANDLE  handle  )  [virtual]
 

Virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.

int ACE_WIN32_Asynch_Connect::handle_output ACE_HANDLE  handle  )  [virtual]
 

Called when output events are possible (e.g., when flow control abates or non-blocking connection completes).

Reimplemented from ACE_Event_Handler.

int ACE_WIN32_Asynch_Connect::open ACE_Handler handler,
ACE_HANDLE  handle,
const void *  completion_key,
ACE_Proactor proactor = 0
[virtual]
 

This open belongs to ACE_WIN32_Asynch_Operation. We forward this call to that method. We have put this here to avoid the compiler warnings.

Reimplemented from ACE_WIN32_Asynch_Operation.

int ACE_WIN32_Asynch_Connect::post_result ACE_WIN32_Asynch_Connect_Result result,
int  flg_post
[private]
 

ACE_Proactor * ACE_WIN32_Asynch_Connect::proactor void   )  const [virtual]
 

Return the underlying proactor.

Reimplemented from ACE_WIN32_Asynch_Operation.

void ACE_WIN32_Asynch_Connect::set_handle ACE_HANDLE  handle  )  [virtual]
 

Virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.


Member Data Documentation

int ACE_WIN32_Asynch_Connect::flg_open_ [private]
 

1 - Connect is registered in ACE_Asynch_Pseudo_Task 0 - Aceept is deregisted in ACE_Asynch_Pseudo_Task

ACE_SYNCH_MUTEX ACE_WIN32_Asynch_Connect::lock_ [private]
 

The lock to protect the result queue which is shared. The queue is updated by main thread in the register function call and through the auxillary thread in the deregister fun. So let us mutex it.

MAP_MANAGER ACE_WIN32_Asynch_Connect::result_map_ [private]
 

Map of Result pointers that correspond to all the <accept>'s pending.

int ACE_WIN32_Asynch_Connect::task_lock_count_ [private]
 

To prevent ACE_Asynch_Pseudo_Task from deletion while we make a call to the ACE_Asynch_Pseudo_Task This is extra cost !!! we could avoid them if all applications will follow the rule: Proactor should be deleted only after deletion all AsynchOperation objects connected with it


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 15:51:25 2005 for ACE by  doxygen 1.4.5