Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_WIN32_Asynch_Transmit_File Class Reference

This class is a factory for starting off asynchronous transmit files on a stream. More...

#include <WIN32_Asynch_IO.h>

Inheritance diagram for ACE_WIN32_Asynch_Transmit_File

Inheritance graph
[legend]
Collaboration diagram for ACE_WIN32_Asynch_Transmit_File:

Collaboration graph
[legend]
List of all members.

Public Methods

 ACE_WIN32_Asynch_Transmit_File (ACE_WIN32_Proactor *win32_proactor)
 Constructor.

int transmit_file (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, int priority, int signal_number = 0)
 ~ACE_WIN32_Asynch_Transmit_File (void)
 Destructor.

int open (ACE_Handler &handler, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor)
int cancel (void)
ACE_Proactorproactor (void) const
 Return the underlying proactor.


Detailed Description

This class is a factory for starting off asynchronous transmit files on a stream.

Once <open> is called, multiple asynchronous <transmit_file>s can started using this class. A ACE_Asynch_Transmit_File::Result will be passed back to the <handler> when the asynchronous transmit file completes through the callback.

The transmit_file function transmits file data over a connected network connection. The function uses the operating system's cache manager to retrieve the file data. This function provides high-performance file data transfer over network connections. This function would be of great use in a Web Server, Image Server, etc.


Constructor & Destructor Documentation

ACE_WIN32_Asynch_Transmit_File::ACE_WIN32_Asynch_Transmit_File ( ACE_WIN32_Proactor * win32_proactor )
 

Constructor.

ACE_WIN32_Asynch_Transmit_File::~ACE_WIN32_Asynch_Transmit_File ( void )
 

Destructor.


Member Function Documentation

int ACE_WIN32_Asynch_Transmit_File::cancel ( void )
 

This cancels all pending accepts operations that were issued by the calling thread. The function does not cancel asynchronous operations issued by other threads.

Reimplemented from ACE_WIN32_Asynch_Operation.

int ACE_WIN32_Asynch_Transmit_File::open ( ACE_Handler & handler,
ACE_HANDLE handle,
const void * completion_key,
ACE_Proactor * proactor )
 

Initializes the factory with information which will be used with each asynchronous call. If (<handle> == ACE_INVALID_HANDLE), will be called on the <handler> to get the correct handle.

Reimplemented from ACE_WIN32_Asynch_Operation.

ACE_Proactor * ACE_WIN32_Asynch_Transmit_File::proactor ( void ) const
 

Return the underlying proactor.

Reimplemented from ACE_WIN32_Asynch_Operation.

int ACE_WIN32_Asynch_Transmit_File::transmit_file ( 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,
int priority,
int signal_number = 0 )
 

This starts off an asynchronous transmit file. The <file> is a handle to an open file. <header_and_trailer> is a pointer to a data structure that contains pointers to data to send before and after the file data is sent. Set this parameter to 0 if you only want to transmit the file data. Upto <bytes_to_write> will be written to the <socket>. If you want to send the entire file, let <bytes_to_write> = 0. <bytes_per_send> is the size of each block of data sent per send operation. Please read the Win32 documentation on what the flags should be.


The documentation for this class was generated from the following files:
Generated at Sat Dec 1 11:06:47 2001 for ACE by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000