xrootd
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
XrdCl::AsyncMsgReader Class Reference

Utility class encapsulating reading response message logic. More...

#include <XrdClAsyncMsgReader.hh>

Collaboration diagram for XrdCl::AsyncMsgReader:
Collaboration graph
[legend]

Public Member Functions

 AsyncMsgReader (TransportHandler &xrdTransport, Socket &socket, const std::string &strmname, Stream &strm, uint16_t substrmnb)
 
virtual ~AsyncMsgReader ()
 Destructor.
 
void Reset ()
 Reset the state of the object (makes it ready to read out next msg)
 
XRootDStatus Read ()
 Read out the response from the socket.
 

Private Types

enum  Stage {
  ReadStart , ReadHeader , ReadAttn , ReadMore ,
  ReadMsgBody , ReadRawData , ReadDone
}
 Stages of reading out a response from the socket. More...
 

Private Member Functions

XRootDStatus ReadAttnActnum ()
 
bool IsStatusRsp ()
 
bool HasEmbeddedRsp ()
 

Private Attributes

Stage readstage
 
TransportHandlerxrdTransport
 
Socketsocket
 
const std::string & strmname
 
Streamstrm
 
uint16_t substrmnb
 
std::shared_ptr< Messageinmsg
 
uint32_t inmsgsize
 
MsgHandlerinhandler
 

Detailed Description

Utility class encapsulating reading response message logic.

Member Enumeration Documentation

◆ Stage

Stages of reading out a response from the socket.

Enumerator
ReadStart 
ReadHeader 
ReadAttn 
ReadMore 
ReadMsgBody 
ReadRawData 
ReadDone 

Constructor & Destructor Documentation

◆ AsyncMsgReader()

XrdCl::AsyncMsgReader::AsyncMsgReader ( TransportHandler xrdTransport,
Socket socket,
const std::string &  strmname,
Stream strm,
uint16_t  substrmnb 
)
inline

Constructor

Parameters
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

◆ ~AsyncMsgReader()

virtual XrdCl::AsyncMsgReader::~AsyncMsgReader ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ HasEmbeddedRsp()

bool XrdCl::AsyncMsgReader::HasEmbeddedRsp ( )
inlineprivate

References ServerResponseBody_Attn::actnum, inmsg, and kXR_asynresp.

Referenced by Read().

◆ IsStatusRsp()

bool XrdCl::AsyncMsgReader::IsStatusRsp ( )
inlineprivate

References inmsg, kXR_status, and ServerResponseHeader::status.

Referenced by Read().

◆ Read()

XRootDStatus XrdCl::AsyncMsgReader::Read ( )
inline

◆ ReadAttnActnum()

XRootDStatus XrdCl::AsyncMsgReader::ReadAttnActnum ( )
inlineprivate

◆ Reset()

void XrdCl::AsyncMsgReader::Reset ( )
inline

Reset the state of the object (makes it ready to read out next msg)

References inhandler, inmsg, inmsgsize, readstage, and ReadStart.

Member Data Documentation

◆ inhandler

MsgHandler* XrdCl::AsyncMsgReader::inhandler
private

Referenced by Read(), and Reset().

◆ inmsg

std::shared_ptr<Message> XrdCl::AsyncMsgReader::inmsg
private

◆ inmsgsize

uint32_t XrdCl::AsyncMsgReader::inmsgsize
private

Referenced by Read(), and Reset().

◆ readstage

Stage XrdCl::AsyncMsgReader::readstage
private

Referenced by Read(), and Reset().

◆ socket

Socket& XrdCl::AsyncMsgReader::socket
private

Referenced by Read(), and ReadAttnActnum().

◆ strm

Stream& XrdCl::AsyncMsgReader::strm
private

Referenced by Read().

◆ strmname

const std::string& XrdCl::AsyncMsgReader::strmname
private

Referenced by Read().

◆ substrmnb

uint16_t XrdCl::AsyncMsgReader::substrmnb
private

Referenced by Read().

◆ xrdTransport

TransportHandler& XrdCl::AsyncMsgReader::xrdTransport
private

Referenced by Read().


The documentation for this class was generated from the following file: