Fawkes API
Fawkes Development Version
|
#include <netcomm/socket/stream.h>
Public Member Functions | |
StreamSocket (float timeout=0.f) | |
Constructor. More... | |
StreamSocket (AddrType addr_type, float timeout=0.f) | |
Constructor. More... | |
StreamSocket (StreamSocket &s) | |
Copy constructor. More... | |
StreamSocket & | operator= (StreamSocket &s) |
Assingment operator. More... | |
virtual Socket * | clone () |
Clone socket. More... | |
void | set_nodelay (bool no_delay) |
Enable or disable Nagle algorithm. More... | |
bool | nodelay () |
Check if Nalge algorithm is disabled. More... | |
![]() | |
Socket (AddrType addr_type, SocketType sock_type, float timeout=0.f) | |
Constructor similar to syscall. More... | |
Socket (Socket &socket) | |
Copy constructor. More... | |
virtual | ~Socket () |
Destructor. More... | |
Socket & | operator= (Socket &socket) |
Copy constructor. More... | |
virtual void | connect (const char *hostname, const unsigned short int port) |
Connect socket. More... | |
virtual void | connect (const struct ::sockaddr_storage &addr_port) |
Connect socket. More... | |
virtual void | connect (const struct sockaddr *addr_port, socklen_t struct_size) |
Connect socket. More... | |
virtual void | bind (const unsigned short int port) |
Bind socket. More... | |
virtual void | bind (const unsigned short int port, const char *ipaddr) |
Bind socket to a specific address. More... | |
virtual void | listen (int backlog=1) |
Listen on socket. More... | |
virtual Socket * | accept () |
Accept connection. More... | |
virtual void | close () |
Close socket. More... | |
virtual bool | available () |
Check if data is available. More... | |
virtual size_t | read (void *buf, size_t count, bool read_all=true) |
Read from socket. More... | |
virtual void | write (const void *buf, size_t count) |
Write to the socket. More... | |
virtual void | send (void *buf, size_t buf_len) |
Write to the socket. More... | |
virtual void | send (void *buf, size_t buf_len, const struct sockaddr *to_addr, socklen_t addr_len) |
Send message. More... | |
virtual size_t | recv (void *buf, size_t buf_len) |
Read from socket. More... | |
virtual size_t | recv (void *buf, size_t buf_len, struct sockaddr *from_addr, socklen_t *addr_len) |
Receive data. More... | |
virtual short | poll (int timeout=-1, short what=POLL_IN|POLL_HUP|POLL_PRI|POLL_RDHUP) |
Wait for some event on socket. More... | |
virtual bool | listening () |
Is socket listening for connections? More... | |
virtual unsigned int | mtu () |
Maximum Transfer Unit (MTU) of socket. More... | |
template<class SocketTypeC > | |
SocketTypeC * | accept () |
Accept connection. More... | |
Additional Inherited Members | |
![]() | |
enum | AddrType { UNSPECIFIED, IPv4, IPv6 } |
Address type specification. More... | |
enum | SocketType { TCP, UDP } |
Socket type. More... | |
![]() | |
static const short | POLL_IN = POLLIN |
Data can be read. More... | |
static const short | POLL_OUT = POLLOUT |
Writing will not block. More... | |
static const short | POLL_PRI = POLLPRI |
There is urgent data to read (e.g., out-of-band data on TCP socket; pseudo-terminal master in packet mode has seen state change in slave). More... | |
static const short | POLL_RDHUP = 0 |
Stream socket peer closed connection, or shut down writing half of connection. More... | |
static const short | POLL_ERR = POLLERR |
Error condition. More... | |
static const short | POLL_HUP = POLLHUP |
Hang up. More... | |
static const short | POLL_NVAL = POLLNVAL |
Invalid request. More... | |
![]() | |
Socket (SocketType sock_type, float timeout=0.f) | |
IPv4 Constructor. More... | |
Socket () | |
Constructor. More... | |
![]() | |
AddrType | addr_type |
int | sock_fd |
float | timeout |
struct ::sockaddr_storage * | client_addr |
unsigned int | client_addr_len |
fawkes::StreamSocket::StreamSocket | ( | float | timeout = 0.f | ) |
Constructor.
This assumes that the socket will later be created using connect().
timeout | timeout, if 0 all operationsare blocking, otherwise it is tried for timeout seconds. |
Definition at line 50 of file stream.cpp.
fawkes::StreamSocket::StreamSocket | ( | AddrType | addr_type, |
float | timeout = 0.f |
||
) |
Constructor.
addr_type | Specify IPv4 or IPv6 |
timeout | timeout, if 0 all operationsare blocking, otherwise it is tried for timeout seconds. |
Definition at line 59 of file stream.cpp.
fawkes::StreamSocket::StreamSocket | ( | StreamSocket & | stream_socket | ) |
Copy constructor.
stream_socket | socket to copy. |
Definition at line 67 of file stream.cpp.
References fawkes::Socket::operator=().
|
virtual |
Clone socket.
Implements fawkes::Socket.
Definition at line 86 of file stream.cpp.
References fawkes::Socket::sock_fd.
bool fawkes::StreamSocket::nodelay | ( | ) |
Check if Nalge algorithm is disabled.
This checks the TCP_NODELAY option on the socket. If it is set then the Nagle algorithm is disabled and all data is send out immediately.
Definition at line 98 of file stream.cpp.
StreamSocket & fawkes::StreamSocket::operator= | ( | StreamSocket & | s | ) |
Assingment operator.
s | socket to copy from |
Definition at line 76 of file stream.cpp.
void fawkes::StreamSocket::set_nodelay | ( | bool | nodelay | ) |
Enable or disable Nagle algorithm.
nodelay | true to disable Nagle algorithm, false to enable it |
Definition at line 117 of file stream.cpp.