flush [ci skip]
[awesomized/libmemcached] / testing / lib / ForkAndExec.hpp
1 #pragma once
2
3 #include "common.hpp"
4
5 class ForkAndExec {
6 public:
7 ForkAndExec(const char *binary, char **argv);
8 ~ForkAndExec();
9
10 ForkAndExec(const ForkAndExec &) = delete;
11 ForkAndExec &operator = (const ForkAndExec &) = delete;
12 ForkAndExec(ForkAndExec &&) = default;
13 ForkAndExec &operator = (ForkAndExec &&) = default;
14
15 optional<pid_t> operator () ();
16
17 private:
18 int pipes[2];
19 const char *binary;
20 char **argv;
21 };