/workspaces/astro/sol3-sdk/cpp/sol3/integration/process.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/integration/process.h Source File
Space-ng SDK
process.h
Go to the documentation of this file.
1 // Copyright (c) Space-ng, inc. All rights reserved.
2 
3 #pragma once
4 
5 #include <chrono>
6 #include <memory>
7 #include <string>
8 #include <vector>
9 
10 namespace sol3::integration {
11 
14 class IProcess {
15  public:
16  virtual ~IProcess() = default;
17 
20  virtual void terminate(int signal_num) = 0;
21 
24  virtual bool waitFor(std::chrono::milliseconds timeout) = 0;
25 
27  [[nodiscard]] virtual std::string output() const = 0;
28 
30  [[nodiscard]] virtual long long pid() const = 0;
31 
34  [[nodiscard]] virtual int exitCode() const = 0;
35 };
36 
39 std::unique_ptr<IProcess> makeProcess(std::vector<std::string> const& args);
40 
41 } // namespace sol3::integration
Definition: process.h:14
virtual ~IProcess()=default
virtual long long pid() const =0
Platform-agnostic process id. Returns -1 if not applicable.
virtual bool waitFor(std::chrono::milliseconds timeout)=0
virtual void terminate(int signal_num)=0
virtual int exitCode() const =0
virtual std::string output() const =0
Snapshot of the combined stdout/stderr output collected so far.
Definition: process.h:10
std::unique_ptr< IProcess > makeProcess(std::vector< std::string > const &args)