Lely core libraries
2.2.5
pipe.hpp
Go to the documentation of this file.
1
22
#ifndef LELY_IO_PIPE_HPP_
23
#define LELY_IO_PIPE_HPP_
24
25
#ifndef __cplusplus
26
#error "include <lely/io/pipe.h> for the C interface"
27
#endif
28
29
#include <
lely/io/io.hpp
>
30
#include <
lely/io/pipe.h
>
31
32
#include <utility>
33
34
namespace
lely {
35
37
class
IOPipe
:
public
IOHandle
{
38
public
:
39
IOPipe
() =
default
;
40
41
IOPipe
(
const
IOPipe
& pipe) noexcept :
IOHandle
(pipe) {}
42
43
IOPipe
(
IOPipe
&& pipe) noexcept :
IOHandle
(::std::forward<IOPipe>(pipe)) {}
44
45
IOPipe
&
46
operator=(
const
IOPipe
& pipe) noexcept {
47
IOHandle::operator=(pipe);
48
return
*
this
;
49
}
50
51
IOPipe
&
52
operator=(
IOPipe
&& pipe) noexcept {
53
IOHandle::operator=(::std::forward<IOPipe>(pipe));
54
return
*
this
;
55
}
56
57
static
int
58
open(
IOPipe
pipe[2]) noexcept {
59
io_handle_t
handle_vector[2];
60
if
(
io_open_pipe
(handle_vector) == -1)
return
-1;
61
pipe[0] =
IOPipe
(handle_vector[0]);
62
pipe[1] =
IOPipe
(handle_vector[1]);
63
return
0;
64
}
65
66
protected
:
67
IOPipe
(
io_handle_t
handle) noexcept :
IOHandle
(handle) {}
68
};
69
70
}
// namespace lely
71
72
#endif // !LELY_IO_PIPE_HPP_
lely::IOHandle
An I/O device handle.
Definition:
io.hpp:35
io_handle
An I/O device handle.
Definition:
handle.h:41
io.hpp
pipe.h
io_open_pipe
int io_open_pipe(io_handle_t handle_vector[2])
Opens a pipe.
Definition:
pipe.c:50
lely::IOPipe
A pipe I/O device handle.
Definition:
pipe.hpp:37
include
lely
io
pipe.hpp
Generated by
1.8.17