1#ifndef LIBS_COMM_CDATAGRAMSOCKET_HPP_
2#define LIBS_COMM_CDATAGRAMSOCKET_HPP_
50 return sendTo(buf, n, 0, address);
55 return sendTo(s.data(), s.length(), flags, address);
60 return sendTo(s.data(), s.length(), 0, address);
63 ssize_t
send(
const void *buf,
size_t n, int32_t flags = 0)
68 ssize_t
send(
const std::string &s, int32_t flags = 0)
70 return send(s.data(), s.length(), flags);
77 return recvFrom(buf, n, 0, srcAddress);
80 ssize_t
recv(
void *buf,
size_t n, int32_t flags = 0)
98template<
typename ADDR>
129 static std::tuple<CDatagramSocketTmpl, CDatagramSocketTmpl>
pair(int32_t protocol = 0)
133 return std::make_tuple<CDatagramSocketTmpl, CDatagramSocketTmpl>(
137 ssize_t
sendTo(
const void *buf,
size_t n, int32_t flags,
const ADDR &address)
142 ssize_t
sendTo(
const std::string &s, int32_t flags,
const ADDR &address)
147 ssize_t
sendTo(
const void *buf,
size_t n,
const ADDR &address)
152 ssize_t
sendTo(
const std::string &s,
const ADDR &address)
157 ssize_t
recvFrom(
void *buf,
size_t n, int32_t flags, ADDR *srcAddress)
162 ssize_t
recvFrom(
void *buf,
size_t n, ADDR *srcAddress =
nullptr)
int32_t socket_t
Definition ENetPort.hpp:13
#define IV_ASSERT_NULL_POINTER(ptr)
Definition assert.hpp:128
Definition CDatagramSocket.hpp:100
CDatagramSocketTmpl(const ADDR &address)
Definition CDatagramSocket.hpp:114
static constexpr sa_family_t ADDRESS_FAMILY
Definition CDatagramSocket.hpp:102
CDatagramSocketTmpl()
Definition CDatagramSocket.hpp:106
ssize_t sendTo(const void *buf, size_t n, const ADDR &address)
Definition CDatagramSocket.hpp:147
ADDR addr_t
Definition CDatagramSocket.hpp:104
ssize_t sendTo(const std::string &s, const ADDR &address)
Definition CDatagramSocket.hpp:152
CDatagramSocketTmpl(socket_t handle)
Definition CDatagramSocket.hpp:110
CDatagramSocketTmpl & operator=(CDatagramSocketTmpl &&rhs)
Definition CDatagramSocket.hpp:122
ssize_t recvFrom(void *buf, size_t n, ADDR *srcAddress=nullptr)
Definition CDatagramSocket.hpp:162
CDatagramSocketTmpl(CDatagramSocketTmpl &&other)
Definition CDatagramSocket.hpp:118
ssize_t sendTo(const std::string &s, int32_t flags, const ADDR &address)
Definition CDatagramSocket.hpp:142
ssize_t recvFrom(void *buf, size_t n, int32_t flags, ADDR *srcAddress)
Definition CDatagramSocket.hpp:157
static std::tuple< CDatagramSocketTmpl, CDatagramSocketTmpl > pair(int32_t protocol=0)
Definition CDatagramSocket.hpp:129
ssize_t sendTo(const void *buf, size_t n, int32_t flags, const ADDR &address)
Definition CDatagramSocket.hpp:137
Definition CDatagramSocket.hpp:8
CDatagramSocket & operator=(const CDatagramSocket &other)=delete
CDatagramSocket(socket_t handle)
Definition CDatagramSocket.hpp:16
ssize_t sendTo(const std::string &s, const CSocketAddress &address)
Definition CDatagramSocket.hpp:58
ssize_t recv(void *buf, size_t n, int32_t flags=0)
Definition CDatagramSocket.hpp:80
virtual ~CDatagramSocket()
Definition CDatagramSocket.hpp:26
static constexpr int32_t COMM_TYPE
Definition CDatagramSocket.hpp:10
CDatagramSocket(CDatagramSocket &&other)
Definition CDatagramSocket.hpp:22
static socket_t createHandle(int32_t domain)
Definition CDatagramSocket.hpp:86
ssize_t sendTo(const void *buf, size_t n, const CSocketAddress &address)
Definition CDatagramSocket.hpp:48
ssize_t sendTo(const void *buf, size_t n, int32_t flags, const CSocketAddress &address)
Definition CDatagramSocket.hpp:42
ssize_t recvFrom(void *buf, size_t n, CSocketAddress *srcAddress=nullptr)
Definition CDatagramSocket.hpp:75
CDatagramSocket & operator=(CDatagramSocket &&rhs)
Definition CDatagramSocket.hpp:30
ssize_t recvFrom(void *buf, size_t n, int32_t flags, CSocketAddress *srcAddress=nullptr)
Definition CDatagramSocket.cpp:19
ssize_t send(const std::string &s, int32_t flags=0)
Definition CDatagramSocket.hpp:68
virtual bool connect(const CSocketAddress &address)
Definition CDatagramSocket.hpp:37
CDatagramSocket()
Definition CDatagramSocket.hpp:12
ssize_t sendTo(const std::string &s, int32_t flags, const CSocketAddress &address)
Definition CDatagramSocket.hpp:53
ssize_t send(const void *buf, size_t n, int32_t flags=0)
Definition CDatagramSocket.hpp:63
CDatagramSocket(const CDatagramSocket &other)=delete
Definition CSocketAddress.hpp:91
virtual sockaddr * getSocketAddress()=0
virtual socklen_t size() const =0
Clase que representa un socket de comunicación. Se usa como base para la genereación de clases de com...
Definition CSocket.hpp:19
T checkRet(T ret) const
Definition CSocket.hpp:161
socket_t getHandle() const
Definition CSocket.cpp:170
bool checkRetBool(T ret) const
Definition CSocket.hpp:169
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.