From 464154d103339643a2f122cd49e360314ab046e2 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Wed, 27 Jul 2016 10:10:25 +0200 Subject: [PATCH] clean up + TODO comments (thanks to saghul) --- src/uvw/fs.hpp | 18 ++++++++---------- src/uvw/stream.hpp | 25 ++++++------------------- src/uvw/udp.hpp | 18 ++++-------------- 3 files changed, 18 insertions(+), 43 deletions(-) diff --git a/src/uvw/fs.hpp b/src/uvw/fs.hpp index 9689e1e0..8d95db52 100644 --- a/src/uvw/fs.hpp +++ b/src/uvw/fs.hpp @@ -172,6 +172,12 @@ class Fs final: public Request { static void fsReadlinkCallback(uv_fs_t *req) { // TODO - uv_fs_readlink callback + /* +[10:00] <@saghul> in readlink's case, the result is in req->ptr +[10:00] <@saghul> it's a null terminated string +[10:00] <@saghul> but in that case the result will be 0 +[10:00] <@saghul> indicating success + */ } using Request::Request; @@ -220,17 +226,9 @@ public: return std::make_pair(ErrorEvent{err}, FsEvent{}); } - void write(FileHandle file, char *data, ssize_t len, int64_t offset) { - uv_buf_t bufs[] = { uv_buf_init(data, len) }; - invoke(&uv_fs_write, parent(), get(), file, bufs, 1, offset, &fsWriteCallback); - } - void write(FileHandle file, std::unique_ptr data, ssize_t len, int64_t offset) { - write(file, data.get(), len, offset); - } - - auto writeSync(FileHandle file, char *data, ssize_t len, int64_t offset) { - // TODO uv_fs_write (sync (cb null)) + uv_buf_t bufs[] = { uv_buf_init(data.get(), len) }; + invoke(&uv_fs_write, parent(), get(), file, bufs, 1, offset, &fsWriteCallback); } auto writeSync(FileHandle file, std::unique_ptr data, ssize_t len, int64_t offset) { diff --git a/src/uvw/stream.hpp b/src/uvw/stream.hpp index 8522b710..2d7b70dd 100644 --- a/src/uvw/stream.hpp +++ b/src/uvw/stream.hpp @@ -155,8 +155,8 @@ public: this->invoke(&uv_read_stop, this->template get()); } - void write(char *data, ssize_t len) { - uv_buf_t bufs[] = { uv_buf_init(data, len) }; + void write(std::unique_ptr data, ssize_t len) { + uv_buf_t bufs[] = { uv_buf_init(data.get(), len) }; auto listener = [ptr = this->shared_from_this()](const auto &event, details::Write &) { ptr->publish(event); @@ -168,13 +168,9 @@ public: write->write(this->template get(), bufs, 1); } - void write(std::unique_ptr data, ssize_t len) { - write(data.get(), len); - } - template - void write(S &send, char *data, ssize_t len) { - uv_buf_t bufs[] = { uv_buf_init(data, len) }; + void write(S &send, std::unique_ptr data, ssize_t len) { + uv_buf_t bufs[] = { uv_buf_init(data.get(), len) }; auto listener = [ptr = this->shared_from_this()](const auto &event, details::Write &) { ptr->publish(event); @@ -186,13 +182,8 @@ public: write->write(this->template get(), bufs, 1, send.template get()); } - template - void write(S &send, std::unique_ptr data, ssize_t len) { - write(send, data.get(), len); - } - - int tryWrite(char *data, ssize_t len) { - uv_buf_t bufs[] = { uv_buf_init(data, len) }; + int tryWrite(std::unique_ptr data, ssize_t len) { + uv_buf_t bufs[] = { uv_buf_init(data.get(), len) }; auto bw = uv_try_write(this->template get(), bufs, 1); if(bw < 0) { @@ -203,10 +194,6 @@ public: return bw; } - int tryWrite(std::unique_ptr data, ssize_t len) { - return tryWrite(data.get(), len); - } - bool readable() const noexcept { return (uv_is_readable(this->template get()) == 1); } diff --git a/src/uvw/udp.hpp b/src/uvw/udp.hpp index 1a61e163..e0779a90 100644 --- a/src/uvw/udp.hpp +++ b/src/uvw/udp.hpp @@ -156,11 +156,11 @@ public: void ttl(int val) { invoke(&uv_udp_set_ttl, get(), val > 255 ? 255 : val); } template - void send(std::string ip, unsigned int port, char *data, ssize_t len) { + void send(std::string ip, unsigned int port, std::unique_ptr data, ssize_t len) { typename details::IpTraits::Type addr; details::IpTraits::AddrFunc(ip.data(), port, &addr); - uv_buf_t bufs[] = { uv_buf_init(data, len) }; + uv_buf_t bufs[] = { uv_buf_init(data.get(), len) }; auto listener = [ptr = shared_from_this()](const auto &event, details::Send &) { ptr->publish(event); @@ -173,16 +173,11 @@ public: } template - void send(std::string ip, unsigned int port, std::unique_ptr data, ssize_t len) { - send(ip, port, data.get(), len); - } - - template - int trySend(std::string ip, unsigned int port, char *data, ssize_t len) { + int trySend(std::string ip, unsigned int port, std::unique_ptr data, ssize_t len) { typename details::IpTraits::Type addr; details::IpTraits::AddrFunc(ip.data(), port, &addr); - uv_buf_t bufs[] = { uv_buf_init(data, len) }; + uv_buf_t bufs[] = { uv_buf_init(data.get(), len) }; auto bw = uv_udp_try_send(get(), bufs, 1, reinterpret_cast(&addr)); if(bw < 0) { @@ -193,11 +188,6 @@ public: return bw; } - template - int trySend(std::string ip, unsigned int port, std::unique_ptr data, ssize_t len) { - return trySend(ip, port, data.get(), len); - } - template void recv() { invoke(&uv_udp_recv_start, get(), &allocCallback, &recvCallback);