Guitar
UnixProcess.h
Go to the documentation of this file.
1 #ifndef UNIXPROCESS_H
2 #define UNIXPROCESS_H
3 
4 #include <vector>
5 #include <string>
6 #include <vector>
7 #include <optional>
8 #include "../AbstractProcess.h"
9 
10 class UnixProcess : public AbstractProcess {
11 private:
12  struct Private;
14  mutable std::vector<char> stdout_bytes_;
15  mutable std::vector<char> stderr_bytes_;
16  static void parseArgs(std::string const &cmd, std::vector<std::string> *out);
17 public:
18 
19  UnixProcess();
20  ~UnixProcess();
21 
22  void start(std::string const &command, bool use_input);
23  int wait();
24  void stop();
25  bool isRunning() const;
26  void writeInput(char const *ptr, int len);
27  void closeInput(bool justnow);
28  int getExitCode() const;
29  std::vector<char> const &stdout_bytes() const;
30  std::vector<char> const &stderr_bytes() const;
31 
32  static std::optional<std::string> run_and_wait(std::string const &command);
33 
34 
35  // AbstractProcess interface
36 public:
37 };
38 
39 #endif // UNIXPROCESS_H
Definition: AbstractProcess.h:13
Definition: UnixProcess.h:10
std::vector< char > stdout_bytes_
Definition: UnixProcess.h:14
~UnixProcess()
Definition: UnixProcess.cpp:283
UnixProcess()
Definition: UnixProcess.cpp:278
int getExitCode() const
Definition: UnixProcess.cpp:400
void writeInput(char const *ptr, int len)
Definition: UnixProcess.cpp:356
std::vector< char > const & stderr_bytes() const
Definition: UnixProcess.cpp:375
static void parseArgs(std::string const &cmd, std::vector< std::string > *out)
Definition: UnixProcess.cpp:288
void start(std::string const &command, bool use_input)
Definition: UnixProcess.cpp:328
static std::optional< std::string > run_and_wait(std::string const &command)
Definition: UnixProcess.cpp:380
Private * m
Definition: UnixProcess.h:12
std::vector< char > stderr_bytes_
Definition: UnixProcess.h:15
void stop()
Definition: UnixProcess.cpp:390
bool isRunning() const
Definition: UnixProcess.cpp:395
int wait()
Definition: UnixProcess.cpp:343
void closeInput(bool justnow)
Definition: UnixProcess.cpp:361
std::vector< char > const & stdout_bytes() const
Definition: UnixProcess.cpp:370
Definition: UnixProcess.cpp:273