9 #ifndef LLDB_HOST_POSIX_PIPEPOSIX_H
10 #define LLDB_HOST_POSIX_PIPEPOSIX_H
11 #if defined(__cplusplus)
22 class PipePosix :
public PipeBase {
24 static int kInvalidDescriptor;
28 PipePosix(
const PipePosix &) =
delete;
29 PipePosix(PipePosix &&pipe_posix);
30 PipePosix &operator=(
const PipePosix &) =
delete;
31 PipePosix &operator=(PipePosix &&pipe_posix);
33 ~PipePosix()
override;
35 Status CreateNew(
bool child_process_inherit)
override;
36 Status CreateNew(llvm::StringRef name,
bool child_process_inherit)
override;
37 Status CreateWithUniqueName(llvm::StringRef prefix,
38 bool child_process_inherit,
40 Status OpenAsReader(llvm::StringRef name,
41 bool child_process_inherit)
override;
43 OpenAsWriterWithTimeout(llvm::StringRef name,
bool child_process_inherit,
44 const std::chrono::microseconds &timeout)
override;
46 bool CanRead()
const override;
47 bool CanWrite()
const override;
56 int GetReadFileDescriptor()
const override;
57 int GetWriteFileDescriptor()
const override;
58 int ReleaseReadFileDescriptor()
override;
59 int ReleaseWriteFileDescriptor()
override;
60 void CloseReadFileDescriptor()
override;
61 void CloseWriteFileDescriptor()
override;
64 void Close()
override;
66 Status Delete(llvm::StringRef name)
override;
68 Status Write(
const void *buf,
size_t size,
size_t &bytes_written)
override;
69 Status ReadWithTimeout(
void *buf,
size_t size,
70 const std::chrono::microseconds &timeout,
71 size_t &bytes_read)
override;
79 #endif // #if defined(__cplusplus)
80 #endif // LLDB_HOST_POSIX_PIPEPOSIX_H