10#ifndef LLDB_HOST_PIPEBASE_H
11#define LLDB_HOST_PIPEBASE_H
17#include "llvm/ADT/SmallVector.h"
18#include "llvm/ADT/StringRef.h"
27 bool child_process_inherit) = 0;
29 bool child_process_inherit,
33 bool child_process_inherit) = 0;
38 const std::chrono::microseconds &timeout) = 0;
60 const std::chrono::microseconds &timeout,
61 size_t &bytes_written) = 0;
62 Status Write(
const void *buf,
size_t size,
size_t &bytes_written);
64 const std::chrono::microseconds &timeout,
65 size_t &bytes_read) = 0;
66 Status Read(
void *buf,
size_t size,
size_t &bytes_read);
virtual Status Delete(llvm::StringRef name)=0
virtual Status CreateNew(llvm::StringRef name, bool child_process_inherit)=0
virtual Status OpenAsWriterWithTimeout(llvm::StringRef name, bool child_process_inherit, const std::chrono::microseconds &timeout)=0
Status Read(void *buf, size_t size, size_t &bytes_read)
virtual int GetReadFileDescriptor() const =0
virtual int GetWriteFileDescriptor() const =0
virtual Status ReadWithTimeout(void *buf, size_t size, const std::chrono::microseconds &timeout, size_t &bytes_read)=0
virtual Status WriteWithTimeout(const void *buf, size_t size, const std::chrono::microseconds &timeout, size_t &bytes_written)=0
virtual void CloseWriteFileDescriptor()=0
virtual int ReleaseReadFileDescriptor()=0
virtual bool CanWrite() const =0
virtual void CloseReadFileDescriptor()=0
virtual Status CreateWithUniqueName(llvm::StringRef prefix, bool child_process_inherit, llvm::SmallVectorImpl< char > &name)=0
virtual bool CanRead() const =0
virtual Status CreateNew(bool child_process_inherit)=0
Status Write(const void *buf, size_t size, size_t &bytes_written)
virtual Status OpenAsReader(llvm::StringRef name, bool child_process_inherit)=0
virtual int ReleaseWriteFileDescriptor()=0
virtual lldb::pipe_t GetWritePipe() const =0
Status OpenAsWriter(llvm::StringRef name, bool child_process_inherit)
virtual lldb::pipe_t GetReadPipe() const =0
A class that represents a running process on the host machine.