#include <ace/Asynch_IO.h>
class ACE_Asynch_Write_Stream : public ACE_Asynch_Operation {
public:ACE_Asynch_Write_Stream (void);int write ( ACE_Message_Block &message_block, u_long bytes_to_write, 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;friend class ACE_Asynch_Accept_Handler;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_write (Result *result);
};
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_Write_Stream (void);
int write (
ACE_Message_Block &message_block,
u_long bytes_to_write,
const void *act = 0
);
bytes_to_write
will be written from the message_block.
int shared_write (Result *result);
alex@cs.wustl.edu