xrootd
Public Member Functions | Private Member Functions | Private Attributes
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.

Public Member Functions

 AsyncSocketHandler (Poller *poller, TransportHandler *transport, AnyObject *channelData, uint16_t subStreamNum)
 Constructor.
 ~AsyncSocketHandler ()
 Destructor.
void SetAddress (const sockaddr_in &address)
 Set address.
const sockaddr_in & 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.
- Public Member Functions inherited from XrdCl::SocketHandler
virtual ~SocketHandler ()
virtual void Initialize (Poller *)
 Initializer.
virtual void Finalize ()
 Finalizer.

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
bool pHeaderDone
std::pair< IncomingMsgHandler
*, bool > 
pIncHandler
bool pOutMsgDone
OutgoingMsgHandler * pOutHandler
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.

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: