Reference

ACE_WIN32_Asynch_Accept(3)

This class is a factory for starting off asynchronous accepts on a listen handle.

NAME

ACE_WIN32_Asynch_Accept -

This class is a factory for starting off asynchronous accepts on a listen handle.

SYNOPSIS

class ACE_WIN32_Asynch_Accept : 
  public virtual ACE_Asynch_Accept_Impl,
  public ACE_WIN32_Asynch_Operation
{
  public:
    ACE_WIN32_Asynch_Accept (ACE_WIN32_Proactor *win32_proactor);
    int accept (
        ACE_Message_Block &message_block,
        u_long bytes_to_read,
        ACE_HANDLE accept_handle,
        const void *act,
        int priority,
        int signal_number = 0
        );
    ~ACE_WIN32_Asynch_Accept (void);
    int open (
        ACE_Handler &handler,
        ACE_HANDLE handle,
        const void *completion_key,
        ACE_Proactor *proactor
        );
    int cancel (void);
    ACE_Proactor* proactor (void) const;
};

DESCRIPTION

These classes only works on Win32 platforms.

The implementation of ACE_Asynch_Transmit_File and ACE_Asynch_Accept are only supported if ACE_HAS_WINSOCK2 is defined or you are on WinNT 4.0 or higher.

PUBLIC MEMBERS

ACE_WIN32_Asynch_Accept (ACE_WIN32_Proactor *win32_proactor);

Constructor.

int accept (
    ACE_Message_Block &message_block,
    u_long bytes_to_read,
    ACE_HANDLE accept_handle,
    const void *act,
    int priority,
    int signal_number = 0
    );

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.

~ACE_WIN32_Asynch_Accept (void);

Destructor.

int open (
    ACE_Handler &handler,
    ACE_HANDLE handle,
    const void *completion_key,
    ACE_Proactor *proactor
    );

Initializes the factory with information which will be used with each asynchronous call. If (handle == ACE_INVALID_HANDLE), ACE_Handler::handle will be called on the handler to get the correct handle.

int cancel (void);

This cancels all pending accepts operations that were issued by the calling thread. The function does not cancel asynchronous operations issued by other threads.

ACE_Proactor* proactor (void) const;

Return the underlying proactor.

AUTHOR

Irfan Pyarali ([email protected]), Tim Harrison ([email protected]) and Alexander Babu Arulanthu [email protected]

LIBRARY

ace