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 XrdNetAddr & GetAddress () 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

Poller * pPoller
TransportHandler * pTransport
AnyObject * pChannelData
uint16_t pSubStreamNum
Stream * pStream
std::string pStreamName
Socket * pSocket
Message * pIncoming
Message * pHSIncoming
Message * pOutgoing
Message * pSignature
Message * pHSOutgoing
XrdNetAddr pSockAddr
HandShakeData * pHandShakeData
bool pHandShakeDone
uint16_t pTimeoutResolution
time_t pConnectionStarted
time_t pConnectionTimeout
bool pHeaderDone
std::pair< IncomingMsgHandler
*, bool > 
pIncHandler
bool pOutMsgDone
OutgoingMsgHandler * pOutHandler
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 16 Oct 2020 for xrootd by  doxygen 1.6.1