xrootd
|
Utility class encapsulating reading response message logic. More...
#include <XrdClAsyncMsgReader.hh>
Public Member Functions | |
AsyncMsgReader (TransportHandler &xrdTransport, Socket &socket, const std::string &strmname, Stream &strm, uint16_t substrmnb) | |
virtual | ~AsyncMsgReader () |
Destructor. More... | |
void | Reset () |
Reset the state of the object (makes it ready to read out next msg) More... | |
XRootDStatus | Read () |
Read out the response from the socket. More... | |
Private Types | |
enum | Stage { ReadStart, ReadHeader, ReadMsgBody, ReadRawData, ReadDone } |
Stages of reading out a response from the socket. More... | |
Private Attributes | |
Stage | readstage |
TransportHandler & | xrdTransport |
Socket & | socket |
const std::string & | strmname |
Stream & | strm |
uint16_t | substrmnb |
std::shared_ptr< Message > | inmsg |
uint32_t | inmsgsize |
MsgHandler * | inhandler |
Utility class encapsulating reading response message logic.
|
private |
|
inline |
Constructor
xrdTransport | : the (xrootd) transport layer |
socket | : the socket with the message to be read out |
strmname | : stream name |
strm | : the stream encapsulating the connection |
substrmnb | : the substream number |
|
inlinevirtual |
Destructor.
|
inline |
Read out the response from the socket.
References XrdCl::AsyncSockMsg, XrdCl::Status::code, XrdCl::MsgHandler::Corrupted, XrdCl::Log::Dump(), XrdCl::errCorruptedHeader, XrdCl::TransportHandler::GetBody(), XrdCl::TransportHandler::GetHeader(), XrdCl::DefaultEnv::GetLog(), inhandler, inmsg, inmsgsize, XrdCl::Stream::InspectStatusRsp(), XrdCl::Stream::InstallIncHandler(), XrdCl::Status::IsOK(), XrdCl::MsgHandler::More, XrdCl::Stream::OnIncoming(), XrdCl::MsgHandler::Raw, ReadDone, ReadHeader, XrdCl::MsgHandler::ReadMessageBody(), ReadMsgBody, ReadRawData, readstage, ReadStart, socket, XrdCl::stError, strm, strmname, substrmnb, XrdCl::suRetry, and xrdTransport.
|
inline |
|
private |
|
private |
Referenced by Read().
|
private |
Referenced by Read().
|
private |
Referenced by Read().