#include <ace/Asynch_IO.h>
class ACE_Asynch_Read_File : public ACE_Asynch_Read_Stream {
public:
int read ( ACE_Message_Block &message_block, u_long bytes_to_read, u_long offset = 0, u_long offset_high = 0, const void *act = 0 );
class Result : public ACE_Asynch_Read_Stream::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
int read (
ACE_Message_Block &message_block,
u_long bytes_to_read,
u_long offset = 0,
u_long offset_high = 0,
const void *act = 0
);
bytes_to_read
will
be read and stored in the message_block
. The read will start
at offset
from the beginning of the file.