Go to the documentation of this file.
5 #ifndef CPROVER_UTIL_PIPED_PROCESS_H
6 #define CPROVER_UTIL_PIPED_PROCESS_H
11 struct _PROCESS_INFORMATION;
12 typedef struct _PROCESS_INFORMATION PROCESS_INFORMATION;
19 #define PIPED_PROCESS_INFINITE_TIMEOUT \
20 optionalt<std::size_t> \
81 explicit piped_processt(
const std::vector<std::string> &commandvec);
92 std::unique_ptr<PROCESS_INFORMATION> proc_info;
94 HANDLE child_std_IN_Rd;
95 HANDLE child_std_IN_Wr;
96 HANDLE child_std_OUT_Rd;
97 HANDLE child_std_OUT_Wr;
112 #endif // endifndef CPROVER_UTIL_PIPED_PROCESS_H
statet
Enumeration to keep track of child process state.
bool can_receive()
See if this process can receive data from the other process.
piped_processt & operator=(const piped_processt &)=delete
void wait_receivable(int wait_time)
Wait for the pipe to be ready, waiting specified time between checks.
nonstd::optional< T > optionalt
send_responset
Enumeration for send response.
send_responset send(const std::string &message)
Send a string message (command) to the child process.
piped_processt(const std::vector< std::string > &commandvec)
Initiate a new subprocess with pipes supporting communication between the parent (this process) and t...
std::string receive()
Read a string from the child process' output.
std::string wait_receive()
Wait until a string is available and read a string from the child process' output.
statet get_status()
Get child process status.
piped_processt(const piped_processt &)=delete