Update udp.hpp

This commit is contained in:
Michele Caini 2017-01-19 08:53:16 +01:00 committed by GitHub
parent c631e4cc9f
commit a47c8d629c

View File

@ -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));
}
/**