D++ (DPP)
C++ Discord API Bot Library
dpp::raii_socket Struct Reference

Allocates a dpp::socket, closing it on destruction. More...

#include <socket.h>

+ Collaboration diagram for dpp::raii_socket:

Public Member Functions

 raii_socket (raii_socket_type type=rst_udp)
 Construct a socket. Calls socket() and returns a new file descriptor. More...
 
 raii_socket (socket plain_fd)
 Convert an established fd to an raii_socket. More...
 
 raii_socket (raii_socket &)=delete
 Non-copyable. More...
 
 raii_socket (raii_socket &&)=delete
 Non-movable. More...
 
template<typename T >
bool set_option (int level, int name, T value)
 Sets the value of a socket option. More...
 
bool bind (address_t address)
 Bind socket to IP/port. More...
 
bool listen ()
 Listen on previously bound port. More...
 
socket accept ()
 Accept a pending connection on listening socket. More...
 
raii_socket operator= (raii_socket &)=delete
 Non-copyable. More...
 
raii_socket operator= (raii_socket &&)=delete
 Non-movable. More...
 
 ~raii_socket ()
 Destructor Frees the socket by closing it. More...
 

Public Attributes

socket fd
 File descriptor. More...
 

Detailed Description

Allocates a dpp::socket, closing it on destruction.

Constructor & Destructor Documentation

◆ raii_socket() [1/4]

dpp::raii_socket::raii_socket ( raii_socket_type  type = rst_udp)

Construct a socket. Calls socket() and returns a new file descriptor.

◆ raii_socket() [2/4]

dpp::raii_socket::raii_socket ( socket  plain_fd)

Convert an established fd to an raii_socket.

Parameters
plain_fd

◆ raii_socket() [3/4]

dpp::raii_socket::raii_socket ( raii_socket )
delete

Non-copyable.

◆ raii_socket() [4/4]

dpp::raii_socket::raii_socket ( raii_socket &&  )
delete

Non-movable.

◆ ~raii_socket()

dpp::raii_socket::~raii_socket ( )

Destructor Frees the socket by closing it.

Member Function Documentation

◆ accept()

socket dpp::raii_socket::accept ( )

Accept a pending connection on listening socket.

Returns
new connection file descriptor

◆ bind()

bool dpp::raii_socket::bind ( address_t  address)

Bind socket to IP/port.

Parameters
addressaddress to bind to
Returns
true on success

◆ listen()

bool dpp::raii_socket::listen ( )

Listen on previously bound port.

Returns
true on success

◆ operator=() [1/2]

raii_socket dpp::raii_socket::operator= ( raii_socket &&  )
delete

Non-movable.

◆ operator=() [2/2]

raii_socket dpp::raii_socket::operator= ( raii_socket )
delete

Non-copyable.

◆ set_option()

template<typename T >
bool dpp::raii_socket::set_option ( int  level,
int  name,
value 
)

Sets the value of a socket option.

Template Parameters
Ttype to set option for
Parameters
levelThe level at which to change the socket options
nameThe option to change the value of
valueThe value to set
Returns
True if set successfully

Member Data Documentation

◆ fd

socket dpp::raii_socket::fd

File descriptor.

D++ Library version 10.1.1D++ Library version 10.1.0D++ Library version 10.0.35D++ Library version 10.0.34D++ Library version 10.0.33D++ Library version 10.0.32D++ Library version 10.0.31D++ Library version 10.0.30D++ Library version 10.0.29D++ Library version 10.0.28D++ Library version 10.0.27D++ Library version 10.0.26D++ Library version 10.0.25D++ Library version 10.0.24D++ Library version 10.0.23D++ Library version 10.0.22D++ Library version 10.0.21D++ Library version 10.0.20D++ Library version 10.0.19D++ Library version 10.0.18D++ Library version 10.0.17D++ Library version 10.0.16D++ Library version 10.0.15D++ Library version 10.0.14D++ Library version 10.0.13D++ Library version 10.0.12D++ Library version 10.0.11D++ Library version 10.0.10D++ Library version 10.0.9D++ Library version 10.0.8D++ Library version 10.0.7D++ Library version 10.0.6D++ Library version 10.0.5D++ Library version 10.0.4D++ Library version 10.0.3D++ Library version 10.0.2D++ Library version 10.0.1D++ Library version 10.0.0D++ Library version 9.0.19D++ Library version 9.0.18D++ Library version 9.0.17D++ Library version 9.0.16D++ Library version 9.0.15D++ Library version 9.0.14D++ Library version 9.0.13D++ Library version 9.0.12D++ Library version 9.0.11D++ Library version 9.0.10D++ Library version 9.0.9D++ Library version 9.0.8D++ Library version 9.0.7D++ Library version 9.0.6D++ Library version 9.0.5D++ Library version 9.0.4D++ Library version 9.0.3D++ Library version 9.0.2D++ Library version 9.0.1D++ Library version 9.0.0D++ Library version 1.0.2D++ Library version 1.0.1D++ Library version 1.0.0