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 addres. 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

Poller * pPoller
 
TransportHandler * pTransport
 
AnyObject * pChannelData
 
uint16_t pSubStreamNum
 
Stream * pStream
 
std::string pStreamName
 
Socket * pSocket
 
Message * pIncoming
 
Message * pOutgoing
 
sockaddr_in pSockAddr
 
HandShakeData * pHandShakeData
 
bool pHandShakeDone
 
uint16_t pTimeoutResolution
 
time_t pConnectionStarted
 
time_t pConnectionTimeout
 

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
Message* XrdCl::AsyncSocketHandler::pIncoming
private
Message* XrdCl::AsyncSocketHandler::pOutgoing
private
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: