A network socket. More...
#include <XrdClSocket.hh>
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) | |
virtual | ~Socket () |
Desctuctor. | |
Status | Initialize (int family=AF_INET) |
Initialize the socket. | |
Status | SetFlags (int flags) |
Set the socket flags (man fcntl). | |
Status | GetFlags (int &flags) |
Get the socket flags (man fcntl). | |
Status | GetSockOpt (int level, int optname, void *optval, socklen_t *optlen) |
Get socket options. | |
Status | SetSockOpt (int level, int optname, const void *optval, socklen_t optlen) |
Set socket options. | |
Status | Connect (const std::string &host, uint16_t port, uint16_t timout=10) |
Status | 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. | |
Status | ReadRaw (void *buffer, uint32_t size, int32_t timeout, uint32_t &bytesRead) |
Status | WriteRaw (void *buffer, uint32_t size, int32_t timeout, uint32_t &bytesWritten) |
ssize_t | Send (void *buffer, uint32_t size) |
ssize_t | WriteV (iovec *iov, int iovcnt) |
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 XrdNetAddr & | GetServerAddress () const |
Get the server address. | |
void | SetChannelID (AnyObject *channelID) |
const AnyObject * | GetChannelID () const |
Private Member Functions | |
Status | Poll (bool readyForReading, bool readyForWriting, int32_t timeout) |
Private Attributes | |
int | pSocket |
SocketStatus | pStatus |
XrdNetAddr | pServerAddr |
std::string | pSockName |
std::string | pPeerName |
std::string | pName |
int | pProtocolFamily |
AnyObject * | pChannelID |
A network socket.
Status of the socket.
XrdCl::Socket::Socket | ( | int | socket = -1 , |
|
SocketStatus | status = Disconnected | |||
) | [inline] |
Constructor
socket | already connected socket if available, -1 otherwise | |
status | status of a socket if available |
virtual XrdCl::Socket::~Socket | ( | ) | [inline, virtual] |
Desctuctor.
References Close().
void XrdCl::Socket::Close | ( | ) |
Disconnect.
Referenced by ~Socket().
Status XrdCl::Socket::Connect | ( | const std::string & | host, | |
uint16_t | port, | |||
uint16_t | timout = 10 | |||
) |
Connect to the given host name
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) |
Status XrdCl::Socket::ConnectToAddress | ( | const XrdNetAddr & | addr, | |
uint16_t | timout = 10 | |||
) |
Connect to the given host address
addr | address of the host to connect to | |
timout | timeout in seconds, 0 for no timeout handling (may be used for non blocking IO) |
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.
Status 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.
Status 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.
Status XrdCl::Socket::Initialize | ( | int | family = AF_INET |
) |
Initialize the socket.
Status XrdCl::Socket::Poll | ( | bool | readyForReading, | |
bool | readyForWriting, | |||
int32_t | timeout | |||
) | [private] |
Poll the socket to see whether it is ready for IO
readyForReading | poll for readiness to read | |
readyForWriting | poll for readiness to write | |
timeout | timeout in seconds, -1 to wait indefinitely |
Status XrdCl::Socket::ReadRaw | ( | void * | buffer, | |
uint32_t | size, | |||
int32_t | timeout, | |||
uint32_t & | bytesRead | |||
) |
Read raw bytes from the socket
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 |
ssize_t XrdCl::Socket::Send | ( | void * | buffer, | |
uint32_t | size | |||
) |
Portable wrapper around SIGPIPE free send
buffer | : data to be written | |
size | : size of the data buffer |
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.
Status XrdCl::Socket::SetFlags | ( | int | flags | ) |
Set the socket flags (man fcntl).
Status 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.
Status XrdCl::Socket::WriteRaw | ( | void * | buffer, | |
uint32_t | size, | |||
int32_t | timeout, | |||
uint32_t & | bytesWritten | |||
) |
Write raw bytes to the socket
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 |
ssize_t XrdCl::Socket::WriteV | ( | iovec * | iov, | |
int | iovcnt | |||
) |
Wrapper around writev
iov | : buffers to be written | |
iovcnt | : number of buffers |
AnyObject* XrdCl::Socket::pChannelID [private] |
Referenced by GetChannelID(), and SetChannelID().
std::string XrdCl::Socket::pName [mutable, private] |
std::string XrdCl::Socket::pPeerName [mutable, private] |
int XrdCl::Socket::pProtocolFamily [private] |
XrdNetAddr XrdCl::Socket::pServerAddr [private] |
Referenced by GetServerAddress().
int XrdCl::Socket::pSocket [private] |
Referenced by GetFD().
std::string XrdCl::Socket::pSockName [mutable, private] |
SocketStatus XrdCl::Socket::pStatus [private] |
Referenced by GetStatus(), and SetStatus().