static int kInvalidDescriptor;
PipePosix();
+ PipePosix(int read_fd, int write_fd);
~PipePosix() override;
Error
CreateNew(llvm::StringRef name, bool child_process_inherit) override;
Error
- CreateWithFD(int read_fd, int write_fd);
- Error
CreateWithUniqueName(llvm::StringRef prefix, bool child_process_inherit, llvm::SmallVectorImpl<char>& name) override;
Error
OpenAsReader(llvm::StringRef name, bool child_process_inherit) override;
}
PipePosix::PipePosix()
-{
- m_fds[READ] = PipePosix::kInvalidDescriptor;
- m_fds[WRITE] = PipePosix::kInvalidDescriptor;
-}
+ : m_fds{PipePosix::kInvalidDescriptor, PipePosix::kInvalidDescriptor} {}
+
+PipePosix::PipePosix(int read_fd, int write_fd)
+ : m_fds{read_fd, write_fd} {}
PipePosix::~PipePosix()
{
}
Error
-PipePosix::CreateWithFD(int read_fd, int write_fd) {
- if (CanRead() || CanWrite())
- return Error("Pipe is already opened");
- m_fds[READ] = read_fd;
- m_fds[WRITE] = write_fd;
- return Error();
-}
-
-Error
PipePosix::CreateWithUniqueName(llvm::StringRef prefix, bool child_process_inherit, llvm::SmallVectorImpl<char>& name)
{
llvm::SmallString<PATH_MAX> named_pipe_path;
Error
writePortToPipe(int unnamed_pipe_fd, const uint16_t port)
{
- Pipe port_pipe;
- // Wait for 10 seconds for pipe to be opened.
- auto error = port_pipe.CreateWithFD(Pipe::kInvalidDescriptor, unnamed_pipe_fd);
- if (error.Fail())
- return error;
+ Pipe port_pipe{Pipe::kInvalidDescriptor, unnamed_pipe_fd};
return WritePortToPipe(port_pipe, port);
}