Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_POSIX_Asynch_Accept Class Reference

For the POSIX implementation this class is common for all Proactors (AIOCB/SIG/SUN). More...

#include <POSIX_Asynch_IO.h>

Inheritance diagram for ACE_POSIX_Asynch_Accept:

Inheritance graph
[legend]
Collaboration diagram for ACE_POSIX_Asynch_Accept:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_POSIX_Asynch_Accept (ACE_POSIX_Proactor *posix_proactor)
 Constructor. More...

virtual ~ACE_POSIX_Asynch_Accept (void)
 Destructor. More...

int open (ACE_Handler &handler, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor=0)
 This <open> belongs to ACE_POSIX_Asynch_Operation. More...

int accept (ACE_Message_Block &message_block, size_t bytes_to_read, ACE_HANDLE accept_handle, const void *act, int priority, int signal_number=0)
 This starts off an asynchronous accept. More...

int cancel (void)
 Cancel all pending pseudo-asynchronus requests Behavior as usual AIO request. More...

int close ()
 Close performs cancellation of all pending requests and closure the listen handle. More...

ACE_HANDLE get_handle (void) const
 virtual from ACE_Event_Handler. More...

void set_handle (ACE_HANDLE handle)
 virtual from ACE_Event_Handler. More...

int handle_input (ACE_HANDLE handle)
 virtual from ACE_Event_Handler Called when accept event comes up on <listen_handle>. More...

int handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
 virtual from ACE_Event_Handler. More...


Private Methods

int cancel_uncompleted (int flg_notify)
 flg_notify points whether or not we should send notification about canceled accepts Parameter flg_notify can be 0 - don't send notifications about canceled accepts 1 - notify user about canceled accepts according POSIX standards we should receive notifications on canceled AIO requests. More...


Private Attributes

int flg_open_
 1 - Accept is registered in ACE_Asynch_Pseudo_Task 0 - Aceept is deregisted in ACE_Asynch_Pseudo_Task. More...

int task_lock_count_
 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. More...

ACE_Unbounded_Queue< ACE_POSIX_Asynch_Accept_Result *> result_queue_
 Queue of Result pointers that correspond to all the pending accept operations. More...

ACE_SYNCH_MUTEX lock_
 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. More...


Detailed Description

For the POSIX implementation this class is common for all Proactors (AIOCB/SIG/SUN).


Constructor & Destructor Documentation

ACE_POSIX_Asynch_Accept::ACE_POSIX_Asynch_Accept ACE_POSIX_Proactor   posix_proactor
 

Constructor.

ACE_POSIX_Asynch_Accept::~ACE_POSIX_Asynch_Accept void    [virtual]
 

Destructor.


Member Function Documentation

int ACE_POSIX_Asynch_Accept::accept ACE_Message_Block   message_block,
size_t    bytes_to_read,
ACE_HANDLE    accept_handle,
const void *    act,
int    priority,
int    signal_number = 0
[virtual]
 

This starts off an asynchronous accept.

The asynchronous accept call also allows any initial data to be returned to the <handler>. Upto <bytes_to_read> will be read and stored in the <message_block>. The <accept_handle> will be used for the <accept> call. If (<accept_handle> == INVALID_HANDLE), a new handle will be created.

<message_block> must be specified. This is because the address of the new connection is placed at the end of this buffer.

Reimplemented from ACE_Asynch_Accept_Impl.

int ACE_POSIX_Asynch_Accept::cancel void    [virtual]
 

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

Reimplemented from ACE_POSIX_Asynch_Operation.

int ACE_POSIX_Asynch_Accept::cancel_uncompleted int    flg_notify [private]
 

flg_notify points whether or not we should send notification about canceled accepts Parameter flg_notify can be 0 - don't send notifications about canceled accepts 1 - notify user about canceled accepts according POSIX standards we should receive notifications on canceled AIO requests.

int ACE_POSIX_Asynch_Accept::close void   
 

Close performs cancellation of all pending requests and closure the listen handle.

ACE_HANDLE ACE_POSIX_Asynch_Accept::get_handle void    const [virtual]
 

virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.

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

virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.

int ACE_POSIX_Asynch_Accept::handle_input ACE_HANDLE    handle [virtual]
 

virtual from ACE_Event_Handler Called when accept event comes up on <listen_handle>.

Reimplemented from ACE_Event_Handler.

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

This <open> belongs to ACE_POSIX_Asynch_Operation.

We forward this call to that method. We have put this here to avoid the compiler warnings.

Reimplemented from ACE_POSIX_Asynch_Operation.

void ACE_POSIX_Asynch_Accept::set_handle ACE_HANDLE    handle [virtual]
 

virtual from ACE_Event_Handler.

Reimplemented from ACE_Event_Handler.


Member Data Documentation

int ACE_POSIX_Asynch_Accept::flg_open_ [private]
 

1 - Accept is registered in ACE_Asynch_Pseudo_Task 0 - Aceept is deregisted in ACE_Asynch_Pseudo_Task.

ACE_SYNCH_MUTEX ACE_POSIX_Asynch_Accept::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.

ACE_Unbounded_Queue<ACE_POSIX_Asynch_Accept_Result*> ACE_POSIX_Asynch_Accept::result_queue_ [private]
 

Queue of Result pointers that correspond to all the pending accept operations.

int ACE_POSIX_Asynch_Accept::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 Sun Dec 1 11:25:17 2002 for ACE by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001