ACE  6.4.0
Public Member Functions | Protected Member Functions | List of all members
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]

Public Member Functions

 ACE_POSIX_Asynch_Write_Dgram (ACE_POSIX_Proactor *posix_proactor)
 Constructor. More...
 
virtual ~ACE_POSIX_Asynch_Write_Dgram (void)
 Destructor. More...
 
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)
 
- Public Member Functions inherited from ACE_Asynch_Write_Dgram_Impl
virtual ~ACE_Asynch_Write_Dgram_Impl (void)
 
- Public Member Functions inherited from ACE_Asynch_Operation_Impl
virtual ~ACE_Asynch_Operation_Impl (void)
 
- Public Member Functions inherited from ACE_POSIX_Asynch_Operation
int open (const ACE_Handler::Proxy_Ptr &handler_proxy, ACE_HANDLE handle, const void *completion_key, ACE_Proactor *proactor=0)
 
int cancel (void)
 Check the documentation for ACE_Asynch_Operation::cancel. More...
 
ACE_Proactorproactor (void) const
 Return the underlying proactor. More...
 
ACE_POSIX_Proactorposix_proactor (void) const
 Return the underlying Proactor implementation. More...
 

Protected Member Functions

 ACE_POSIX_Asynch_Write_Dgram (void)
 Do-nothing constructor. More...
 
- Protected Member Functions inherited from ACE_Asynch_Write_Dgram_Impl
 ACE_Asynch_Write_Dgram_Impl (void)
 Do-nothing constructor. More...
 
- Protected Member Functions inherited from ACE_Asynch_Operation_Impl
 ACE_Asynch_Operation_Impl (void)
 Do-nothing constructor. More...
 
- Protected Member Functions inherited from ACE_POSIX_Asynch_Operation
 ACE_POSIX_Asynch_Operation (ACE_POSIX_Proactor *posix_proactor)
 Contructor. More...
 
virtual ~ACE_POSIX_Asynch_Operation (void)
 Destructor. More...
 

Additional Inherited Members

- Protected Attributes inherited from ACE_POSIX_Asynch_Operation
ACE_POSIX_Proactorposix_proactor_
 
ACE_Proactorproactor_
 Proactor that this Asynch IO will be registered with. More...
 
ACE_Handler::Proxy_Ptr handler_proxy_
 Handler that will receive the callback. More...
 
ACE_HANDLE handle_
 I/O handle used for reading. More...
 

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
    0The IO will complete asynchronously.
    -1There 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: