ACE  6.1.0
Classes | Public Member Functions | Protected Attributes | Private Member Functions
ACE_Asynch_Transmit_File Class Reference

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

#include <Asynch_IO.h>

Inheritance diagram for ACE_Asynch_Transmit_File:
Inheritance graph
[legend]
Collaboration diagram for ACE_Asynch_Transmit_File:
Collaboration graph
[legend]

List of all members.

Classes

class  Header_And_Trailer
 The class defines a data structure that contains pointers to data to send before and after the file data is sent. More...
class  Result
 This is that class which will be passed back to the {handler} when the asynchronous transmit file completes. More...

Public Member Functions

 ACE_Asynch_Transmit_File (void)
 A do nothing constructor.
virtual ~ACE_Asynch_Transmit_File (void)
 Destructor.
int open (ACE_Handler &handler, ACE_HANDLE handle=ACE_INVALID_HANDLE, const void *completion_key=0, ACE_Proactor *proactor=0)
int transmit_file (ACE_HANDLE file, Header_And_Trailer *header_and_trailer=0, size_t bytes_to_write=0, unsigned long offset=0, unsigned long offset_high=0, size_t bytes_per_send=0, unsigned long flags=0, const void *act=0, int priority=0, int signal_number=ACE_SIGRTMIN)
virtual ACE_Asynch_Operation_Implimplementation (void) const
 Return the underlying implementation class.

Protected Attributes

ACE_Asynch_Transmit_File_Implimplementation_
 The implementation class.

Private Member Functions

void operator= (const ACE_Asynch_Transmit_File &)
 ACE_Asynch_Transmit_File (const ACE_Asynch_Transmit_File &)

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 {ACE_Handler::handle_transmit_file} 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_Asynch_Transmit_File::ACE_Asynch_Transmit_File ( void  )

A do nothing constructor.

ACE_Asynch_Transmit_File::~ACE_Asynch_Transmit_File ( void  ) [virtual]

Destructor.

ACE_Asynch_Transmit_File::ACE_Asynch_Transmit_File ( const ACE_Asynch_Transmit_File ) [private]

Member Function Documentation

ACE_Asynch_Operation_Impl * ACE_Asynch_Transmit_File::implementation ( void  ) const [virtual]

Return the underlying implementation class.

Implements ACE_Asynch_Operation.

int ACE_Asynch_Transmit_File::open ( ACE_Handler handler,
ACE_HANDLE  handle = ACE_INVALID_HANDLE,
const void *  completion_key = 0,
ACE_Proactor proactor = 0 
)

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

Reimplemented from ACE_Asynch_Operation.

void ACE_Asynch_Transmit_File::operator= ( const ACE_Asynch_Transmit_File ) [private]
int ACE_Asynch_Transmit_File::transmit_file ( ACE_HANDLE  file,
Header_And_Trailer header_and_trailer = 0,
size_t  bytes_to_write = 0,
unsigned long  offset = 0,
unsigned long  offset_high = 0,
size_t  bytes_per_send = 0,
unsigned long  flags = 0,
const void *  act = 0,
int  priority = 0,
int  signal_number = ACE_SIGRTMIN 
)

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. Priority of the operation is specified by {priority}. On POSIX4-Unix, this is supported. Works like {nice} in Unix. Negative values are not allowed. 0 means priority of the operation same as the process priority. 1 means priority of the operation is one less than process. And so forth. On Win32, this is a no-op. {signal_number} is the POSIX4 real-time signal number to be used for the operation. {signal_number} ranges from ACE_SIGRTMIN to ACE_SIGRTMAX. This argument is a no-op on non-POSIX4 systems.


Member Data Documentation

The implementation class.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines