#include <ace/Asynch_IO.h>
class ACE_Asynch_Accept : public ACE_Asynch_Operation {
public:ACE_Asynch_Accept (void);int accept ( ACE_Message_Block &message_block, u_long bytes_to_read, ACE_HANDLE accept_handle = ACE_INVALID_HANDLE, const void *act = 0 );class Result : public ACE_Asynch_Result {
public:friend class ACE_Asynch_Read_Stream;u_long bytes_to_read (void) const;ACE_Message_Block &message_block (void) const;ACE_HANDLE handle (void) const;Result ( ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block &message_block, u_long bytes_to_read, const void* act, ACE_HANDLE event );virtual void complete ( u_long bytes_transferred, int success, const void *completion_key, u_long error = 0 );friend class ACE_Asynch_Write_Stream;u_long bytes_to_write (void) const;ACE_Message_Block &message_block (void) const;ACE_HANDLE handle (void) const;Result ( ACE_Handler &handler, ACE_HANDLE handle, ACE_Message_Block &message_block, u_long bytes_to_write, const void* act, ACE_HANDLE event );virtual void complete ( u_long bytes_transferred, int success, const void *completion_key, u_long error = 0 );friend class ACE_Asynch_Read_File;friend class ACE_Asynch_Write_File;friend class ACE_Asynch_Accept;u_long bytes_to_read (void) const;ACE_Message_Block &message_block (void) const;ACE_HANDLE listen_handle (void) const;ACE_HANDLE accept_handle (void) const;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 );virtual void complete ( u_long bytes_transferred, int success, const void *completion_key, u_long error = 0 );friend class ACE_Asynch_Transmit_File;ACE_HANDLE socket (void) const;ACE_HANDLE file (void) const;Header_And_Trailer *header_and_trailer (void) const;u_long bytes_to_write (void) const;u_long bytes_per_send (void) const;u_long flags (void) const;Result ( ACE_Handler &handler, ACE_HANDLE socket, ACE_HANDLE 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 );virtual void complete ( u_long bytes_transferred, int success, const void *completion_key, u_long error = 0 );protected:u_long bytes_to_read_;ACE_Message_Block &message_block_;ACE_HANDLE handle_;u_long bytes_to_write_;ACE_Message_Block &message_block_;ACE_HANDLE handle_;u_long bytes_to_read_;ACE_Message_Block &message_block_;ACE_HANDLE listen_handle_;ACE_HANDLE accept_handle_;ACE_HANDLE socket_;ACE_HANDLE file_;Header_And_Trailer *header_and_trailer_;u_long bytes_to_write_;u_long bytes_per_send_;u_long flags_;private: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 );virtual void complete ( u_long bytes_transferred, int success, const void *completion_key, u_long error = 0 );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 );virtual void complete ( u_long bytes_transferred, int success, const void *completion_key, u_long error = 0 );};
};
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
ACE_Asynch_Accept (void);
int accept (
ACE_Message_Block &message_block,
u_long bytes_to_read,
ACE_HANDLE accept_handle = ACE_INVALID_HANDLE,
const void *act = 0
);
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.