XrdCl::AsyncSocketHandler Class Reference

#include <XrdClAsyncSocketHandler.hh>

Inheritance diagram for XrdCl::AsyncSocketHandler:
Inheritance graph
[legend]
Collaboration diagram for XrdCl::AsyncSocketHandler:
Collaboration graph
[legend]

List of all members.

Classes

class  WaitTask

Public Member Functions

 AsyncSocketHandler (Poller *poller, TransportHandler *transport, AnyObject *channelData, uint16_t subStreamNum)
 Constructor.
 ~AsyncSocketHandler ()
 Destructor.
void SetAddress (const XrdNetAddr &address)
 Set address.
const XrdNetAddrGetAddress () const
 Get the address that the socket is connected to.
Status Connect (time_t timeout)
 Connect to the currently set address.
Status Close ()
 Close the connection.
void SetStream (Stream *stream)
 Set a stream object to be notified about the status of the operations.
virtual void Event (uint8_t type, XrdCl::Socket *)
 Handle a socket event.
Status EnableUplink ()
 Enable uplink.
Status DisableUplink ()
 Disable uplink.
const std::string & GetStreamName ()
 Get stream name.
time_t GetLastActivity ()
 Get timestamp of last registered socket activity.

Private Member Functions

void OnConnectionReturn ()
void OnWrite ()
void OnWriteWhileHandshaking ()
Status WriteMessageAndRaw (Message *toWrite, Message *&sign)
Status WriteSeparately (Message *toWrite, Message *&sign)
Status WriteCurrentMessage (Message *toWrite)
Status WriteVMessage (Message *toWrite, Message *&sign, ChunkList *chunks, uint32_t *asyncOffset)
void OnRead ()
void OnReadWhileHandshaking ()
Status ReadMessage (Message *&toRead)
void OnFault (Status st)
void OnFaultWhileHandshaking (Status st)
void OnWriteTimeout ()
void OnReadTimeout ()
void OnTimeoutWhileHandshaking ()
Status GetSignature (Message *toSign, Message *&sign)
void ToIov (Message &msg, iovec &iov)
void UpdateAfterWrite (Message &msg, iovec &iov, int &bytesRead)
uint32_t ToIov (ChunkList *chunks, const uint32_t *offset, iovec *iov)
void UpdateAfterWrite (ChunkList *chunks, uint32_t *offset, iovec *iov, int &bytesWritten)
void RetryHSMsg (Message *msg)
kXR_int32 HandleWaitRsp (Message *rsp)
Status ClassifyErrno (int error)

Private Attributes

PollerpPoller
TransportHandlerpTransport
AnyObjectpChannelData
uint16_t pSubStreamNum
StreampStream
std::string pStreamName
SocketpSocket
MessagepIncoming
MessagepHSIncoming
MessagepOutgoing
MessagepSignature
MessagepHSOutgoing
XrdNetAddr pSockAddr
HandShakeDatapHandShakeData
bool pHandShakeDone
uint16_t pTimeoutResolution
time_t pConnectionStarted
time_t pConnectionTimeout
bool pHeaderDone
std::pair< IncomingMsgHandler
*, bool > 
pIncHandler
bool pOutMsgDone
OutgoingMsgHandlerpOutHandler
uint32_t pIncMsgSize
uint32_t pOutMsgSize
time_t pLastActivity

Detailed Description

Utility class handling asynchronous socket interactions and forwarding events to the parent stream.


Constructor & Destructor Documentation

XrdCl::AsyncSocketHandler::AsyncSocketHandler ( Poller poller,
TransportHandler transport,
AnyObject channelData,
uint16_t  subStreamNum 
)

Constructor.

XrdCl::AsyncSocketHandler::~AsyncSocketHandler (  ) 

Destructor.


Member Function Documentation

Status XrdCl::AsyncSocketHandler::ClassifyErrno ( int  error  )  [private]

Classify errno while reading/writing

Once we are at R5, change Transport interface and use: Transport::ClassifyErrno

Status XrdCl::AsyncSocketHandler::Close (  ) 

Close the connection.

Status XrdCl::AsyncSocketHandler::Connect ( time_t  timeout  ) 

Connect to the currently set address.

Status XrdCl::AsyncSocketHandler::DisableUplink (  )  [inline]
Status XrdCl::AsyncSocketHandler::EnableUplink (  )  [inline]
virtual void XrdCl::AsyncSocketHandler::Event ( uint8_t  type,
XrdCl::Socket  
) [virtual]

Handle a socket event.

Implements XrdCl::SocketHandler.

const XrdNetAddr& XrdCl::AsyncSocketHandler::GetAddress (  )  const [inline]

Get the address that the socket is connected to.

References pSockAddr.

time_t XrdCl::AsyncSocketHandler::GetLastActivity (  )  [inline]

Get timestamp of last registered socket activity.

References pLastActivity.

Status XrdCl::AsyncSocketHandler::GetSignature ( Message toSign,
Message *&  sign 
) [private]
const std::string& XrdCl::AsyncSocketHandler::GetStreamName (  )  [inline]

Get stream name.

References pStreamName.

kXR_int32 XrdCl::AsyncSocketHandler::HandleWaitRsp ( Message rsp  )  [inline, private]
void XrdCl::AsyncSocketHandler::OnConnectionReturn (  )  [private]
void XrdCl::AsyncSocketHandler::OnFault ( Status  st  )  [private]
void XrdCl::AsyncSocketHandler::OnFaultWhileHandshaking ( Status  st  )  [private]
void XrdCl::AsyncSocketHandler::OnRead (  )  [private]
void XrdCl::AsyncSocketHandler::OnReadTimeout (  )  [private]
void XrdCl::AsyncSocketHandler::OnReadWhileHandshaking (  )  [private]
void XrdCl::AsyncSocketHandler::OnTimeoutWhileHandshaking (  )  [private]
void XrdCl::AsyncSocketHandler::OnWrite (  )  [private]
void XrdCl::AsyncSocketHandler::OnWriteTimeout (  )  [private]
void XrdCl::AsyncSocketHandler::OnWriteWhileHandshaking (  )  [private]
Status XrdCl::AsyncSocketHandler::ReadMessage ( Message *&  toRead  )  [private]
void XrdCl::AsyncSocketHandler::RetryHSMsg ( Message msg  )  [private]
void XrdCl::AsyncSocketHandler::SetAddress ( const XrdNetAddr address  )  [inline]

Set address.

References pSockAddr.

void XrdCl::AsyncSocketHandler::SetStream ( Stream stream  ) 

Set a stream object to be notified about the status of the operations.

uint32_t XrdCl::AsyncSocketHandler::ToIov ( ChunkList chunks,
const uint32_t *  offset,
iovec *  iov 
) [inline, private]
void XrdCl::AsyncSocketHandler::ToIov ( Message msg,
iovec &  iov 
) [inline, private]
void XrdCl::AsyncSocketHandler::UpdateAfterWrite ( ChunkList chunks,
uint32_t *  offset,
iovec *  iov,
int &  bytesWritten 
) [inline, private]
void XrdCl::AsyncSocketHandler::UpdateAfterWrite ( Message msg,
iovec &  iov,
int &  bytesRead 
) [inline, private]
Status XrdCl::AsyncSocketHandler::WriteCurrentMessage ( Message toWrite  )  [private]
Status XrdCl::AsyncSocketHandler::WriteMessageAndRaw ( Message toWrite,
Message *&  sign 
) [private]
Status XrdCl::AsyncSocketHandler::WriteSeparately ( Message toWrite,
Message *&  sign 
) [private]
Status XrdCl::AsyncSocketHandler::WriteVMessage ( Message toWrite,
Message *&  sign,
ChunkList chunks,
uint32_t *  asyncOffset 
) [private]

Member Data Documentation

Referenced by GetLastActivity().

Referenced by DisableUplink(), and EnableUplink().

Referenced by GetAddress(), and SetAddress().

Referenced by DisableUplink(), and EnableUplink().

Referenced by GetStreamName().

Referenced by EnableUplink().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 19 Oct 2019 for xrootd by  doxygen 1.6.1