ACE
6.1.0
|
This class is a factory for starting off asynchronous reads on a stream. This class forwards all methods to its implementation class. More...
#include <Asynch_IO.h>
Classes | |
class | Result |
This is the class which will be passed back to the ACE_Handler::handle_read_stream when the asynchronous read completes. This class forwards all the methods to the implementation classes. More... | |
Public Member Functions | |
ACE_Asynch_Read_Stream (void) | |
A do nothing constructor. | |
virtual | ~ACE_Asynch_Read_Stream (void) |
Destructor. | |
int | open (ACE_Handler &handler, ACE_HANDLE handle=ACE_INVALID_HANDLE, const void *completion_key=0, ACE_Proactor *proactor=0) |
int | read (ACE_Message_Block &message_block, size_t num_bytes_to_read, const void *act=0, int priority=0, int signal_number=ACE_SIGRTMIN) |
int | readv (ACE_Message_Block &message_block, size_t num_bytes_to_read, const void *act=0, int priority=0, int signal_number=ACE_SIGRTMIN) |
virtual ACE_Asynch_Operation_Impl * | implementation (void) const |
Return the underlying implementation class. | |
Protected Attributes | |
ACE_Asynch_Read_Stream_Impl * | implementation_ |
Implementation class that all methods will be forwarded to. | |
Private Member Functions | |
void | operator= (const ACE_Asynch_Read_Stream &) |
ACE_Asynch_Read_Stream (const ACE_Asynch_Read_Stream &) |
This class is a factory for starting off asynchronous reads on a stream. This class forwards all methods to its implementation class.
Once {open} is called, multiple asynchronous {read}s can started using this class. An ACE_Asynch_Read_Stream::Result will be passed back to the {handler} when the asynchronous reads completes through the {ACE_Handler::handle_read_stream} callback.
ACE_Asynch_Read_Stream::ACE_Asynch_Read_Stream | ( | void | ) |
A do nothing constructor.
ACE_Asynch_Read_Stream::~ACE_Asynch_Read_Stream | ( | void | ) | [virtual] |
Destructor.
ACE_Asynch_Read_Stream::ACE_Asynch_Read_Stream | ( | const ACE_Asynch_Read_Stream & | ) | [private] |
ACE_Asynch_Operation_Impl * ACE_Asynch_Read_Stream::implementation | ( | void | ) | const [virtual] |
Return the underlying implementation class.
Implements ACE_Asynch_Operation.
Reimplemented in ACE_Asynch_Read_File.
int ACE_Asynch_Read_Stream::open | ( | ACE_Handler & | handler, |
ACE_HANDLE | handle = ACE_INVALID_HANDLE , |
||
const void * | completion_key = 0 , |
||
ACE_Proactor * | proactor = 0 |
||
) |
Initializes the factory with information which will be used with each asynchronous call.
handler | The ACE_Handler that will be called to handle completions for operations initiated using this factory. |
handle | The handle that future read operations will use. If handle == ACE_INVALID_HANDLE , ACE_Handler::handle() will be called on @ handler to get the correct handle. |
0 | for success. |
-1 | for failure; consult errno for further information. |
Reimplemented from ACE_Asynch_Operation.
Reimplemented in ACE_Asynch_Read_File.
void ACE_Asynch_Read_Stream::operator= | ( | const ACE_Asynch_Read_Stream & | ) | [private] |
int ACE_Asynch_Read_Stream::read | ( | ACE_Message_Block & | message_block, |
size_t | num_bytes_to_read, | ||
const void * | act = 0 , |
||
int | priority = 0 , |
||
int | signal_number = ACE_SIGRTMIN |
||
) |
Initiate an asynchronous read operation.
message_block | The ACE_Message_Block to receive the data. Received bytes will be placed in the block beginning at its current write pointer. If data is read, the message block's write pointer will be advanced by the number of bytes read. |
num_bytes_to_read | The maximum number of bytes to read. |
act | Asynchronous Completion Token; passed through to the completion handler in the Result object. |
priority | Priority of the operation. On POSIX4-Unix, 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 priority, etc. Ignored on Windows. |
signal_number | The POSIX4 real-time signal number to be used to signal completion of the operation. Values range from ACE_SIGRTMIN to ACE_SIGRTMAX. This argument is ignored on non-POSIX4 systems. |
int ACE_Asynch_Read_Stream::readv | ( | ACE_Message_Block & | message_block, |
size_t | num_bytes_to_read, | ||
const void * | act = 0 , |
||
int | priority = 0 , |
||
int | signal_number = ACE_SIGRTMIN |
||
) |
Same as above but with scatter support, through chaining of composite message blocks using the continuation field.
Implementation class that all methods will be forwarded to.
Reimplemented in ACE_Asynch_Read_File.