clean up + TODO comments (thanks to saghul)

This commit is contained in:
Michele Caini 2016-07-27 10:10:25 +02:00
parent 3d28243281
commit 464154d103
3 changed files with 18 additions and 43 deletions

View File

@ -172,6 +172,12 @@ class Fs final: public Request<Fs, uv_fs_t> {
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<Type::UNLINK>{});
}
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<uv_fs_t>(), file, bufs, 1, offset, &fsWriteCallback);
}
void write(FileHandle file, std::unique_ptr<char[]> 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<uv_fs_t>(), file, bufs, 1, offset, &fsWriteCallback);
}
auto writeSync(FileHandle file, std::unique_ptr<char[]> data, ssize_t len, int64_t offset) {

View File

@ -155,8 +155,8 @@ public:
this->invoke(&uv_read_stop, this->template get<uv_stream_t>());
}
void write(char *data, ssize_t len) {
uv_buf_t bufs[] = { uv_buf_init(data, len) };
void write(std::unique_ptr<char[]> 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<uv_stream_t>(), bufs, 1);
}
void write(std::unique_ptr<char[]> data, ssize_t len) {
write(data.get(), len);
}
template<typename S>
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<char[]> 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<uv_stream_t>(), bufs, 1, send.template get<uv_stream_t>());
}
template<typename S>
void write(S &send, std::unique_ptr<char[]> 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<char[]> data, ssize_t len) {
uv_buf_t bufs[] = { uv_buf_init(data.get(), len) };
auto bw = uv_try_write(this->template get<uv_stream_t>(), bufs, 1);
if(bw < 0) {
@ -203,10 +194,6 @@ public:
return bw;
}
int tryWrite(std::unique_ptr<char[]> data, ssize_t len) {
return tryWrite(data.get(), len);
}
bool readable() const noexcept {
return (uv_is_readable(this->template get<uv_stream_t>()) == 1);
}

View File

@ -156,11 +156,11 @@ public:
void ttl(int val) { invoke(&uv_udp_set_ttl, get<uv_udp_t>(), val > 255 ? 255 : val); }
template<typename I = IPv4>
void send(std::string ip, unsigned int port, char *data, ssize_t len) {
void send(std::string ip, unsigned int port, std::unique_ptr<char[]> data, ssize_t len) {
typename details::IpTraits<I>::Type addr;
details::IpTraits<I>::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<typename I = IPv4>
void send(std::string ip, unsigned int port, std::unique_ptr<char[]> data, ssize_t len) {
send<I>(ip, port, data.get(), len);
}
template<typename I = IPv4>
int trySend(std::string ip, unsigned int port, char *data, ssize_t len) {
int trySend(std::string ip, unsigned int port, std::unique_ptr<char[]> data, ssize_t len) {
typename details::IpTraits<I>::Type addr;
details::IpTraits<I>::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<uv_udp_t>(), bufs, 1, reinterpret_cast<const sockaddr *>(&addr));
if(bw < 0) {
@ -193,11 +188,6 @@ public:
return bw;
}
template<typename I = IPv4>
int trySend(std::string ip, unsigned int port, std::unique_ptr<char[]> data, ssize_t len) {
return trySend<I>(ip, port, data.get(), len);
}
template<typename I = IPv4>
void recv() {
invoke(&uv_udp_recv_start, get<uv_udp_t>(), &allocCallback, &recvCallback<I>);