|
| Socket ()=default |
|
virtual | ~Socket () |
|
| Socket (const Socket &)=delete |
|
Socket & | operator= (const Socket &)=delete |
|
virtual std::unique_ptr< Socket > | accept (struct sockaddr *addr, socklen_t *addrlen)=0 |
|
virtual std::unique_ptr< Socket > | accept_loop_monitored (struct sockaddr *addr, socklen_t *addrlen) |
| Accept a connection and monitor it in the main loop NOTE: This function is NOT thread-safe and must only be called from the main loop.
|
|
virtual int | bind (const struct sockaddr *addr, socklen_t addrlen)=0 |
|
virtual int | close ()=0 |
|
virtual int | connect (const struct sockaddr *addr, socklen_t addrlen)=0 |
|
virtual int | shutdown (int how)=0 |
|
virtual int | getpeername (struct sockaddr *addr, socklen_t *addrlen)=0 |
|
virtual std::string | getpeername ()=0 |
|
virtual int | getsockname (struct sockaddr *addr, socklen_t *addrlen)=0 |
|
virtual std::string | getsockname ()=0 |
|
virtual int | getsockopt (int level, int optname, void *optval, socklen_t *optlen)=0 |
|
virtual int | setsockopt (int level, int optname, const void *optval, socklen_t optlen)=0 |
|
virtual int | listen (int backlog)=0 |
|
virtual ssize_t | read (void *buf, size_t len)=0 |
|
virtual ssize_t | recvfrom (void *buf, size_t len, sockaddr *addr, socklen_t *addr_len)=0 |
|
virtual ssize_t | readv (const struct iovec *iov, int iovcnt)=0 |
|
virtual ssize_t | write (const void *buf, size_t len)=0 |
|
virtual ssize_t | writev (const struct iovec *iov, int iovcnt)=0 |
|
virtual ssize_t | sendto (const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)=0 |
|
virtual int | setblocking (bool blocking)=0 |
|
virtual int | loop () |
|
virtual int | get_fd () const |
| Get the underlying file descriptor (returns -1 if not supported)
|
|
bool | ready () const |
| Check if socket has data ready to read For loop-monitored sockets, checks with the Application's select() results For non-monitored sockets, always returns true (assumes data may be available)
|
|
Definition at line 12 of file socket.h.