subprocess 0.5.0
Modern subprocess library for c++
Loading...
Searching...
No Matches
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#include "pipe.hpp"
10
11namespace 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
26 PipeVarIndex index = static_cast<PipeVarIndex>(option.index());
27
28 switch(index) {
29 case PipeVarIndex::option: return std::get<PipeOption>(option);
31 default: return PipeOption::pipe;
32 }
33 }
34}
Definition basic_types.hpp:22
int PipeHandle
Definition basic_types.hpp:77
PipeOption
Definition basic_types.hpp:103
@ pipe
Redirects to a new handle created for you.
PipeVarIndex
Definition PipeVar.hpp:12
PipeOption get_pipe_option(const PipeVar &option)
Definition PipeVar.hpp:25
std::variant< PipeOption, std::string, PipeHandle, std::istream *, std::ostream *, FILE * > PipeVar
Definition PipeVar.hpp:22