ACE_POSIX_Asynch_Transmit_File_Result Class Reference

This is that class which will be passed back to the when the asynchronous transmit file completes. More...

#include <POSIX_Asynch_IO.h>

Inheritance diagram for ACE_POSIX_Asynch_Transmit_File_Result:

Inheritance graph
[legend]
Collaboration diagram for ACE_POSIX_Asynch_Transmit_File_Result:

Collaboration graph
[legend]
List of all members.

Public Member Functions

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_Trailerheader_and_trailer (void) const
 Header and trailer data associated with this transmit file.

size_t bytes_to_write (void) const
size_t bytes_per_send (void) const
u_long flags (void) const
 Flags which were passed into transmit file.


Protected Member Functions

 ACE_POSIX_Asynch_Transmit_File_Result (const ACE_Handler::Proxy_Ptr &handler_proxy, ACE_HANDLE socket, ACE_HANDLE file, ACE_Asynch_Transmit_File::Header_And_Trailer *header_and_trailer, size_t bytes_to_write, u_long offset, u_long offset_high, size_t bytes_per_send, u_long flags, const void *act, ACE_HANDLE event, int priority, int signal_number)
virtual void complete (size_t bytes_transferred, int success, const void *completion_key, u_long error)
 ACE_Proactor will call this method when the write completes.

virtual ~ACE_POSIX_Asynch_Transmit_File_Result (void)
 Destructor.


Protected Attributes

ACE_HANDLE socket_
 Network I/O handle.

ACE_Asynch_Transmit_File::Header_And_Trailerheader_and_trailer_
 Header and trailer data associated with this transmit file.

size_t bytes_per_send_
u_long flags_
 Flags which were passed into transmit file.


Friends

class ACE_POSIX_Asynch_Transmit_File
 Factory classes will have special permissions.

class ACE_POSIX_Asynch_Transmit_Handler
 Handlers do all the job.

class ACE_POSIX_Proactor
 The Proactor constructs the Result class for faking results.


Detailed Description

This is that class which will be passed back to the when the asynchronous transmit file completes.

This class has all the information necessary for the to uniquiely identify the completion of the asynchronous transmit file.

Definition at line 921 of file POSIX_Asynch_IO.h.


Constructor & Destructor Documentation

ACE_POSIX_Asynch_Transmit_File_Result::ACE_POSIX_Asynch_Transmit_File_Result const ACE_Handler::Proxy_Ptr handler_proxy,
ACE_HANDLE  socket,
ACE_HANDLE  file,
ACE_Asynch_Transmit_File::Header_And_Trailer header_and_trailer,
size_t  bytes_to_write,
u_long  offset,
u_long  offset_high,
size_t  bytes_per_send,
u_long  flags,
const void *  act,
ACE_HANDLE  event,
int  priority,
int  signal_number
[protected]
 

Definition at line 1657 of file POSIX_Asynch_IO.cpp.

References ACE_Handler::Proxy_Ptr.

01670   : ACE_POSIX_Asynch_Result
01671      (handler_proxy, act, event, offset, offset_high, priority, signal_number),
01672     socket_ (socket),
01673     header_and_trailer_ (header_and_trailer),
01674     bytes_per_send_ (bytes_per_send),
01675     flags_ (flags)
01676 {
01677   this->aio_fildes = file;
01678   this->aio_nbytes = bytes_to_write;
01679 }

ACE_POSIX_Asynch_Transmit_File_Result::~ACE_POSIX_Asynch_Transmit_File_Result void   )  [protected, virtual]
 

Destructor.

Definition at line 1718 of file POSIX_Asynch_IO.cpp.

01719 {
01720 }


Member Function Documentation

size_t ACE_POSIX_Asynch_Transmit_File_Result::bytes_per_send void   )  const [virtual]
 

Number of bytes per send requested at the start of the transmit file.

Implements ACE_Asynch_Transmit_File_Result_Impl.

Definition at line 1645 of file POSIX_Asynch_IO.cpp.

References bytes_per_send_.

01646 {
01647   return this->bytes_per_send_;
01648 }

size_t ACE_POSIX_Asynch_Transmit_File_Result::bytes_to_write void   )  const [virtual]
 

The number of bytes which were requested at the start of the asynchronous transmit file.

Implements ACE_Asynch_Transmit_File_Result_Impl.

Definition at line 1639 of file POSIX_Asynch_IO.cpp.

01640 {
01641   return this->aio_nbytes;
01642 }

void ACE_POSIX_Asynch_Transmit_File_Result::complete size_t  bytes_transferred,
int  success,
const void *  completion_key,
u_long  error
[protected, virtual]
 

ACE_Proactor will call this method when the write completes.

Implements ACE_Asynch_Result_Impl.

Definition at line 1682 of file POSIX_Asynch_IO.cpp.

References ACE_Refcounted_Auto_Ptr< X, ACE_LOCK >::get(), and ACE_Handler::handle_transmit_file().

Referenced by ACE_POSIX_Asynch_Transmit_Handler::handle_read_file(), and ACE_POSIX_Asynch_Transmit_Handler::handle_write_stream().

01686 {
01687   // Copy the data.
01688   this->bytes_transferred_ = bytes_transferred;
01689   this->success_ = success;
01690   this->completion_key_ = completion_key;
01691   this->error_ = error;
01692 
01693   // We will not do this because (a) the header and trailer blocks may
01694   // be the same message_blocks and (b) in cases of failures we have
01695   // no idea how much of what (header, data, trailer) was sent.
01696   /*
01697     if (this->success_ && this->header_and_trailer_ != 0)
01698     {
01699     ACE_Message_Block *header = this->header_and_trailer_->header ();
01700     if (header != 0)
01701     header->rd_ptr (this->header_and_trailer_->header_bytes ());
01702 
01703     ACE_Message_Block *trailer = this->header_and_trailer_->trailer ();
01704     if (trailer != 0)
01705     trailer->rd_ptr (this->header_and_trailer_->trailer_bytes ());
01706     }
01707   */
01708 
01709   // Create the interface result class.
01710   ACE_Asynch_Transmit_File::Result result (this);
01711 
01712   // Call the application handler.
01713   ACE_Handler *handler = this->handler_proxy_.get ()->handler ();
01714   if (handler != 0)
01715     handler->handle_transmit_file (result);
01716 }

ACE_HANDLE ACE_POSIX_Asynch_Transmit_File_Result::file void   )  const [virtual]
 

File from which the data is read.

Implements ACE_Asynch_Transmit_File_Result_Impl.

Definition at line 1627 of file POSIX_Asynch_IO.cpp.

Referenced by ACE_POSIX_Asynch_Transmit_Handler::transmit().

01628 {
01629   return this->aio_fildes;
01630 }

u_long ACE_POSIX_Asynch_Transmit_File_Result::flags void   )  const [virtual]
 

Flags which were passed into transmit file.

Implements ACE_Asynch_Transmit_File_Result_Impl.

Definition at line 1651 of file POSIX_Asynch_IO.cpp.

01652 {
01653   return this->flags_;
01654 }

ACE_Asynch_Transmit_File::Header_And_Trailer * ACE_POSIX_Asynch_Transmit_File_Result::header_and_trailer void   )  const [virtual]
 

Header and trailer data associated with this transmit file.

Implements ACE_Asynch_Transmit_File_Result_Impl.

Definition at line 1633 of file POSIX_Asynch_IO.cpp.

References header_and_trailer_.

Referenced by ACE_POSIX_Asynch_Transmit_Handler::initiate_read_file(), and ACE_POSIX_Asynch_Transmit_Handler::transmit().

01634 {
01635   return this->header_and_trailer_;
01636 }

ACE_HANDLE ACE_POSIX_Asynch_Transmit_File_Result::socket void   )  const [virtual]
 

Socket used for transmitting the file.

Implements ACE_Asynch_Transmit_File_Result_Impl.

Definition at line 1621 of file POSIX_Asynch_IO.cpp.

References socket_.

Referenced by ACE_POSIX_Asynch_Transmit_Handler::transmit().

01622 {
01623   return this->socket_;
01624 }


Friends And Related Function Documentation

friend class ACE_POSIX_Asynch_Transmit_File [friend]
 

Factory classes will have special permissions.

Definition at line 925 of file POSIX_Asynch_IO.h.

friend class ACE_POSIX_Asynch_Transmit_Handler [friend]
 

Handlers do all the job.

Definition at line 928 of file POSIX_Asynch_IO.h.

friend class ACE_POSIX_Proactor [friend]
 

The Proactor constructs the Result class for faking results.

Definition at line 931 of file POSIX_Asynch_IO.h.


Member Data Documentation

size_t ACE_POSIX_Asynch_Transmit_File_Result::bytes_per_send_ [protected]
 

Number of bytes per send requested at the start of the transmit file.

Definition at line 995 of file POSIX_Asynch_IO.h.

Referenced by bytes_per_send().

u_long ACE_POSIX_Asynch_Transmit_File_Result::flags_ [protected]
 

Flags which were passed into transmit file.

Definition at line 998 of file POSIX_Asynch_IO.h.

ACE_Asynch_Transmit_File::Header_And_Trailer* ACE_POSIX_Asynch_Transmit_File_Result::header_and_trailer_ [protected]
 

Header and trailer data associated with this transmit file.

Definition at line 987 of file POSIX_Asynch_IO.h.

Referenced by header_and_trailer().

ACE_HANDLE ACE_POSIX_Asynch_Transmit_File_Result::socket_ [protected]
 

Network I/O handle.

Definition at line 981 of file POSIX_Asynch_IO.h.

Referenced by socket().


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:26:51 2006 for ACE by doxygen 1.3.6