X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fcommon%2Fpipe.hpp;h=4e6afc567831868c570ab36c2fa8998fd8357ca0;hb=0038180de36c422cfaeade1145fa9fbc9436b8ad;hp=d46e65d6833a32b97228e7a76573aaca829e2b64;hpb=8b75cd779ffe332281fec189cdf808e4ee452572;p=lttng-tools.git diff --git a/src/common/pipe.hpp b/src/common/pipe.hpp index d46e65d68..4e6afc567 100644 --- a/src/common/pipe.hpp +++ b/src/common/pipe.hpp @@ -8,8 +8,10 @@ #ifndef LTTNG_PIPE_H #define LTTNG_PIPE_H -#include #include +#include + +#include #include enum lttng_pipe_state { @@ -17,7 +19,19 @@ enum lttng_pipe_state { LTTNG_PIPE_STATE_CLOSED = 2, }; +/* Close both side of pipe. */ +int lttng_pipe_close(struct lttng_pipe *pipe); + struct lttng_pipe { + static void _lttng_pipe_close_wrapper(lttng_pipe *pipe) + { + lttng_pipe_close(pipe); + } + + using uptr = std::unique_ptr< + lttng_pipe, + lttng::details::create_unique_class::deleter>; + /* Read: 0, Write: 1. */ int fd[2]; /* @@ -69,8 +83,6 @@ struct lttng_pipe *lttng_pipe_named_open(const char *path, mode_t mode, int flags); int lttng_pipe_write_close(struct lttng_pipe *pipe); int lttng_pipe_read_close(struct lttng_pipe *pipe); -/* Close both side of pipe. */ -int lttng_pipe_close(struct lttng_pipe *pipe); void lttng_pipe_destroy(struct lttng_pipe *pipe); ssize_t lttng_pipe_read(struct lttng_pipe *pipe, void *buf, size_t count);