XrdCl::Socket Class Reference

A network socket. More...

#include <XrdClSocket.hh>

Collaboration diagram for XrdCl::Socket:
Collaboration graph
[legend]

List of all members.

Public Types

enum  SocketStatus { Disconnected = 1, Connected = 2, Connecting = 3 }
 

Status of the socket.

More...

Public Member Functions

 Socket (int socket=-1, SocketStatus status=Disconnected)
 ~Socket ()
 Desctuctor.
XRootDStatus Initialize (int family=AF_INET)
 Initialize the socket.
XRootDStatus SetFlags (int flags)
 Set the socket flags (man fcntl).
XRootDStatus GetFlags (int &flags)
 Get the socket flags (man fcntl).
XRootDStatus GetSockOpt (int level, int optname, void *optval, socklen_t *optlen)
 Get socket options.
XRootDStatus SetSockOpt (int level, int optname, const void *optval, socklen_t optlen)
 Set socket options.
XRootDStatus Connect (const std::string &host, uint16_t port, uint16_t timout=10)
XRootDStatus ConnectToAddress (const XrdNetAddr &addr, uint16_t timout=10)
void Close ()
 Disconnect.
SocketStatus GetStatus () const
 Get the socket status.
void SetStatus (SocketStatus status)
 Set socket status - do not use unless you know what you're doing.
XRootDStatus ReadRaw (void *buffer, uint32_t size, int32_t timeout, uint32_t &bytesRead)
XRootDStatus WriteRaw (void *buffer, uint32_t size, int32_t timeout, uint32_t &bytesWritten)
XRootDStatus Send (const char *buffer, size_t size, int &bytesWritten)
XRootDStatus Read (char *buffer, size_t size, int &bytesRead)
int GetFD ()
 Get the file descriptor.
std::string GetSockName () const
 Get the name of the socket.
std::string GetPeerName () const
 Get the name of the remote peer.
std::string GetName () const
 Get the string representation of the socket.
const XrdNetAddrGetServerAddress () const
 Get the server address.
void SetChannelID (AnyObject *channelID)
const AnyObjectGetChannelID () const
XRootDStatus Cork ()
XRootDStatus Uncork ()
XRootDStatus Flash ()
bool IsCorked () const
uint8_t MapEvent (uint8_t event)
XRootDStatus TlsHandShake (AsyncSocketHandler *socketHandler, const std::string &thehost=std::string())
bool IsEncrypted ()

Static Public Member Functions

static XRootDStatus ClassifyErrno (int error)

Protected Member Functions

XRootDStatus Poll (bool readyForReading, bool readyForWriting, int32_t timeout)

Protected Attributes

int pSocket
SocketStatus pStatus
XrdNetAddr pServerAddr
std::string pSockName
std::string pPeerName
std::string pName
int pProtocolFamily
AnyObjectpChannelID
bool pCorked
std::unique_ptr< TlspTls

Detailed Description

A network socket.


Member Enumeration Documentation

Status of the socket.

Enumerator:
Disconnected 

The socket is disconnected.

Connected 

The socket is connected.

Connecting 

The connection process is in progress.


Constructor & Destructor Documentation

XrdCl::Socket::Socket ( int  socket = -1,
SocketStatus  status = Disconnected 
)

Constructor

Parameters:
socket already connected socket if available, -1 otherwise
status status of a socket if available
XrdCl::Socket::~Socket (  ) 

Desctuctor.


Member Function Documentation

static XRootDStatus XrdCl::Socket::ClassifyErrno ( int  error  )  [static]
void XrdCl::Socket::Close (  ) 

Disconnect.

XRootDStatus XrdCl::Socket::Connect ( const std::string &  host,
uint16_t  port,
uint16_t  timout = 10 
)

Connect to the given host name

Parameters:
host name of the host to connect to
port port to connect to
timout timeout in seconds, 0 for no timeout handling (may be used for non blocking IO)
XRootDStatus XrdCl::Socket::ConnectToAddress ( const XrdNetAddr addr,
uint16_t  timout = 10 
)

Connect to the given host address

Parameters:
addr address of the host to connect to
timout timeout in seconds, 0 for no timeout handling (may be used for non blocking IO)
XRootDStatus XrdCl::Socket::Cork (  ) 
XRootDStatus XrdCl::Socket::Flash (  ) 
const AnyObject* XrdCl::Socket::GetChannelID (  )  const [inline]

Get Channel ID (an object that allows to identify all sockets corresponding to the same channel)

References pChannelID.

int XrdCl::Socket::GetFD (  )  [inline]

Get the file descriptor.

References pSocket.

XRootDStatus XrdCl::Socket::GetFlags ( int &  flags  ) 

Get the socket flags (man fcntl).

std::string XrdCl::Socket::GetName (  )  const

Get the string representation of the socket.

std::string XrdCl::Socket::GetPeerName (  )  const

Get the name of the remote peer.

const XrdNetAddr& XrdCl::Socket::GetServerAddress (  )  const [inline]

Get the server address.

References pServerAddr.

std::string XrdCl::Socket::GetSockName (  )  const

Get the name of the socket.

XRootDStatus XrdCl::Socket::GetSockOpt ( int  level,
int  optname,
void *  optval,
socklen_t *  optlen 
)

Get socket options.

SocketStatus XrdCl::Socket::GetStatus (  )  const [inline]

Get the socket status.

References pStatus.

XRootDStatus XrdCl::Socket::Initialize ( int  family = AF_INET  ) 

Initialize the socket.

bool XrdCl::Socket::IsCorked (  )  const [inline]

References pCorked.

bool XrdCl::Socket::IsEncrypted (  ) 
uint8_t XrdCl::Socket::MapEvent ( uint8_t  event  ) 
XRootDStatus XrdCl::Socket::Poll ( bool  readyForReading,
bool  readyForWriting,
int32_t  timeout 
) [protected]

Poll the socket to see whether it is ready for IO

Parameters:
readyForReading poll for readiness to read
readyForWriting poll for readiness to write
timeout timeout in seconds, -1 to wait indefinitely
Returns:
stOK - ready for IO errSocketDisconnected - on disconnection errSocketError - on socket error errSocketTimeout - on socket timeout errInvalidOp - when called on a non connected socket
XRootDStatus XrdCl::Socket::Read ( char *  buffer,
size_t  size,
int &  bytesRead 
)

Read helper for raw socket

Parameters:
buffer : the sink for the data
size : size of the sink
bytesRead : number of bytes actually written into the sink
Returns:
: success : ( stOK ) EAGAIN : ( stOK, suRetry ) EWOULDBLOCK : ( stOK, suRetry ) other error : ( stError, errSocketError )
XRootDStatus XrdCl::Socket::ReadRaw ( void *  buffer,
uint32_t  size,
int32_t  timeout,
uint32_t &  bytesRead 
)

Read raw bytes from the socket

Parameters:
buffer data to be sent
size size of the data buffer
timeout timout value in seconds, -1 to wait indefinitely
bytesRead the amount of data actually read
XRootDStatus XrdCl::Socket::Send ( const char *  buffer,
size_t  size,
int &  bytesWritten 
)

Portable wrapper around SIGPIPE free send

Parameters:
buffer : data to be written
size : size of the data buffer
Returns:
: the amount of data actually written
void XrdCl::Socket::SetChannelID ( AnyObject channelID  )  [inline]

Set Channel ID (an object that allows to identify all sockets corresponding to the same channel)

References pChannelID.

XRootDStatus XrdCl::Socket::SetFlags ( int  flags  ) 

Set the socket flags (man fcntl).

XRootDStatus XrdCl::Socket::SetSockOpt ( int  level,
int  optname,
const void *  optval,
socklen_t  optlen 
)

Set socket options.

void XrdCl::Socket::SetStatus ( SocketStatus  status  )  [inline]

Set socket status - do not use unless you know what you're doing.

References pStatus.

XRootDStatus XrdCl::Socket::TlsHandShake ( AsyncSocketHandler socketHandler,
const std::string &  thehost = std::string() 
)
XRootDStatus XrdCl::Socket::Uncork (  ) 
XRootDStatus XrdCl::Socket::WriteRaw ( void *  buffer,
uint32_t  size,
int32_t  timeout,
uint32_t &  bytesWritten 
)

Write raw bytes to the socket

Parameters:
buffer data to be written
size size of the data buffer
timeout timeout value in seconds, -1 to wait indefinitely
bytesWritten the amount of data actually written

Member Data Documentation

Referenced by GetChannelID(), and SetChannelID().

bool XrdCl::Socket::pCorked [protected]

Referenced by IsCorked().

std::string XrdCl::Socket::pName [mutable, protected]
std::string XrdCl::Socket::pPeerName [mutable, protected]

Referenced by GetServerAddress().

int XrdCl::Socket::pSocket [protected]

Referenced by GetFD().

std::string XrdCl::Socket::pSockName [mutable, protected]

Referenced by GetStatus(), and SetStatus().

std::unique_ptr<Tls> XrdCl::Socket::pTls [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 7 Jul 2020 for xrootd by  doxygen 1.6.1