xrootd
Public Member Functions | Private Member Functions | Private Attributes | List of all members
XrdCl::AsyncSocketHandler Class Reference

#include <XrdClAsyncSocketHandler.hh>

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

Public Member Functions

 AsyncSocketHandler (Poller *poller, TransportHandler *transport, AnyObject *channelData, uint16_t subStreamNum)
 Constructor. More...
 
 ~AsyncSocketHandler ()
 Destructor. More...
 
void SetAddress (const sockaddr_in &address)
 Set address. More...
 
const sockaddr_in & GetAddress () const
 Get the address that the socket is connected to. More...
 
Status Connect (time_t timeout)
 Connect to the currently set address. More...
 
Status Close ()
 Close the connection. More...
 
void SetStream (Stream *stream)
 Set a stream object to be notified about the status of the operations. More...
 
virtual void Event (uint8_t type, XrdCl::Socket *)
 Handle a socket event. More...
 
Status EnableUplink ()
 Enable uplink. More...
 
Status DisableUplink ()
 Disable uplink. More...
 
const std::string & GetStreamName ()
 Get stream name. More...
 
- Public Member Functions inherited from XrdCl::SocketHandler
virtual ~SocketHandler ()
 
virtual void Initialize (Poller *)
 Initializer. More...
 
virtual void Finalize ()
 Finalizer. More...
 

Private Member Functions

void OnConnectionReturn ()
 
void OnWrite ()
 
void OnWriteWhileHandshaking ()
 
Status WriteCurrentMessage ()
 
void OnRead ()
 
void OnReadWhileHandshaking ()
 
Status ReadMessage ()
 
void OnFault (Status st)
 
void OnFaultWhileHandshaking (Status st)
 
void OnWriteTimeout ()
 
void OnReadTimeout ()
 
void OnTimeoutWhileHandshaking ()
 

Private Attributes

PollerpPoller
 
TransportHandlerpTransport
 
AnyObjectpChannelData
 
uint16_t pSubStreamNum
 
StreampStream
 
std::string pStreamName
 
SocketpSocket
 
MessagepIncoming
 
MessagepOutgoing
 
sockaddr_in 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
 

Additional Inherited Members

- Public Types inherited from XrdCl::SocketHandler
enum  EventType { ReadyToRead = 0x01, ReadTimeOut = 0x02, ReadyToWrite = 0x04, WriteTimeOut = 0x08 }
 Event type. More...
 
- Static Public Member Functions inherited from XrdCl::SocketHandler
static std::string EventTypeToString (uint8_t event)
 Translate the event type to a string. More...
 

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 
)
XrdCl::AsyncSocketHandler::~AsyncSocketHandler ( )

Destructor.

References Close(), and pSocket.

Member Function Documentation

Status XrdCl::AsyncSocketHandler::Close ( )
Status XrdCl::AsyncSocketHandler::Connect ( time_t  timeout)
Status XrdCl::AsyncSocketHandler::DisableUplink ( )
inline
Status XrdCl::AsyncSocketHandler::EnableUplink ( )
inline
void XrdCl::AsyncSocketHandler::Event ( uint8_t  type,
XrdCl::Socket  
)
virtual
const sockaddr_in& XrdCl::AsyncSocketHandler::GetAddress ( ) const
inline

Get the address that the socket is connected to.

References pSockAddr.

const std::string& XrdCl::AsyncSocketHandler::GetStreamName ( )
inline

Get stream name.

References pStreamName.

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

References XrdCl::Stream::OnReadTimeout(), pStream, and pSubStreamNum.

Referenced by Event().

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 ( )
private
void XrdCl::AsyncSocketHandler::SetAddress ( const sockaddr_in &  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.

References XrdCl::URL::GetHostId(), XrdCl::Stream::GetStreamNumber(), XrdCl::Stream::GetURL(), pStream, pStreamName, pSubStreamNum, and PC3::stream().

Referenced by XrdCl::Stream::Initialize(), and XrdCl::Stream::OnConnect().

Status XrdCl::AsyncSocketHandler::WriteCurrentMessage ( )
private

Member Data Documentation

AnyObject* XrdCl::AsyncSocketHandler::pChannelData
private
time_t XrdCl::AsyncSocketHandler::pConnectionStarted
private
time_t XrdCl::AsyncSocketHandler::pConnectionTimeout
private
HandShakeData* XrdCl::AsyncSocketHandler::pHandShakeData
private
bool XrdCl::AsyncSocketHandler::pHandShakeDone
private
bool XrdCl::AsyncSocketHandler::pHeaderDone
private

Referenced by OnRead(), and ReadMessage().

std::pair<IncomingMsgHandler*, bool> XrdCl::AsyncSocketHandler::pIncHandler
private

Referenced by AsyncSocketHandler(), OnFault(), and OnRead().

uint32_t XrdCl::AsyncSocketHandler::pIncMsgSize
private

Referenced by OnRead().

Message* XrdCl::AsyncSocketHandler::pIncoming
private
Message* XrdCl::AsyncSocketHandler::pOutgoing
private
OutgoingMsgHandler* XrdCl::AsyncSocketHandler::pOutHandler
private

Referenced by OnFault(), and OnWrite().

bool XrdCl::AsyncSocketHandler::pOutMsgDone
private

Referenced by OnWrite().

uint32_t XrdCl::AsyncSocketHandler::pOutMsgSize
private

Referenced by OnWrite().

Poller* XrdCl::AsyncSocketHandler::pPoller
private
sockaddr_in XrdCl::AsyncSocketHandler::pSockAddr
private
Socket* XrdCl::AsyncSocketHandler::pSocket
private
Stream* XrdCl::AsyncSocketHandler::pStream
private
std::string XrdCl::AsyncSocketHandler::pStreamName
private
uint16_t XrdCl::AsyncSocketHandler::pSubStreamNum
private
uint16_t XrdCl::AsyncSocketHandler::pTimeoutResolution
private
TransportHandler* XrdCl::AsyncSocketHandler::pTransport
private

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