#include <POSIX_Asynch_IO.h>
Inheritance diagram for ACE_POSIX_Asynch_Write_Dgram:
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. |
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.
Definition at line 1176 of file POSIX_Asynch_IO.h.
|
Constructor.
Definition at line 2409 of file POSIX_Asynch_IO.cpp.
02410 : ACE_POSIX_Asynch_Operation (posix_proactor) 02411 { 02412 } |
|
Destructor.
Definition at line 2366 of file POSIX_Asynch_IO.cpp.
02367 { 02368 } |
|
Do-nothing constructor.
|
|
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
Implements ACE_Asynch_Write_Dgram_Impl. Definition at line 2371 of file POSIX_Asynch_IO.cpp. References ACE_ERROR_RETURN, ACE_LIB_TEXT, ACE_NEW_RETURN, ACE_POSIX_Proactor::get_handle(), ACE_Message_Block::length(), LM_ERROR, ACE_POSIX_Asynch_Operation::posix_proactor(), and ACE_POSIX_Proactor::start_aio().
02378 { 02379 size_t len = message_block->length (); 02380 if (len == 0) 02381 ACE_ERROR_RETURN 02382 ((LM_ERROR, 02383 ACE_LIB_TEXT ("ACE_POSIX_Asynch_Write_Stream::write:") 02384 ACE_LIB_TEXT ("Attempt to write 0 bytes\n")), 02385 -1); 02386 02387 ACE_POSIX_Asynch_Write_Dgram_Result *result = 0; 02388 ACE_POSIX_Proactor *proactor = this->posix_proactor (); 02389 ACE_NEW_RETURN (result, 02390 ACE_POSIX_Asynch_Write_Dgram_Result (this->handler_proxy_, 02391 this->handle_, 02392 message_block, 02393 len, 02394 flags, 02395 act, 02396 proactor->get_handle (), 02397 priority, 02398 signal_number), 02399 -1); 02400 02401 int return_val = proactor->start_aio (result, ACE_POSIX_Proactor::ACE_OPCODE_WRITE); 02402 if (return_val == -1) 02403 delete result; 02404 02405 return return_val; 02406 } |