NAME

ACE_Asynch_Transmit_Handler - Auxillary handler for doing Asynch_Transmit_File in Unix. ACE_Asynch_Transmit_File internally uses this.

SYNOPSIS

#include <ace/Asynch_IO.h>

class ACE_Asynch_Transmit_Handler : public ACE_Handler { public: ACE_Asynch_Transmit_Handler ( ACE_Asynch_Transmit_File::Result *result, ACE_Proactor *proactor ); virtual ~ACE_Asynch_Transmit_Handler (void); int transmit (void); protected: virtual void handle_write_stream ( const ACE_Asynch_Write_Stream::Result &result ); virtual void handle_read_file ( const ACE_Asynch_Read_File::Result &result ); private: int initiate_read_file (void); ACE_Asynch_Transmit_File::Result *result_; ACE_Proactor *proactor_; ACE_Asynch_Read_File rf_; ACE_Asynch_Write_Stream ws_; ACE_Message_Block *mb_; enum ACT{ HEADER_ACT = 1, DATA_ACT = 2, TRAILER_ACT = 3 }; ACT header_act_; ACT data_act_; ACT trailer_act_; size_t file_offset_; size_t file_size_; size_t bytes_transferred_; size_t transmit_file_done_; };

DESCRIPTION

This only works on Win32 platforms or on POSIX platforms with aio_ routines.

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_Transmit_Handler (
    ACE_Asynch_Transmit_File::Result *result,
    ACE_Proactor *proactor
    );

virtual ~ACE_Asynch_Transmit_Handler (void);

int transmit (void);

PROTECTED MEMBERS

virtual void handle_write_stream (
    const ACE_Asynch_Write_Stream::Result &result
    );

virtual void handle_read_file (
    const ACE_Asynch_Read_File::Result &result
    );

PRIVATE MEMBERS

int initiate_read_file (void);

ACE_Asynch_Transmit_File::Result *result_;

ACE_Proactor *proactor_;

ACE_Asynch_Read_File rf_;

ACE_Asynch_Write_Stream ws_;

ACE_Message_Block *mb_;

ACT header_act_;

ACT data_act_;

ACT trailer_act_;

size_t file_offset_;

size_t file_size_;

size_t bytes_transferred_;

size_t transmit_file_done_;

AUTHOR

Irfan Pyarali (irfan@cs.wustl.edu), Tim Harrison (harrison@cs.wustl.edu) and Alexander Babu Arulanthu alex@cs.wustl.edu

LIBRARY

ace