Update udp.hpp
This commit is contained in:
parent
c631e4cc9f
commit
a47c8d629c
@ -32,8 +32,8 @@ struct SendEvent: Event<SendEvent> {};
|
||||
* It will be emitted by UDPHandle according with its functionalities.
|
||||
*/
|
||||
struct UDPDataEvent: Event<UDPDataEvent> {
|
||||
explicit UDPDataEvent(Addr _sender, std::unique_ptr<const char[]> _data, std::size_t _length, bool _partial) noexcept
|
||||
: data{std::move(_data)}, length{_length}, sender{std::move(_sender)}, partial{_partial}
|
||||
explicit UDPDataEvent(Addr sndr, std::unique_ptr<const char[]> buf, std::size_t len, bool part) noexcept
|
||||
: data{std::move(buf)}, length{len}, sender{std::move(sndr)}, partial{part}
|
||||
{}
|
||||
|
||||
std::unique_ptr<const char[]> data; /*!< A bunch of data read on the stream. */
|
||||
@ -62,10 +62,10 @@ class SendReq final: public Request<SendReq, uv_udp_send_t> {
|
||||
public:
|
||||
using Deleter = void(*)(uv_buf_t *);
|
||||
|
||||
SendReq(ConstructorAccess ca, std::shared_ptr<Loop> loop, std::unique_ptr<uv_buf_t[], Deleter> _bufs, std::size_t _nbufs)
|
||||
SendReq(ConstructorAccess ca, std::shared_ptr<Loop> loop, std::unique_ptr<uv_buf_t[], Deleter> data, std::size_t ndata)
|
||||
: Request<SendReq, uv_udp_send_t>{std::move(ca), std::move(loop)},
|
||||
bufs{std::move(_bufs)},
|
||||
nbufs{_nbufs}
|
||||
bufs{std::move(data)},
|
||||
nbufs{ndata}
|
||||
{}
|
||||
|
||||
void send(uv_udp_t *handle, const struct sockaddr* addr) {
|
||||
@ -152,10 +152,10 @@ public:
|
||||
* [documentation](http://docs.libuv.org/en/v1.x/udp.html#c.uv_udp_open)
|
||||
* for further details.
|
||||
*
|
||||
* @param sock A valid socket handle (either a file descriptor or a SOCKET).
|
||||
* @param sck A valid socket handle (either a file descriptor or a SOCKET).
|
||||
*/
|
||||
void open(OSSocketHandle _sock) {
|
||||
invoke(&uv_udp_open, get(), _sock);
|
||||
void open(OSSocketHandle socket) {
|
||||
invoke(&uv_udp_open, get(), socket);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -172,13 +172,13 @@ public:
|
||||
*
|
||||
* @param ip The IP address to which to bind.
|
||||
* @param port The port to which to bind.
|
||||
* @param flags Optional additional flags.
|
||||
* @param opts Optional additional flags.
|
||||
*/
|
||||
template<typename I = IPv4>
|
||||
void bind(std::string ip, unsigned int port, Flags<Bind> _flags = Flags<Bind>{}) {
|
||||
void bind(std::string ip, unsigned int port, Flags<Bind> opts = Flags<Bind>{}) {
|
||||
typename details::IpTraits<I>::Type addr;
|
||||
details::IpTraits<I>::addrFunc(ip.data(), port, &addr);
|
||||
invoke(&uv_udp_bind, get(), reinterpret_cast<const sockaddr *>(&addr), _flags);
|
||||
invoke(&uv_udp_bind, get(), reinterpret_cast<const sockaddr *>(&addr), opts);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -194,11 +194,11 @@ public:
|
||||
* for further details.
|
||||
*
|
||||
* @param addr A valid instance of Addr.
|
||||
* @param flags Optional additional flags.
|
||||
* @param opts Optional additional flags.
|
||||
*/
|
||||
template<typename I = IPv4>
|
||||
void bind(Addr addr, Flags<Bind> _flags = Flags<Bind>{}) {
|
||||
bind<I>(addr.ip, addr.port, _flags);
|
||||
void bind(Addr addr, Flags<Bind> opts = Flags<Bind>{}) {
|
||||
bind<I>(addr.ip, addr.port, opts);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -300,7 +300,7 @@ public:
|
||||
typename details::IpTraits<I>::Type addr;
|
||||
details::IpTraits<I>::addrFunc(ip.data(), port, &addr);
|
||||
|
||||
auto _send = loop().resource<details::SendReq>(
|
||||
auto req = loop().resource<details::SendReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::SendReq::Deleter>{
|
||||
new uv_buf_t[1]{ uv_buf_init(data.release(), len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs->base; delete[] bufs; }
|
||||
@ -310,9 +310,9 @@ public:
|
||||
ptr->publish(event);
|
||||
};
|
||||
|
||||
_send->once<ErrorEvent>(listener);
|
||||
_send->once<SendEvent>(listener);
|
||||
_send->send(get(), reinterpret_cast<const sockaddr *>(&addr));
|
||||
req->once<ErrorEvent>(listener);
|
||||
req->once<SendEvent>(listener);
|
||||
req->send(get(), reinterpret_cast<const sockaddr *>(&addr));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -338,7 +338,7 @@ public:
|
||||
typename details::IpTraits<I>::Type addr;
|
||||
details::IpTraits<I>::addrFunc(ip.data(), port, &addr);
|
||||
|
||||
auto _send = loop().resource<details::SendReq>(
|
||||
auto req = loop().resource<details::SendReq>(
|
||||
std::unique_ptr<uv_buf_t[], details::SendReq::Deleter>{
|
||||
new uv_buf_t[1]{ uv_buf_init(data, len) },
|
||||
[](uv_buf_t *bufs) { delete[] bufs; }
|
||||
@ -348,9 +348,9 @@ public:
|
||||
ptr->publish(event);
|
||||
};
|
||||
|
||||
_send->once<ErrorEvent>(listener);
|
||||
_send->once<SendEvent>(listener);
|
||||
_send->send(get(), reinterpret_cast<const sockaddr *>(&addr));
|
||||
req->once<ErrorEvent>(listener);
|
||||
req->once<SendEvent>(listener);
|
||||
req->send(get(), reinterpret_cast<const sockaddr *>(&addr));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user