Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CAcceptorSocketTmpl< STREAM_SOCK, ADDR > Class Template Reference

#include <CAcceptorSocket.hpp>

Inheritance diagram for CAcceptorSocketTmpl< STREAM_SOCK, ADDR >:
[legend]
Collaboration diagram for CAcceptorSocketTmpl< STREAM_SOCK, ADDR >:
[legend]

Public Types

using stream_sock_t = STREAM_SOCK
 
using addr_t = ADDR
 

Public Member Functions

 CAcceptorSocketTmpl ()=default
 
 CAcceptorSocketTmpl (const addr_t &address, int32_t queueSize=DFLT_QUEUE_SIZE)
 
 CAcceptorSocketTmpl (in_port_t port, int32_t queueSize=DFLT_QUEUE_SIZE)
 
 CAcceptorSocketTmpl (CAcceptorSocketTmpl &&acc) noexcept
 
 CAcceptorSocketTmpl (const CAcceptorSocketTmpl &)=delete
 
CAcceptorSocketTmploperator= (const CAcceptorSocketTmpl &)=delete
 
CAcceptorSocketTmploperator= (CAcceptorSocketTmpl &&rhs) noexcept
 
stream_sock_t accept (addr_t *clientAddress=nullptr)
 
stream_sock_t acceptWithTimeout (addr_t *clientAddress, uint64_t timeout)
 
bool bind (const addr_t &address)
 
bool open (const addr_t &address, int32_t queueSize=DFLT_QUEUE_SIZE)
 
bool open (in_port_t port, int32_t queueSize=DFLT_QUEUE_SIZE)
 
addr_t getAddr () const
 
bool listen (int32_t queueSize=DFLT_QUEUE_SIZE)
 
bool open (const CSocketAddress &address, int32_t queueSize=DFLT_QUEUE_SIZE)
 
CStreamSocket accept (CSocketAddress *clientAddress=nullptr)
 
CStreamSocket acceptWithTimeout (CSocketAddress *clientAddress, uint64_t timeout)
 
bool operator! () const
 Operador de negación.
 
 operator bool () const
 Operador de conversión a bool.
 
virtual bool bind (const CSocketAddress &address)
 Asigna una dirección a un socket.
 
bool bind (const sockaddr *address, socklen_t len) const
 
bool isOpen () const
 Comprueba que el handle del socket sea válido.
 
socket_t release ()
 Pone a -1 el handle interno y devuelve el valor anterior. Al no invalidar el file descriptor del socket, se puede usar para desasociar el socket del Sistema Operativo de un objeto CSocket concreto.
 
void reset (socket_t handle=INVALID_SOCKET)
 Asigna un nuevo handle al socket e invalida el anterior.
 
CSocket clone () const
 Crea un nuevo objeto CSocket con el mismo handle que el actual.
 
bool close ()
 Cierra el socket.
 
virtual CSocketAddressAny getAddress () const
 
virtual CSocketAddressAny getPeerAddress () const
 
virtual sa_family_t getFamily () const
 
socket_t getHandle () const
 
void setLastError (int32_t err=INT32_MAX) const
 
std::string getLastErrorString () const
 
void clearLastError (int32_t value=0) const
 
bool getOption (int32_t level, int32_t optName, void *optVal, socklen_t *optLength) const
 
template<typename T >
bool getOption (const int32_t level, const int32_t optName, T *value) const
 
bool setOption (int32_t level, int32_t optName, const void *optVal, socklen_t optLength) const
 
template<typename T >
bool setOption (const int32_t level, const int32_t optName, const T &value)
 
bool setNonBlocking (bool on=true) const
 

Static Public Member Functions

static CAcceptorSocketTmpl create ()
 
static CAcceptorSocket create (int32_t domain)
 
static CSocket create (int32_t domain, int32_t type, int32_t protocol=0)
 
static bool close (socket_t h)
 
static std::tuple< CSocket, CSocketpair (int32_t domain, int32_t type, int32_t protocol=0)
 

Protected Member Functions

template<typename T >
checkRet (T ret) const
 
template<typename T >
bool checkRetBool (T ret) const
 
socket_t checkSocket (socket_t ret) const
 
bool checkSocketBool (socket_t ret) const
 
bool closeOnError ()
 

Static Protected Member Functions

static socket_t createHandle (int32_t domain)
 
static int32_t getErrno ()
 Función que devuelve el valor actual de errno.
 

Protected Attributes

socket_t m_handle
 

Static Protected Attributes

static const int32_t DFLT_QUEUE_SIZE = 4
 

Private Attributes

int32_t m_lastError
 

Member Typedef Documentation

◆ addr_t

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
using CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::addr_t = ADDR

◆ stream_sock_t

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
using CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::stream_sock_t = STREAM_SOCK

Constructor & Destructor Documentation

◆ CAcceptorSocketTmpl() [1/5]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::CAcceptorSocketTmpl ( )
default

◆ CAcceptorSocketTmpl() [2/5]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::CAcceptorSocketTmpl ( const addr_t & address,
int32_t queueSize = DFLT_QUEUE_SIZE )
inlineexplicit

◆ CAcceptorSocketTmpl() [3/5]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::CAcceptorSocketTmpl ( in_port_t port,
int32_t queueSize = DFLT_QUEUE_SIZE )
inlineexplicit

◆ CAcceptorSocketTmpl() [4/5]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::CAcceptorSocketTmpl ( CAcceptorSocketTmpl< STREAM_SOCK, ADDR > && acc)
inlinenoexcept

◆ CAcceptorSocketTmpl() [5/5]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::CAcceptorSocketTmpl ( const CAcceptorSocketTmpl< STREAM_SOCK, ADDR > & )
delete

Member Function Documentation

◆ accept() [1/2]

CStreamSocket CAcceptorSocket::accept ( CSocketAddress * clientAddress = nullptr)
inherited

◆ accept() [2/2]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
stream_sock_t CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::accept ( addr_t * clientAddress = nullptr)
inline

◆ acceptWithTimeout() [1/2]

CStreamSocket CAcceptorSocket::acceptWithTimeout ( CSocketAddress * clientAddress,
uint64_t timeout )
inherited

◆ acceptWithTimeout() [2/2]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
stream_sock_t CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::acceptWithTimeout ( addr_t * clientAddress,
uint64_t timeout )
inline

◆ bind() [1/3]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
bool CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::bind ( const addr_t & address)
inline

◆ bind() [2/3]

bool CSocket::bind ( const CSocketAddress & address)
virtualinherited

Asigna una dirección a un socket.

Parameters
addressDirección a la que el socket se va a asociar.
Returns
true si se ha podido asignar la dirección, false en caso contrario.

◆ bind() [3/3]

bool CSocket::bind ( const sockaddr * address,
socklen_t len ) const
inherited

◆ checkRet()

template<typename T >
T CSocket::checkRet ( T ret) const
inlineprotectedinherited

◆ checkRetBool()

template<typename T >
bool CSocket::checkRetBool ( T ret) const
inlineprotectedinherited

◆ checkSocket()

socket_t CSocket::checkSocket ( socket_t ret) const
inlineprotectedinherited

◆ checkSocketBool()

bool CSocket::checkSocketBool ( socket_t ret) const
inlineprotectedinherited

◆ clearLastError()

void CSocket::clearLastError ( int32_t value = 0) const
inherited

◆ clone()

CSocket CSocket::clone ( ) const
inherited

Crea un nuevo objeto CSocket con el mismo handle que el actual.

Note
No invalida el handle del objeto actual.
Returns
Nuevo objeto CSocket con el mismo handle que el actual.

◆ close() [1/2]

bool CSocket::close ( )
inherited

Cierra el socket.

Returns
true si se ha cerrado correctamente, false en caso contrario.

◆ close() [2/2]

bool CSocket::close ( socket_t h)
staticinherited

◆ closeOnError()

bool CSocket::closeOnError ( )
inlineprotectedinherited

◆ create() [1/3]

CAcceptorSocket CAcceptorSocket::create ( int32_t domain)
staticinherited

◆ create() [2/3]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
static CAcceptorSocketTmpl CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::create ( )
inlinestatic

◆ create() [3/3]

CSocket CSocket::create ( int32_t domain,
int32_t type,
int32_t protocol = 0 )
staticinherited

◆ createHandle()

static socket_t CAcceptorSocket::createHandle ( int32_t domain)
inlinestaticprotectedinherited

◆ getAddr()

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
addr_t CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::getAddr ( ) const
inline

◆ getAddress()

CSocketAddressAny CSocket::getAddress ( ) const
virtualinherited

◆ getErrno()

int32_t CSocket::getErrno ( )
staticprotectedinherited

Función que devuelve el valor actual de errno.

Note
Esta función es estática pero protected, por lo que puede ser llamada desde las clases derivadas sin necesidad de crear un objeto de tipo CSocket.
Returns
Valor actual de errno.

◆ getFamily()

sa_family_t CSocket::getFamily ( ) const
virtualinherited

◆ getHandle()

socket_t CSocket::getHandle ( ) const
inherited

◆ getLastErrorString()

std::string CSocket::getLastErrorString ( ) const
inherited

◆ getOption() [1/2]

template<typename T >
bool CSocket::getOption ( const int32_t level,
const int32_t optName,
T * value ) const
inlineinherited

◆ getOption() [2/2]

bool CSocket::getOption ( int32_t level,
int32_t optName,
void * optVal,
socklen_t * optLength ) const
inherited

◆ getPeerAddress()

CSocketAddressAny CSocket::getPeerAddress ( ) const
virtualinherited

◆ isOpen()

bool CSocket::isOpen ( ) const
inherited

Comprueba que el handle del socket sea válido.

Returns
true si el handle es distinto de INVALID_SOCKET, false en caso contrario.

◆ listen()

bool CAcceptorSocket::listen ( int32_t queueSize = DFLT_QUEUE_SIZE)
inlineinherited

◆ open() [1/3]

bool CAcceptorSocket::open ( const CSocketAddress & address,
int32_t queueSize = DFLT_QUEUE_SIZE )
inherited

◆ open() [2/3]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
bool CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::open ( const addr_t & address,
int32_t queueSize = DFLT_QUEUE_SIZE )
inline

◆ open() [3/3]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
bool CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::open ( in_port_t port,
int32_t queueSize = DFLT_QUEUE_SIZE )
inline

◆ operator bool()

CSocket::operator bool ( ) const
explicitinherited

Operador de conversión a bool.

Returns
true si el socket es válido y no hay ningún error, false en caso contrario.

◆ operator!()

bool CSocket::operator! ( ) const
inherited

Operador de negación.

Returns
true si el socket es válido o hay algún error, false en caso contrario.

◆ operator=() [1/2]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl & CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::operator= ( CAcceptorSocketTmpl< STREAM_SOCK, ADDR > && rhs)
inlinenoexcept

◆ operator=() [2/2]

template<typename STREAM_SOCK , typename ADDR = typename STREAM_SOCK::addr_t>
CAcceptorSocketTmpl & CAcceptorSocketTmpl< STREAM_SOCK, ADDR >::operator= ( const CAcceptorSocketTmpl< STREAM_SOCK, ADDR > & )
delete

◆ pair()

std::tuple< CSocket, CSocket > CSocket::pair ( int32_t domain,
int32_t type,
int32_t protocol = 0 )
staticinherited

◆ release()

socket_t CSocket::release ( )
inherited

Pone a -1 el handle interno y devuelve el valor anterior. Al no invalidar el file descriptor del socket, se puede usar para desasociar el socket del Sistema Operativo de un objeto CSocket concreto.

Returns
Valor del handle anterior.

◆ reset()

void CSocket::reset ( socket_t handle = INVALID_SOCKET)
inherited

Asigna un nuevo handle al socket e invalida el anterior.

Parameters
handleNuevo handle a asignar.

◆ setLastError()

void CSocket::setLastError ( int32_t err = INT32_MAX) const
inherited

◆ setNonBlocking()

bool CSocket::setNonBlocking ( bool on = true) const
inherited

◆ setOption() [1/2]

template<typename T >
bool CSocket::setOption ( const int32_t level,
const int32_t optName,
const T & value )
inlineinherited

◆ setOption() [2/2]

bool CSocket::setOption ( int32_t level,
int32_t optName,
const void * optVal,
socklen_t optLength ) const
inherited

Member Data Documentation

◆ DFLT_QUEUE_SIZE

const int32_t CAcceptorSocket::DFLT_QUEUE_SIZE = 4
staticprotectedinherited

◆ m_handle

socket_t CSocket::m_handle
protectedinherited

◆ m_lastError

int32_t CSocket::m_lastError
mutableprivateinherited

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