NAME

ACE_Asynch_Read_Stream - This class is a factory for starting off asynchronous reads on a stream.

SYNOPSIS

#include <ace/Asynch_IO.h>

class ACE_Asynch_Read_Stream : public ACE_Asynch_Operation { public: ACE_Asynch_Read_Stream (void); int read ( ACE_Message_Block &message_block, u_long bytes_to_read, 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 ); };

protected: int shared_read (Result *result); };

DESCRIPTION

This 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_Asynch_Read_Stream (void);

int read (
    ACE_Message_Block &message_block,
    u_long bytes_to_read,
    const void *act = 0
    );

PROTECTED MEMBERS

int shared_read (Result *result);

AUTHOR

Irfan Pyarali (irfan@cs.wustl.edu) Tim Harrison (harrison@cs.wustl.edu)

LIBRARY

ace