# 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:

[legend]
Collaboration diagram for ACE_POSIX_Asynch_Write_Dgram:

[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:

- POSIX_Asynch_IO.h
- POSIX_Asynch_IO.cpp