MatN work for versatile appimage creation for all types of os
[goodguy/cinelerra.git] / cinelerra-5.1 / tools / makeappimagetool / includes / subprocess_result.h
1 #pragma once
2
3 // system headers
4 #include <cstdlib>
5 #include <string>
6 #include <utility>
7 #include <vector>
8
9 namespace linuxdeploy {
10     namespace subprocess {
11         typedef std::vector<std::string::value_type> subprocess_result_buffer_t;
12
13         /**
14          * Result of subprocess execution. Follows Value Object design pattern.
15          */
16         class subprocess_result {
17         private:
18             int exit_code_;
19             subprocess_result_buffer_t stdout_contents_;
20             subprocess_result_buffer_t stderr_contents_;
21
22         public:
23             subprocess_result(int exit_code, subprocess_result_buffer_t stdout_contents,
24                               subprocess_result_buffer_t stderr_contents);
25
26             int exit_code() const;
27
28             const subprocess_result_buffer_t& stdout_contents() const;
29
30             std::string stdout_string() const;
31
32             const subprocess_result_buffer_t& stderr_contents() const;
33
34             std::string stderr_string() const;
35         };
36     }
37 }