Guitar
ProcessWinConPtyWithWorker.h
Go to the documentation of this file.
1 #ifndef PROCESSWINCONPTYWITHWORKER_H
2 #define PROCESSWINCONPTYWITHWORKER_H
3 
4 #include "AbstractProcess.h"
5 #include "BasicProcessWin.h"
6 #include "ProcessHelper.h"
7 #include <condition_variable>
8 #include <mutex>
9 #include <string>
10 #include <vector>
11 
13 public:
14  static int run_worker(int argc, char **argv);
15  bool wait_for_output(std::string const &text);
16 
17 private:
18  constexpr static std::string_view subprocess_tag = "--conpty-worker--";
19 
20  struct Private;
22 
23  int _wait();
24 public:
26  ~ProcessWinConPtyWithWorker() override;
27 
28  void set_options(BasicProcessWin::Options const &options);
29 
30  void start(std::string const &command, std::string const &env, bool use_input) override;
31  ProcessResult wait(int time = INT_MAX) override;
32  void stop() override;
33  bool is_running() const override;
34  int get_exit_code() const override;
35  void write_input(char const *ptr, int len) override;
36  int read_output(char *ptr, int len);
37  void close_input() override;
38 
39 };
40 
41 #endif // PROCESSWINCONPTYWITHWORKER_H
Definition: AbstractProcess.h:71
Definition: ProcessWinConPtyWithWorker.h:12
void stop() override
Definition: ProcessWinConPtyWithWorker.cpp:217
int get_exit_code() const override
Definition: ProcessWinConPtyWithWorker.cpp:239
int read_output(char *ptr, int len)
Definition: ProcessWinConPtyWithWorker.cpp:256
ProcessResult wait(int time=INT_MAX) override
Definition: ProcessWinConPtyWithWorker.cpp:177
Private * m
Definition: ProcessWinConPtyWithWorker.h:20
ProcessWinConPtyWithWorker()
Definition: ProcessWinConPtyWithWorker.cpp:21
bool is_running() const override
Definition: ProcessWinConPtyWithWorker.cpp:233
void write_input(char const *ptr, int len) override
Definition: ProcessWinConPtyWithWorker.cpp:245
constexpr static std::string_view subprocess_tag
Definition: ProcessWinConPtyWithWorker.h:18
bool wait_for_output(std::string const &text)
Definition: ProcessWinConPtyWithWorker.cpp:271
int _wait()
Definition: ProcessWinConPtyWithWorker.cpp:158
void set_options(BasicProcessWin::Options const &options)
Definition: ProcessWinConPtyWithWorker.cpp:35
void close_input() override
Definition: ProcessWinConPtyWithWorker.cpp:265
void start(std::string const &command, std::string const &env, bool use_input) override
Definition: ProcessWinConPtyWithWorker.cpp:90
~ProcessWinConPtyWithWorker() override
Definition: ProcessWinConPtyWithWorker.cpp:29
static int run_worker(int argc, char **argv)
Definition: ProcessWinConPtyWithWorker.cpp:40
Definition: BasicProcessWin.h:45
Definition: AbstractProcess.h:21
Definition: ProcessWinConPtyWithWorker.cpp:12