An LLIOPipe implementation which reads from a socket. More...
#include <lliosocket.h>
Public Member Functions | |
LLIOSocketReader (LLSocket::ptr_t socket) | |
Protected Member Functions | |
virtual EStatus | process_impl (const LLChannelDescriptors &channels, buffer_ptr_t &buffer, bool &eos, LLSD &context, LLPumpIO *pump) |
Process the data coming in the socket. |
An LLIOPipe implementation which reads from a socket.
An instance of a socket reader wraps around an LLSocket and performs non-blocking reads and passes it to the next pipe in the chain.
LLIOSocketReader::LLIOSocketReader | ( | LLSocket::ptr_t | socket | ) |
LLIOPipe::EStatus LLIOSocketReader::process_impl | ( | const LLChannelDescriptors & | channels, | |
buffer_ptr_t & | buffer, | |||
bool & | eos, | |||
LLSD & | context, | |||
LLPumpIO * | pump | |||
) | [protected, virtual] |
Process the data coming in the socket.
Since the socket and next pipe must exist for process to make any sense, this method will return STATUS_PRECONDITION_NOT_MET unless if they are not known. If a STATUS_STOP returned by the next link in the chain, this reader will turn of the socket polling.
buffer | Pointer to a buffer which needs processing. Probably NULL. | |
bytes | Number of bytes to in buffer to process. Probably 0. | |
eos | True if this function is the last. Almost always false. | |
read | Number of bytes actually processed. | |
pump | The pump which is calling process. May be NULL. | |
context | A data structure to pass structured data |
Implements LLIOPipe.