|
xrootd
|
#include <XrdClAsyncSocketHandler.hh>


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 | |
| 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. More... | |
Utility class handling asynchronous socket interactions and forwarding events to the parent stream.
| XrdCl::AsyncSocketHandler::AsyncSocketHandler | ( | Poller * | poller, |
| TransportHandler * | transport, | ||
| AnyObject * | channelData, | ||
| uint16_t | subStreamNum | ||
| ) |
Constructor.
References XrdCl::DefaultTimeoutResolution, XrdCl::DefaultEnv::GetEnv(), XrdCl::Env::GetInt(), pIncHandler, pSockAddr, pSocket, and pTimeoutResolution.
| Status XrdCl::AsyncSocketHandler::Close | ( | ) |
Close the connection.
References XrdCl::AsyncSockMsg, XrdCl::Socket::Close(), XrdCl::Log::Debug(), XrdCl::TransportHandler::Disconnect(), XrdCl::DefaultEnv::GetLog(), XrdCl::Stream::GetStreamNumber(), pChannelData, pPoller, pSocket, pStream, pStreamName, pSubStreamNum, pTransport, and XrdCl::Poller::RemoveSocket().
Referenced by ~AsyncSocketHandler().
| Status XrdCl::AsyncSocketHandler::Connect | ( | time_t | timeout | ) |
Connect to the currently set address.
References XrdCl::Poller::AddSocket(), XrdCl::AsyncSockMsg, XrdCl::Socket::Close(), XrdCl::Socket::ConnectToAddress(), XrdCl::Log::Debug(), XrdCl::Poller::EnableWriteNotification(), XrdCl::Log::Error(), XrdCl::errPollerError, XrdCl::DefaultEnv::GetLog(), XrdCl::Socket::Initialize(), XrdSysDNS::IPFormat(), XrdCl::Status::IsOK(), pConnectionStarted, pConnectionTimeout, pHandShakeDone, pPoller, pSockAddr, pSocket, pStreamName, pTimeoutResolution, XrdCl::Poller::RemoveSocket(), XrdCl::Status::status, XrdCl::stFatal, and XrdCl::Status::ToString().
|
inline |
Disable uplink.
References XrdCl::Poller::EnableWriteNotification(), XrdCl::errPollerError, pPoller, pSocket, and XrdCl::stFatal.
Referenced by OnWriteWhileHandshaking().
|
inline |
Enable uplink.
References XrdCl::Poller::EnableWriteNotification(), XrdCl::errPollerError, pPoller, pSocket, pTimeoutResolution, and XrdCl::stFatal.
Referenced by OnReadWhileHandshaking().
|
virtual |
Handle a socket event.
Implements XrdCl::SocketHandler.
References XrdCl::Socket::Connecting, XrdCl::Socket::GetStatus(), likely, OnConnectionReturn(), OnRead(), OnReadTimeout(), OnReadWhileHandshaking(), OnTimeoutWhileHandshaking(), OnWrite(), OnWriteTimeout(), OnWriteWhileHandshaking(), pHandShakeDone, pSocket, XrdCl::SocketHandler::ReadTimeOut, XrdCl::SocketHandler::ReadyToRead, XrdCl::SocketHandler::ReadyToWrite, unlikely, and XrdCl::SocketHandler::WriteTimeOut.
|
inline |
Get the address that the socket is connected to.
References pSockAddr.
|
inline |
Get stream name.
References pStreamName.
|
private |
References XrdCl::AsyncSockMsg, XrdCl::HandShakeData::clientName, XrdCl::Socket::Connected, XrdCl::Log::Debug(), XrdCl::Poller::EnableReadNotification(), XrdCl::errConnectionError, XrdCl::Log::Error(), XrdCl::errPollerError, XrdCl::errSocketOptError, XrdCl::DefaultEnv::GetLog(), XrdCl::Socket::GetServerAddress(), XrdCl::Socket::GetSockName(), XrdCl::Socket::GetSockOpt(), XrdCl::Stream::GetStreamNumber(), XrdCl::Stream::GetURL(), XrdCl::TransportHandler::HandShake(), XrdCl::Status::IsOK(), XrdCl::Stream::OnConnectError(), XrdCl::HandShakeData::out, pChannelData, pHandShakeData, pOutgoing, pPoller, pSocket, pStream, pStreamName, pSubStreamNum, pTimeoutResolution, pTransport, XrdCl::HandShakeData::serverAddr, XrdCl::Socket::SetStatus(), XrdCl::HandShakeData::step, XrdCl::stError, XrdCl::stFatal, and XrdCl::HandShakeData::streamName.
Referenced by Event().
|
private |
|
private |
References XrdCl::AsyncSockMsg, XrdCl::Log::Error(), XrdCl::DefaultEnv::GetLog(), XrdCl::Stream::OnConnectError(), pIncoming, pOutgoing, pStream, pStreamName, pSubStreamNum, and XrdCl::Status::ToString().
Referenced by OnReadWhileHandshaking(), OnTimeoutWhileHandshaking(), and OnWriteWhileHandshaking().
|
private |
References XrdCl::AsyncSockMsg, XrdCl::Status::code, XrdCl::Log::Dump(), XrdCl::TransportHandler::GetBody(), XrdCl::Buffer::GetCursor(), XrdCl::Socket::GetFD(), XrdCl::TransportHandler::GetHeader(), XrdCl::DefaultEnv::GetLog(), XrdCl::Buffer::GetSize(), XrdCl::Stream::InstallIncHandler(), XrdCl::Status::IsOK(), OnFault(), XrdCl::Stream::OnIncoming(), pHeaderDone, pIncHandler, pIncMsgSize, pIncoming, pSocket, pStream, pStreamName, pSubStreamNum, pTransport, and XrdCl::suRetry.
Referenced by Event().
|
private |
References XrdCl::Stream::OnReadTimeout(), pStream, and pSubStreamNum.
Referenced by Event().
|
private |
References XrdCl::Status::code, EnableUplink(), XrdCl::errPollerError, XrdCl::TransportHandler::HandShake(), XrdCl::HandShakeData::in, XrdCl::Status::IsOK(), XrdCl::Stream::OnConnect(), OnFaultWhileHandshaking(), XrdCl::HandShakeData::out, pChannelData, pHandShakeData, pHandShakeDone, pIncoming, pOutgoing, pStream, pSubStreamNum, pTransport, ReadMessage(), XrdCl::HandShakeData::step, XrdCl::stFatal, and XrdCl::suDone.
Referenced by Event().
|
private |
References XrdCl::errSocketTimeout, OnFaultWhileHandshaking(), pConnectionStarted, pConnectionTimeout, and XrdCl::stError.
Referenced by Event().
|
private |
References XrdCl::AsyncSockMsg, XrdCl::Status::code, XrdCl::Log::Dump(), XrdCl::Message::GetDescription(), XrdCl::Socket::GetFD(), XrdCl::DefaultEnv::GetLog(), XrdCl::Buffer::GetSize(), XrdCl::Status::IsOK(), XrdCl::OutgoingMsgHandler::IsRaw(), OnFault(), XrdCl::Stream::OnMessageSent(), XrdCl::Stream::OnReadyToWrite(), pOutgoing, pOutHandler, pOutMsgDone, pOutMsgSize, pSocket, pStream, pStreamName, pSubStreamNum, XrdCl::Buffer::SetCursor(), XrdCl::suRetry, WriteCurrentMessage(), and XrdCl::OutgoingMsgHandler::WriteMessageBody().
Referenced by Event().
|
private |
References XrdCl::Stream::OnWriteTimeout(), pStream, and pSubStreamNum.
Referenced by Event().
|
private |
References XrdCl::Status::code, DisableUplink(), OnFaultWhileHandshaking(), pOutgoing, XrdCl::suRetry, and WriteCurrentMessage().
Referenced by Event().
|
private |
References XrdCl::AsyncSockMsg, XrdCl::Status::code, XrdCl::Log::Dump(), XrdCl::TransportHandler::GetBody(), XrdCl::Buffer::GetCursor(), XrdCl::Socket::GetFD(), XrdCl::TransportHandler::GetHeader(), XrdCl::DefaultEnv::GetLog(), XrdCl::Buffer::GetSize(), XrdCl::Status::IsOK(), pHeaderDone, pIncoming, pSocket, pStreamName, pTransport, and XrdCl::suDone.
Referenced by OnReadWhileHandshaking().
|
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().
|
private |
References XrdCl::Buffer::AdvanceCursor(), XrdCl::AsyncSockMsg, XrdCl::Log::Dump(), XrdCl::errSocketError, XrdCl::Buffer::GetBufferAtCursor(), XrdCl::Buffer::GetCursor(), XrdCl::Message::GetDescription(), XrdCl::DefaultEnv::GetLog(), XrdCl::Buffer::GetSize(), pOutgoing, pSocket, pStreamName, XrdCl::Socket::Send(), XrdCl::Buffer::SetCursor(), XrdCl::stError, XrdCl::stOK, and XrdCl::suRetry.
Referenced by OnWrite(), and OnWriteWhileHandshaking().
|
private |
Referenced by Close(), OnConnectionReturn(), and OnReadWhileHandshaking().
|
private |
Referenced by Connect(), and OnTimeoutWhileHandshaking().
|
private |
Referenced by Connect(), and OnTimeoutWhileHandshaking().
|
private |
Referenced by OnConnectionReturn(), and OnReadWhileHandshaking().
|
private |
Referenced by Connect(), Event(), and OnReadWhileHandshaking().
|
private |
Referenced by OnRead(), and ReadMessage().
|
private |
Referenced by AsyncSocketHandler(), OnFault(), and OnRead().
|
private |
Referenced by OnRead().
|
private |
Referenced by OnFault(), OnFaultWhileHandshaking(), OnRead(), OnReadWhileHandshaking(), and ReadMessage().
|
private |
|
private |
|
private |
Referenced by OnWrite().
|
private |
Referenced by OnWrite().
|
private |
Referenced by Close(), Connect(), DisableUplink(), EnableUplink(), and OnConnectionReturn().
|
private |
Referenced by AsyncSocketHandler(), Connect(), GetAddress(), and SetAddress().
|
private |
Referenced by AsyncSocketHandler(), Close(), Connect(), DisableUplink(), EnableUplink(), Event(), OnConnectionReturn(), OnRead(), OnWrite(), ReadMessage(), WriteCurrentMessage(), and ~AsyncSocketHandler().
|
private |
Referenced by Close(), OnConnectionReturn(), OnFault(), OnFaultWhileHandshaking(), OnRead(), OnReadTimeout(), OnReadWhileHandshaking(), OnWrite(), OnWriteTimeout(), and SetStream().
|
private |
Referenced by Close(), Connect(), GetStreamName(), OnConnectionReturn(), OnFault(), OnFaultWhileHandshaking(), OnRead(), OnWrite(), ReadMessage(), SetStream(), and WriteCurrentMessage().
|
private |
Referenced by Close(), OnConnectionReturn(), OnFault(), OnFaultWhileHandshaking(), OnRead(), OnReadTimeout(), OnReadWhileHandshaking(), OnWrite(), OnWriteTimeout(), and SetStream().
|
private |
Referenced by AsyncSocketHandler(), Connect(), EnableUplink(), and OnConnectionReturn().
|
private |
Referenced by Close(), OnConnectionReturn(), OnRead(), OnReadWhileHandshaking(), and ReadMessage().
1.8.3.1