44 explicit operator bool() const noexcept {
168 class UniquePipeHandle {
173 handle = kBadPipeValue;
175 explicit UniquePipeHandle(PipeHandle handle):
handle(
handle){}
176 UniquePipeHandle(UniquePipeHandle&& other) {
181 UniquePipeHandle& operator=(UniquePipeHandle&& other) {
187 UniquePipeHandle(
const UniquePipeHandle&)=
delete;
188 UniquePipeHandle operator=(
const UniquePipeHandle&)=
delete;
Definition basic_types.hpp:22
ssize_t pipe_peak_bytes(PipeHandle pipe)
ssize_t pipe_read(PipeHandle, void *buffer, size_t size)
PipeHandle pipe_file(const char *filename, const char *mode)
bool pipe_close(PipeHandle handle)
int PipeHandle
Definition basic_types.hpp:77
@ pipe
Redirects to a new handle created for you.
int pipe_wait_for_read(PipeHandle pipe, double seconds)
intptr_t ssize_t
Definition basic_types.hpp:24
bool pipe_set_blocking(PipeHandle, bool should_block)
const PipeHandle kBadPipeValue
Definition basic_types.hpp:84
ssize_t pipe_read_some(PipeHandle, void *buffer, size_t size)
PipePair pipe_create(bool inheritable=false)
void pipe_ignore_and_close(PipeHandle handle)
void pipe_set_inheritable(PipeHandle handle, bool inheritable)
ssize_t pipe_write(PipeHandle, const void *buffer, size_t size)
std::string pipe_read_all(PipeHandle handle)
const PipeHandle output
Definition pipe.hpp:26
PipePair(PipePair &&other)
Definition pipe.hpp:19
PipePair()
Definition pipe.hpp:13
void disown()
Definition pipe.hpp:29
const PipeHandle input
Definition pipe.hpp:25
void disown_input()
Disowns the input end.
Definition pipe.hpp:33
PipePair(PipeHandle input, PipeHandle output)
Definition pipe.hpp:14
void disown_output()
Disowns the output end.
Definition pipe.hpp:37
PipePair & operator=(const PipePair &)=delete
~PipePair()
Definition pipe.hpp:15
PipePair(const PipePair &)=delete