|
| stream_socket_tmpl () |
|
| stream_socket_tmpl (socket_t handle) |
|
| stream_socket_tmpl (stream_socket &&sock) |
|
| stream_socket_tmpl (stream_socket_tmpl &&sock) |
|
stream_socket_tmpl & | operator= (stream_socket_tmpl &&rhs) |
|
stream_socket_tmpl | create (int protocol=0) |
|
addr_t | address () const |
|
addr_t | peer_address () const |
|
| stream_socket () |
|
| stream_socket (socket_t handle) |
|
| stream_socket (stream_socket &&sock) |
|
stream_socket & | operator= (stream_socket &&rhs) |
|
stream_socket | clone () const |
|
virtual ssize_t | read (void *buf, size_t n) |
|
virtual ssize_t | read_n (void *buf, size_t n) |
|
ssize_t | read (const std::vector< iovec > &ranges) |
|
virtual bool | read_timeout (const std::chrono::microseconds &to) |
|
template<class Rep , class Period > |
bool | read_timeout (const std::chrono::duration< Rep, Period > &to) |
|
virtual ssize_t | write (const void *buf, size_t n) |
|
virtual ssize_t | write_n (const void *buf, size_t n) |
|
virtual ssize_t | write (const std::string &s) |
|
virtual ssize_t | write (const std::vector< iovec > &ranges) |
|
virtual bool | write_timeout (const std::chrono::microseconds &to) |
|
template<class Rep , class Period > |
bool | write_timeout (const std::chrono::duration< Rep, Period > &to) |
|
| socket () |
|
| socket (socket_t h) |
|
| socket (socket &&sock) noexcept |
|
virtual | ~socket () |
|
bool | is_open () const |
|
bool | operator! () const |
|
| operator bool () const |
|
socket_t | handle () const |
|
virtual sa_family_t | family () const |
|
socket | clone () const |
|
void | clear (int val=0) |
|
socket_t | release () |
|
void | reset (socket_t h=INVALID_SOCKET) |
|
socket & | operator= (socket &&sock) noexcept |
|
bool | bind (const sock_address &addr) |
|
sock_address_any | address () const |
|
sock_address_any | peer_address () const |
|
bool | get_option (int level, int optname, void *optval, socklen_t *optlen) const |
|
template<typename T > |
bool | get_option (int level, int optname, T *val) const |
|
bool | set_option (int level, int optname, const void *optval, socklen_t optlen) |
|
template<typename T > |
bool | set_option (int level, int optname, const T &val) |
|
bool | set_non_blocking (bool on=true) |
|
int | last_error () const |
|
std::string | last_error_str () const |
|
bool | shutdown (int how=SHUT_RDWR) |
|
bool | close () |
|
template<typename ADDR>
class sockpp::stream_socket_tmpl< ADDR >
Template for creating specific stream types (IPv4, IPv6, etc). This just overrides methods that take a generic address and replace them with the address type for a specific family. This doesn't add any runtime functionality, but has compile-time checks that address types aren't accidentally being mixed for an object.