xrootd
|
Utility class encapsulating writing request logic. More...
#include <XrdClAsyncMsgWriter.hh>
Public Member Functions | |
AsyncMsgWriter (TransportHandler &xrdTransport, Socket &socket, const std::string &strmname, Stream &strm, uint16_t substrmnb, AnyObject &chdata) | |
void | Reset () |
Reset the state of the object (makes it ready to read out next msg) | |
XRootDStatus | Write () |
Write the request into the socket. | |
Private Types | |
enum | Stage { WriteStart , WriteSign , WriteRequest , WriteRawData , WriteDone } |
Stages of reading out a response from the socket. More... | |
Private Attributes | |
Stage | writestage |
TransportHandler & | xrdTransport |
Socket & | socket |
const std::string & | strmname |
Stream & | strm |
uint16_t | substrmnb |
AnyObject & | chdata |
Message * | outmsg |
uint32_t | outmsgsize |
MsgHandler * | outhandler |
std::unique_ptr< Message > | outsign |
Utility class encapsulating writing request 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 |
|
inline |
Reset the state of the object (makes it ready to read out next msg)
References outhandler, outmsg, outmsgsize, outsign, writestage, and WriteStart.
|
inline |
Write the request into the socket.
References XrdCl::AsyncSockMsg, chdata, XrdCl::Status::code, XrdCl::Log::Dump(), XrdCl::Status::errNo, XrdCl::Log::Error(), XrdCl::Socket::Flash(), XrdCl::Message::GetDescription(), XrdCl::DefaultEnv::GetLog(), XrdCl::TransportHandler::GetSignature(), XrdCl::Buffer::GetSize(), XrdCl::Status::IsOK(), XrdCl::MsgHandler::IsRaw(), XrdCl::Stream::OnMessageSent(), XrdCl::Stream::OnReadyToWrite(), outhandler, outmsg, outmsgsize, outsign, XrdCl::Socket::Send(), XrdCl::Buffer::SetCursor(), socket, XrdCl::stOK, strm, strmname, XrdCl::suAlreadyDone, substrmnb, XrdCl::suRetry, WriteDone, XrdCl::MsgHandler::WriteMessageBody(), WriteRawData, WriteRequest, WriteSign, writestage, WriteStart, XrdSysE2T(), and xrdTransport.
|
private |
|
private |
Referenced by Write().
|
private |
Referenced by Write().
|
private |
Referenced by Write().