1#ifndef LIBS_COMM_CSTREAMSOCKET_HPP_
2#define LIBS_COMM_CSTREAMSOCKET_HPP_
32 ssize_t
read(
const std::vector<iovec> &ranges);
33 virtual ssize_t
read(
void *buf,
size_t n);
34 virtual ssize_t
read_n(
void *buf,
size_t n);
36 virtual ssize_t
write(
const std::string &s)
38 return write_n(s.data(), s.size());
41 virtual ssize_t
write(
const std::vector<iovec> &ranges);
42 virtual ssize_t
write(
const void *buf,
size_t n);
43 virtual ssize_t
write_n(
const void *buf,
size_t n);
47 template<
class Rep,
class Period>
50 return setReadTimeout(std::chrono::duration_cast<std::chrono::microseconds>(to));
55 template<
class Rep,
class Period>
58 return setWriteTimeout(std::chrono::duration_cast<std::chrono::microseconds>(to));
72template<
typename ADDR>
105 static std::tuple<CStreamSocketTmpl, CStreamSocketTmpl>
pair(int32_t protocol = 0)
109 return std::make_tuple<CStreamSocketTmpl, CStreamSocketTmpl>(
CStreamSocketTmpl {std::get<0>(pr).release()},
int32_t socket_t
Definition ENetPort.hpp:13
Definition CAcceptorSocket.hpp:7
Clase que representa un socket de comunicación. Se usa como base para la genereación de clases de com...
Definition CSocket.hpp:19
virtual CSocketAddressAny getPeerAddress() const
Definition CSocket.cpp:152
CSocket()
Constructor por defecto. Inicializa el socket con el valor INVALID_SOCKET y el error a 0.
Definition CSocket.cpp:6
static std::tuple< CSocket, CSocket > pair(int32_t domain, int32_t type, int32_t protocol=0)
Definition CSocket.cpp:116
CSocket & operator=(const CSocket &other)=delete
Operador de asignación de copia, eliminado para evitar su uso.
virtual CSocketAddressAny getAddress() const
Definition CSocket.cpp:139
Definition CStreamSocket.hpp:74
CStreamSocketTmpl()=default
CStreamSocketTmpl(socket_t handle)
Definition CStreamSocket.hpp:81
CStreamSocketTmpl(CStreamSocketTmpl &&sock) noexcept
Definition CStreamSocket.hpp:89
static constexpr sa_family_t ADDRESS_FAMILY
Definition CStreamSocket.hpp:76
addr_t getAddr() const
Definition CStreamSocket.hpp:113
ADDR addr_t
Definition CStreamSocket.hpp:77
CStreamSocketTmpl(CStreamSocket &&sock)
Definition CStreamSocket.hpp:85
CStreamSocketTmpl create(int32_t protocol=0)
Definition CStreamSocket.hpp:100
CStreamSocketTmpl & operator=(CStreamSocketTmpl &&rhs) noexcept
Definition CStreamSocket.hpp:93
static std::tuple< CStreamSocketTmpl, CStreamSocketTmpl > pair(int32_t protocol=0)
Definition CStreamSocket.hpp:105
addr_t getPeerAddr() const
Definition CStreamSocket.hpp:118
Definition CStreamSocket.hpp:9
CStreamSocket(CStreamSocket &&sock) noexcept
Definition CStreamSocket.hpp:19
CStreamSocket & operator=(CStreamSocket &&rhs) noexcept
Definition CStreamSocket.hpp:25
bool setReadTimeout(const std::chrono::duration< Rep, Period > &to)
Definition CStreamSocket.hpp:48
virtual ssize_t write_n(const void *buf, size_t n)
Definition CStreamSocket.cpp:69
static socket_t createHandle(int32_t domain)
Definition CStreamSocket.hpp:64
bool write_timeout(const std::chrono::duration< Rep, Period > &to)
Definition CStreamSocket.hpp:56
virtual ssize_t read_n(void *buf, size_t n)
Definition CStreamSocket.cpp:30
virtual bool setReadTimeout(const std::chrono::microseconds &to)
Definition CStreamSocket.cpp:94
static CStreamSocket create(int32_t domain, int32_t protocol=0)
Definition CStreamSocket.cpp:3
virtual ssize_t write(const std::string &s)
Definition CStreamSocket.hpp:36
static constexpr int32_t COMM_TYPE
Definition CStreamSocket.hpp:11
CStreamSocket(socket_t handle)
Definition CStreamSocket.hpp:15
ssize_t read(const std::vector< iovec > &ranges)
Definition CStreamSocket.cpp:15
virtual bool setWriteTimeout(const std::chrono::microseconds &to)
Definition CStreamSocket.cpp:101