MCPcopy Create free account
hub / github.com/Kitware/CMake / cmUVProcessChainBuilder

Class cmUVProcessChainBuilder

Source/cmUVProcessChain.h:20–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18class cmUVProcessChain;
19
20class cmUVProcessChainBuilder
21{
22public:
23 enum Stream
24 {
25 Stream_INPUT = 0,
26 Stream_OUTPUT = 1,
27 Stream_ERROR = 2,
28 };
29
30 cmUVProcessChainBuilder();
31
32 cmUVProcessChainBuilder& AddCommand(std::vector<std::string> arguments);
33 cmUVProcessChainBuilder& SetBuiltinLoop();
34 cmUVProcessChainBuilder& SetExternalLoop(uv_loop_t& loop);
35 cmUVProcessChainBuilder& SetNoStream(Stream stdio);
36 cmUVProcessChainBuilder& SetBuiltinStream(Stream stdio);
37 cmUVProcessChainBuilder& SetMergedBuiltinStreams();
38 cmUVProcessChainBuilder& SetExternalStream(Stream stdio, int fd);
39 cmUVProcessChainBuilder& SetExternalStream(Stream stdio, FILE* stream);
40 cmUVProcessChainBuilder& SetWorkingDirectory(std::string dir);
41 cmUVProcessChainBuilder& SetDetached();
42
43 uv_loop_t* GetLoop() const;
44
45 cmUVProcessChain Start() const;
46
47private:
48 enum StdioType
49 {
50 None,
51 Builtin,
52 External,
53 };
54
55 friend class cmUVProcessChain;
56
57 struct StdioConfiguration
58 {
59 StdioType Type = None;
60 int FileDescriptor = -1;
61 };
62
63 struct ProcessConfiguration
64 {
65 std::vector<std::string> Arguments;
66 };
67
68 std::array<StdioConfiguration, 3> Stdio;
69 std::vector<ProcessConfiguration> Processes;
70 std::string WorkingDirectory;
71 bool MergedBuiltinStreams = false;
72 bool Detached = false;
73 uv_loop_t* Loop = nullptr;
74};
75
76class cmUVProcessChain
77{

Callers 2

SpawnBuildDaemonMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…