NAME
ACE_WIN32_Asynch_Transmit_File_Result -
This class implements ACE_Asynch_Transmit_File::Result for WIN32 platforms.
SYNOPSIS
class ACE_WIN32_Asynch_Transmit_File_Result :
public virtual ACE_Asynch_Transmit_File_Result_Impl,
public ACE_WIN32_Asynch_Result
{
public:
friend class ACE_WIN32_Asynch_Transmit_File;
friend class ACE_WIN32_Proactor;
ACE_HANDLE socket (void) const;
ACE_HANDLE file (void) const;
ACE_Asynch_Transmit_File::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;
u_long bytes_transferred (void) const;
const void *act (void) const;
int success (void) const;
const void *completion_key (void) const;
u_long error (void) const;
ACE_HANDLE event (void) const;
u_long offset (void) const;
u_long offset_high (void) const;
int priority (void) const;
int signal_number (void) const;
int post_completion (ACE_Proactor_Impl *proactor);
protected:
ACE_WIN32_Asynch_Transmit_File_Result (
ACE_Handler &handler,
ACE_HANDLE socket,
ACE_HANDLE file,
ACE_Asynch_Transmit_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,
int priority,
int signal_number = 0
);
virtual void complete (
u_long bytes_transferred,
int success,
const void *completion_key,
u_long error
);
virtual ~ACE_WIN32_Asynch_Transmit_File_Result (void);
ACE_HANDLE socket_;
ACE_HANDLE file_;
ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer_;
u_long bytes_to_write_;
u_long bytes_per_send_;
u_long flags_;
};
DESCRIPTION
These classes 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
friend class ACE_WIN32_Asynch_Transmit_File;
Factory class will have special permission.
friend class ACE_WIN32_Proactor;
Proactor class has special permission.
ACE_HANDLE socket (void) const;
Socket used for transmitting the file.
ACE_HANDLE file (void) const;
File from which the data is read.
ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer (
void
) const;
Header and trailer data associated with this transmit file.
u_long bytes_to_write (void) const;
The number of bytes which were requested at the start of the asynchronous transmit file.
u_long bytes_per_send (void) const;
Number of bytes per send requested at the start of the transmit file.
u_long flags (void) const;
Flags which were passed into transmit file.
u_long bytes_transferred (void) const;
Number of bytes transferred by the operation.
const void *act (void) const;
ACT associated with the operation.
int success (void) const;
Did the operation succeed?
const void *completion_key (void) const;
This returns the ACT associated with the handle when it was registered with the I/O completion port. This ACT is not the same as the ACT associated with the asynchronous operation.
u_long error (void) const;
Error value if the operation fail.
ACE_HANDLE event (void) const;
Event associated with the OVERLAPPED structure.
u_long offset (void) const;
This really make sense only when doing file I/O.
u_long offset_high (void) const;
Offset_high associated with the OVERLAPPED structure.
int priority (void) const;
The priority of the asynchronous operation. Currently, this is not supported on Win32.
int signal_number (void) const;
No-op. Returns 0.
int post_completion (ACE_Proactor_Impl *proactor);
Post this to the Proactor's completion port.
PROTECTED MEMBERS
ACE_WIN32_Asynch_Transmit_File_Result (
ACE_Handler &handler,
ACE_HANDLE socket,
ACE_HANDLE file,
ACE_Asynch_Transmit_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,
int priority,
int signal_number = 0
);
Constructor is protected since creation is limited to ACE_Asynch_Transmit_File factory.
virtual void complete (
u_long bytes_transferred,
int success,
const void *completion_key,
u_long error
);
Proactor will call this method when the write completes.
virtual ~ACE_WIN32_Asynch_Transmit_File_Result (void);
Destructor.
ACE_HANDLE socket_;
Network I/O handle.
ACE_HANDLE file_;
File I/O handle.
ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer_;
Header and trailer data associated with this transmit file.
u_long bytes_to_write_;
The number of bytes which were requested at the start of the asynchronous transmit file.
u_long bytes_per_send_;
Number of bytes per send requested at the start of the transmit file.
u_long flags_;
Flags which were passed into transmit file.
AUTHOR
Irfan Pyarali ([email protected]), Tim Harrison ([email protected]) and Alexander Babu Arulanthu [email protected]
LIBRARY
ace