mn::net::basic_ip6_socket Class Reference

This class represents an internet (IP) version 6 host socket. More...

#include <mn_basic_ip6_socket.hpp>

+ Inheritance diagram for mn::net::basic_ip6_socket:
+ Collaboration diagram for mn::net::basic_ip6_socket:

Public Types

using handle_type = typename basic_ip_socket::handle_type
 
using endpoint_type = basic_ip6_endpoint
 
using ipaddress_type = basic_ip6_address
 
- Public Types inherited from mn::net::basic_ip_socket
using handle_type = int
 

Public Member Functions

 basic_ip6_socket (handle_type &hndl, basic_ip6_endpoint *endp=nullptr) noexcept
 Construct the wrapper class from a given lwip socket handle and the endpoint. More...
 
 basic_ip6_socket (const socket_type &type, const protocol_type &protocol) noexcept
 Construct create a IPv4 Socket AF_INET. More...
 
 basic_ip6_socket (const basic_ip6_socket &other) noexcept
 a copy construtor More...
 
basic_ip6_socketoperator= (const basic_ip6_socket &other) noexcept
 a copy operator More...
 
bool bind (basic_ip6_endpoint local_ep)
 Bind the socket on the given endpoint (ip and port) More...
 
bool bind (const unsigned int &port)
 Bind the socket. More...
 
bool bind (basic_ip6_address ip, const unsigned int &port)
 Bind the socket on the given ip and port. More...
 
endpoint_typeget_endpoint (bool local)
 Get the local or remote ip endpoint. More...
 
endpoint_typeget_local ()
 Get the local endpoint. More...
 
endpoint_typeget_remote ()
 Get the remote endpoint. More...
 
bool get_peername (endpoint_type &endpoint)
 Get the remote endpoint. More...
 
bool get_peername (ipaddress_type &ipPeerAddress, uint16_t &iPeerPort)
 Get the remote endpoint. More...
 
virtual basic_ip_socketget_copy ()
 Get a copy of this socket. More...
 
virtual void swap (basic_ip6_socket &rhs) noexcept
 
- Public Member Functions inherited from mn::net::basic_ip_socket
 basic_ip_socket (const handle_type &hndl) noexcept
 construtor from a raw handle More...
 
 basic_ip_socket (const address_family &fam, const socket_type &type, const protocol_type &protocol) noexcept
 construtor create the socket More...
 
 basic_ip_socket (const basic_ip_socket &other) noexcept
 copy construtor More...
 
virtual ~basic_ip_socket () noexcept
 deconstrutor, close the socket More...
 
virtual bool open ()
 Open the socket - only used when the socket not initialized. More...
 
virtual void close ()
 
virtual int available ()
 Returns the number of bytes available that can be read without causing the socket to block. More...
 
virtual void reset (const handle_type &hnd=MNTHREAD_NET_INVALID_SOCKET, bool bClosed=false)
 Reset the socket. More...
 
virtual bool initialized ()
 If the socket initialized. More...
 
int get_last_error (bool poolLast=true)
 Get the saved copy of the last lwip error code. More...
 
int get_handle ()
 Get the raw socket handle. More...
 
basic_ip_socketoperator= (const basic_ip_socket &other)
 
virtual void swap (basic_ip_socket &rhs) noexcept
 
void shutdown (const socket_shutdown_type &cmd)
 send shutdown More...
 
bool poll (const unsigned long &timeout, int mode)
 poll the socket More...
 
void set_reuse_address (bool flag)
 Set the option socket_option_name::reuse_addr. More...
 
void set_rause_port (bool flag)
 Set the option socket_option_name::reuse_port. More...
 
void set_linger (bool on, int seconds)
 Set the option socket_option_name::linger. More...
 
void set_no_delay (bool flag)
 Set the option socket_option_name::tcp_nodelay. More...
 
void set_keep_alive (bool flag)
 Set the option socket_option_name::keepalive. More...
 
void set_oob_inline (bool flag)
 Set the option socket_option_name::oob_inline. More...
 
void set_blocking (bool flag)
 Set the socket for bloking. More...
 
void set_nocheak (bool value)
 Set the option socket_option_name::no_check. More...
 
void set_send_buffer_size (int value)
 Set the size of the send buffer. More...
 
void set_recive_buffer_size (int value)
 Set the size of the recive buffer. More...
 
void set_send_timeout (int value)
 Set the option socket_option_name::send_timeout. More...
 
void set_recive_timeout (int value)
 Set the option socket_option_name::recive_timeout. More...
 
bool get_reuse_address ()
 Get the value of the option socket_option_name::reuse_addr. More...
 
bool get_rause_port ()
 Get the value of the option socket_option_name::reuse_port. More...
 
void get_linger (bool &on, int &seconds)
 Get the value of the option socket_option_name::linger. More...
 
bool get_no_delay ()
 Get the value of the option socket_option_name::no_delay. More...
 
bool get_keep_alive ()
 Get the value of the option socket_option_name::keepalive. More...
 
bool get_oob_inline ()
 Get the value of the option socket_option_name::oob_inline. More...
 
bool get_nocheak ()
 Get the value of the option socket_option_name::no_check. More...
 
bool get_blocking ()
 Is the socket blocking enabled. More...
 
int get_send_buffer_size ()
 Get the size of the send buffer. More...
 
int get_recive_buffer_size ()
 Get the size of the recive buffer. More...
 
int get_send_timeout ()
 Set the option socket_option_name::send_timeout. More...
 
int get_recive_timeout ()
 Set the option socket_option_name::recive_timeout. More...
 
int set_options (const socket_option_level &opt, const socket_option_name &name, int value)
 Sets the socket option specified by level and option to the given integer value. More...
 
int set_options (const socket_option_level &opt, const socket_option_name &name, unsigned int value)
 Sets the socket option specified by level and option to the given integer value. More...
 
int set_options (const socket_option_level &opt, const socket_option_name &name, basic_ip4_address value)
 Sets the socket option specified by level and option to the given integer value. More...
 
int set_options (const socket_option_level &opt, const socket_option_name &name, basic_ip6_address value)
 Sets the socket option specified by level and option to the given integer value. More...
 
int set_options (const socket_option_level &opt, const socket_option_name &name, bool value)
 Set a given option, version for boolen values. More...
 
int set_options (const socket_option_level &opt, const socket_option_name &name, void *value, uint32_t size)
 Set a given option, version for data. More...
 
int get_option_int (const socket_option_level &opt, const socket_option_name &name)
 Get a interger value of a given option. More...
 
bool get_option_bool (const socket_option_level &opt, const socket_option_name &name)
 Get a booles value of a given option. More...
 
int get_option_raw (const socket_option_level &opt, const socket_option_name &name, void *value, uint32_t size)
 Get a buffer value of a given option. More...
 
int ioctl (const ioctl_request_type &request, int &arg)
 A wrapper for the ioctl system call. More...
 
int ioctl (const ioctl_request_type &request, void *arg)
 A wrapper for the ioctl system call. More...
 
int set_fcntl (int arg)
 A wrapper for the fcntl system call. More...
 
int get_fcntl ()
 A wrapper for the fcntl system call. More...
 

Protected Attributes

endpoint_typem_pEndPoint
 A saved / cached copy of the endpoint on binde the socket. More...
 
- Protected Attributes inherited from mn::net::basic_ip_socket
handle_type m_iHandle
 Reference to the underlying socket handle for this socket. More...
 
address_family m_eFam
 A saved / cached copy of the address family type of this socket. More...
 
socket_type m_eType
 A saved / cached copy of the socket type of this socket. More...
 
protocol_type m_eProtocol
 A saved / cached copy of the protocal type of this socket. More...
 
bool m_bBlocked
 A saved / cached copy of a blocked flag. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mn::net::basic_ip_socket
virtual bool open (const address_family &fam, const socket_type &type, const protocol_type &protocol)
 Open the socket - only used when the socket not initialized. More...
 

Detailed Description

This class represents an internet (IP) version 6 host socket.

Member Typedef Documentation

◆ endpoint_type

◆ handle_type

◆ ipaddress_type

Constructor & Destructor Documentation

◆ basic_ip6_socket() [1/3]

mn::net::basic_ip6_socket::basic_ip6_socket ( handle_type hndl,
basic_ip6_endpoint endp = nullptr 
)
noexcept

Construct the wrapper class from a given lwip socket handle and the endpoint.

Parameters
hndlThe raw lwip socket handle.
endpThe endpoint for this socket

◆ basic_ip6_socket() [2/3]

mn::net::basic_ip6_socket::basic_ip6_socket ( const socket_type type,
const protocol_type protocol 
)
noexcept

Construct create a IPv4 Socket AF_INET.

Parameters
typeThe type of the socket
protocolThe using protocal for this socket

◆ basic_ip6_socket() [3/3]

mn::net::basic_ip6_socket::basic_ip6_socket ( const basic_ip6_socket other)
noexcept

a copy construtor

Member Function Documentation

◆ bind() [1/3]

bool mn::net::basic_ip6_socket::bind ( basic_ip6_address  ip,
const unsigned int &  port 
)

Bind the socket on the given ip and port.

Parameters
ipThe IPv6 address to bind this socket
portThe port to bind this socket
Returns
  • true: success
  • false: on error

◆ bind() [2/3]

bool mn::net::basic_ip6_socket::bind ( basic_ip6_endpoint  local_ep)

Bind the socket on the given endpoint (ip and port)

Parameters
epThe endpoint to bind this socket
Returns
  • true: bind the socket on the given endpoint
  • false: bind error

◆ bind() [3/3]

bool mn::net::basic_ip6_socket::bind ( const unsigned int &  port)

Bind the socket.

Note
bind on MNNET_IPV4_ADDRESS_ANY : port
Parameters
portThe port to bind this socket
Returns
  • true: bind the socket on MNNET_IPV4_ADDRESS_ANY : port
  • false: bind error

◆ get_copy()

virtual basic_ip_socket* mn::net::basic_ip6_socket::get_copy ( )
inlinevirtual

Get a copy of this socket.

Returns
A copy of this socket

Implements mn::net::basic_ip_socket.

Reimplemented in mn::net::basic_raw_ip6_socket.

◆ get_endpoint()

basic_ip6_endpoint * mn::net::basic_ip6_socket::get_endpoint ( bool  local)

Get the local or remote ip endpoint.

Parameters
localWhen this flag true is then return the local endpoint
Returns
The local or remote ip endpoint

◆ get_local()

endpoint_type* mn::net::basic_ip6_socket::get_local ( )
inline

Get the local endpoint.

Returns
The local endpoint

◆ get_peername() [1/2]

bool mn::net::basic_ip6_socket::get_peername ( endpoint_type endpoint)

Get the remote endpoint.

Parameters
endpointThe holder of the returned endpoint
Returns
if true then success and if false on error

◆ get_peername() [2/2]

bool mn::net::basic_ip6_socket::get_peername ( ipaddress_type ipPeerAddress,
uint16_t &  iPeerPort 
)

Get the remote endpoint.

Parameters
ipPeerAddressThe holder of the returned ip4 address
iPeerPortThe holder of the returned port
Returns
if true then success and if false on error

◆ get_remote()

endpoint_type* mn::net::basic_ip6_socket::get_remote ( )
inline

Get the remote endpoint.

Returns
The remote endpoint

◆ operator=()

basic_ip6_socket & mn::net::basic_ip6_socket::operator= ( const basic_ip6_socket other)
noexcept

a copy operator

Parameters
otherThe other socket object
Returns
Return this as reference

◆ swap()

virtual void mn::net::basic_ip6_socket::swap ( basic_ip6_socket rhs)
inlinevirtualnoexcept

Member Data Documentation

◆ m_pEndPoint

endpoint_type* mn::net::basic_ip6_socket::m_pEndPoint
protected

A saved / cached copy of the endpoint on binde the socket.


The documentation for this class was generated from the following files: