ACE_POSIX_Asynch_Write_Dgram Class Reference

This class is a factory for starting off asynchronous writes on a UDP socket. The UDP socket must be "connected", as there is no facility for specifying the destination address on each send operation. More...

#include <POSIX_Asynch_IO.h>

Inheritance diagram for ACE_POSIX_Asynch_Write_Dgram:

Inheritance graph
[legend]
Collaboration diagram for ACE_POSIX_Asynch_Write_Dgram:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ACE_POSIX_Asynch_Write_Dgram (ACE_POSIX_Proactor *posix_proactor)
 Constructor.
virtual ~ACE_POSIX_Asynch_Write_Dgram (void)
 Destructor.
virtual ssize_t send (ACE_Message_Block *message_block, size_t &number_of_bytes_sent, int flags, const ACE_Addr &addr, const void *act, int priority, int signal_number)

Protected Member Functions

 ACE_POSIX_Asynch_Write_Dgram (void)
 Do-nothing constructor.

Detailed Description

This class is a factory for starting off asynchronous writes on a UDP socket. The UDP socket must be "connected", as there is no facility for specifying the destination address on each send operation.

Once open() is called, multiple asynchronous writes can started using this class. A ACE_Asynch_Write_Stream::Result will be passed back to the associated completion handler when the asynchronous write completes through the ACE_Handler::handle_write_stream() callback.


Constructor & Destructor Documentation

ACE_POSIX_Asynch_Write_Dgram::ACE_POSIX_Asynch_Write_Dgram ACE_POSIX_Proactor posix_proactor  ) 
 

Constructor.

ACE_POSIX_Asynch_Write_Dgram::~ACE_POSIX_Asynch_Write_Dgram void   )  [virtual]
 

Destructor.

ACE_POSIX_Asynch_Write_Dgram::ACE_POSIX_Asynch_Write_Dgram void   )  [protected]
 

Do-nothing constructor.


Member Function Documentation

ssize_t ACE_POSIX_Asynch_Write_Dgram::send ACE_Message_Block message_block,
size_t &  number_of_bytes_sent,
int  flags,
const ACE_Addr addr,
const void *  act,
int  priority,
int  signal_number
[virtual]
 

This method queues an asynchronous send. Up to message_block->total_length bytes will be sent, beginning at the read pointer. The message_block read pointer will be updated to reflect the sent bytes if the send operation is successful completed.

Priority of the operation is specified by priority. On POSIX, 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, etc. signal_number is a no-op on non-POSIX4 systems.

Note:
Unlike the Windows version of this facility, no indication of immediate success can be returned, and number_of_bytes_sent is never used.
  • flags Not used.
  • addr Not used.
    Return values:
    0 The IO will complete asynchronously.
    -1 There was an error; see errno to get the error code.

Implements ACE_Asynch_Write_Dgram_Impl.


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 15:49:49 2005 for ACE by  doxygen 1.4.5