subprocess
0.4.0
Modern subprocess library for c++
src
cpp
subprocess
PipeVar.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <string>
4
#include <variant>
5
#include <iostream>
6
#include <cstdio>
7
8
#include "
basic_types.hpp
"
9
10
11
namespace
subprocess
{
12
enum class
PipeVarIndex
{
13
option
,
14
string
,
15
handle
,
16
istream
,
17
ostream
,
18
file
19
};
20
21
typedef
std::variant<
PipeOption
, std::string,
PipeHandle
,
22
std::istream*, std::ostream*, FILE*>
PipeVar
;
23
24
25
inline
PipeOption
get_pipe_option
(
const
PipeVar
& option) {
26
PipeVarIndex
index =
static_cast<
PipeVarIndex
>
(
option
.index());
27
28
switch
(index) {
29
case
PipeVarIndex::option
:
return
std::get<PipeOption>(
option
);
30
case
PipeVarIndex::handle
:
return
PipeOption::specific
;
31
32
default
:
return
PipeOption::pipe
;
33
}
34
}
35
}
subprocess::PipeVarIndex::string
@ string
subprocess::PipeOption
PipeOption
Definition:
basic_types.hpp:100
subprocess::PipeHandle
int PipeHandle
Definition:
basic_types.hpp:74
subprocess::PipeOption::pipe
@ pipe
Redirects to a new handle created for you.
subprocess::PipeVarIndex::ostream
@ ostream
subprocess::PipeVarIndex::handle
@ handle
subprocess::get_pipe_option
PipeOption get_pipe_option(const PipeVar &option)
Definition:
PipeVar.hpp:25
subprocess::PipeVarIndex::istream
@ istream
subprocess::PipeVar
std::variant< PipeOption, std::string, PipeHandle, std::istream *, std::ostream *, FILE * > PipeVar
Definition:
PipeVar.hpp:22
subprocess::PipeVarIndex::option
@ option
subprocess::PipeOption::specific
@ specific
subprocess::PipeVarIndex
PipeVarIndex
Definition:
PipeVar.hpp:12
subprocess
Definition:
basic_types.hpp:19
subprocess::PipeVarIndex::file
@ file
basic_types.hpp
Generated by
1.8.17