MCPcopy Create free account
hub / github.com/catboost/catboost / TPipeHandle

Class TPipeHandle

util/system/pipe.h:18–62  ·  view source on GitHub ↗

Pipe-like object: pipe on POSIX and socket on windows

Source from the content-addressed store, hash-verified

16
17/// Pipe-like object: pipe on POSIX and socket on windows
18class TPipeHandle: public TNonCopyable {
19public:
20 inline TPipeHandle() noexcept
21 : Fd_(INVALID_PIPEHANDLE)
22 {
23 }
24
25 inline TPipeHandle(PIPEHANDLE fd) noexcept
26 : Fd_(fd)
27 {
28 }
29
30 inline ~TPipeHandle() {
31 Close();
32 }
33
34 bool Close() noexcept;
35
36 inline PIPEHANDLE Release() noexcept {
37 PIPEHANDLE ret = Fd_;
38 Fd_ = INVALID_PIPEHANDLE;
39 return ret;
40 }
41
42 inline void Swap(TPipeHandle& r) noexcept {
43 DoSwap(Fd_, r.Fd_);
44 }
45
46 inline operator PIPEHANDLE() const noexcept {
47 return Fd_;
48 }
49
50 inline bool IsOpen() const noexcept {
51 return Fd_ != INVALID_PIPEHANDLE;
52 }
53
54 ssize_t Read(void* buffer, size_t byteCount) const noexcept;
55 ssize_t Write(const void* buffer, size_t byteCount) const noexcept;
56
57 // Only CloseOnExec is supported
58 static void Pipe(TPipeHandle& reader, TPipeHandle& writer, EOpenMode mode = 0);
59
60private:
61 PIPEHANDLE Fd_;
62};
63
64class TPipe {
65public:

Callers 1

PipeMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected