Wizard
Software Engineering Project - Wizard
|
#include <acceptor.h>
Public Types | |
using | stream_sock_t = STREAM_SOCK |
using | addr_t = ADDR |
Public Member Functions | |
acceptor_tmpl () | |
acceptor_tmpl (const addr_t &addr, int queSize=DFLT_QUE_SIZE) | |
acceptor_tmpl (in_port_t port, int queSize=DFLT_QUE_SIZE) | |
acceptor_tmpl (acceptor_tmpl &&acc) | |
acceptor_tmpl & | operator= (acceptor_tmpl &&rhs) |
addr_t | address () const |
bool | bind (const addr_t &addr) |
bool | open (const addr_t &addr, int queSize=DFLT_QUE_SIZE) |
bool | open (in_port_t port, int queSize=DFLT_QUE_SIZE) |
stream_sock_t | accept (addr_t *clientAddr=nullptr) |
![]() | |
acceptor () | |
acceptor (socket_t handle) | |
acceptor (const sock_address &addr, int queSize=DFLT_QUE_SIZE) | |
acceptor (acceptor &&acc) | |
acceptor & | operator= (acceptor &&rhs) |
bool | listen (int queSize=DFLT_QUE_SIZE) |
bool | open (const sock_address &addr, int queSize=DFLT_QUE_SIZE, bool reuseSock=true) |
stream_socket | accept (sock_address *clientAddr=nullptr) |
![]() | |
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 () |
Static Public Member Functions | |
static acceptor_tmpl | create () |
![]() | |
static acceptor | create (int domain) |
![]() | |
static void | initialize () |
static void | destroy () |
static socket | create (int domain, int type, int protocol=0) |
static std::tuple< socket, socket > | pair (int domain, int type, int protocol=0) |
static std::string | error_str (int errNum) |
Additional Inherited Members | |
![]() | |
bool | close_on_err () |
void | set_last_error () |
template<typename T > | |
T | check_ret (T ret) const |
template<typename T > | |
bool | check_ret_bool (T ret) const |
socket_t | check_socket (socket_t ret) const |
bool | check_socket_bool (socket_t ret) const |
![]() | |
static socket_t | create_handle (int domain) |
![]() | |
static int | get_last_error () |
![]() | |
static const int | DFLT_QUE_SIZE = 4 |
Base template class for streaming servers of specific address families. This is a base for creating socket acceptor classes for an individual family. In most cases, all that is needed is a type definition specifying which addresses type should be used to receive incoming connections, like: using tcp_acceptor = acceptor_tmpl<tcp_socket>;
using sockpp::acceptor_tmpl< STREAM_SOCK, ADDR >::addr_t = ADDR |
The type of address for the acceptor and streams.
using sockpp::acceptor_tmpl< STREAM_SOCK, ADDR >::stream_sock_t = STREAM_SOCK |
The type of streaming socket from the acceptor.
|
inline |
Creates an unconnected acceptor.
|
inline |
Creates a acceptor and starts it listening on the specified address.
addr | The TCP address on which to read_message. |
queSize | The listener queue size. |
|
inline |
Creates a acceptor and starts it listening on the specified port. The acceptor binds to the specified port for any address on the local host.
port | The TCP port on which to read_message. |
queSize | The listener queue size. |
|
inline |
Move constructor. Creates an acceptor by moving the other acceptor to this one.
acc | Another acceptor |
|
inline |
Accepts an incoming connection and gets the address of the client.
clientAddr | Pointer to the variable that will get the address of a client when it connects. |
|
inline |
Gets the local address to which we are bound.
|
inline |
Binds the socket to the specified address.
addr | The address to which we get bound. |
|
inlinestatic |
Creates an unbound acceptor socket with an open OS socket handle. An application would need to manually bind and read_message to this acceptor to get incoming connections.
|
inline |
Opens the acceptor socket, binds it to the specified address, and starts listening.
addr | The address to which this server should be bound. |
queSize | The listener queue size. |
|
inline |
Opens the acceptor socket, binds the socket to all adapters and starts it listening.
port | The TCP port on which to read_message. |
queSize | The listener queue size. |
|
inline |
Move assignment.
rhs | The other socket to move into this one. |