Nix 2.26.3
Nix, the purely functional package manager; unstable internal interfaces
 
Loading...
Searching...
No Matches
worker-protocol-connection.hh
Go to the documentation of this file.
1#pragma once
3
4#include "worker-protocol.hh"
5#include "store-api.hh"
6
7namespace nix {
8
10{
15
20
25
29 std::set<Feature> features;
30
40 {
42 .from = from,
43 .version = protoVersion,
44 };
45 }
46
56 {
58 .to = to,
59 .version = protoVersion,
60 };
61 }
62};
63
65{
69 virtual ~BasicClientConnection();
70
71 virtual void closeWrite() = 0;
72
73 std::exception_ptr processStderrReturn(Sink * sink = 0, Source * source = 0, bool flush = true, bool block = true);
74
75 void
76 processStderr(bool * daemonException, Sink * sink = 0, Source * source = 0, bool flush = true, bool block = true);
77
94 // FIXME: this should probably be a constructor.
95 static std::tuple<Version, std::set<Feature>> handshake(
97 Source & from,
98 WorkerProto::Version localVersion,
99 const std::set<Feature> & supportedFeatures);
100
106
107 void addTempRoot(const StoreDirConfig & remoteStore, bool * daemonException, const StorePath & path);
108
109 StorePathSet queryValidPaths(
110 const StoreDirConfig & remoteStore,
111 bool * daemonException,
112 const StorePathSet & paths,
113 SubstituteFlag maybeSubstitute);
114
115 UnkeyedValidPathInfo queryPathInfo(const StoreDirConfig & store, bool * daemonException, const StorePath & path);
116
117 void putBuildDerivationRequest(
118 const StoreDirConfig & store,
119 bool * daemonException,
120 const StorePath & drvPath,
121 const BasicDerivation & drv,
122 BuildMode buildMode);
123
128 BuildResult getBuildDerivationResponse(const StoreDirConfig & store, bool * daemonException);
129
130 void narFromPath(
131 const StoreDirConfig & store,
132 bool * daemonException,
133 const StorePath & path,
134 std::function<void(Source &)> fun);
135
136 void importPaths(const StoreDirConfig & store, bool * daemonException, Source & source);
137};
138
140{
157 // FIXME: this should probably be a constructor.
158 static std::tuple<Version, std::set<Feature>> handshake(
160 Source & from,
161 WorkerProto::Version localVersion,
162 const std::set<Feature> & supportedFeatures);
163
168 void postHandshake(const StoreDirConfig & store, const ClientHandshakeInfo & info);
169};
170
171}
Definition path.hh:27
ChunkedVector< std::string, 8192 > store
Definition lexer.l:1011
std::function< void(Sink &)> fun
Definition lexer.l:3485
Definition derivations.hh:285
Definition serialise.hh:47
Definition build-result.hh:14
Definition serialise.hh:125
Definition serialise.hh:157
Definition serialise.hh:20
Definition serialise.hh:68
Definition store-dir-config.hh:22
Definition path-info.hh:42
Definition worker-protocol-connection.hh:65
static std::tuple< Version, std::set< Feature > > handshake(BufferedSink &to, Source &from, WorkerProto::Version localVersion, const std::set< Feature > &supportedFeatures)
Definition worker-protocol-connection.cc:159
BuildResult getBuildDerivationResponse(const StoreDirConfig &store, bool *daemonException)
Definition worker-protocol-connection.cc:303
ClientHandshakeInfo postHandshake(const StoreDirConfig &store)
Definition worker-protocol-connection.cc:217
virtual ~BasicClientConnection()
Definition worker-protocol-connection.cc:10
Definition worker-protocol-connection.hh:10
WorkerProto::Version protoVersion
Definition worker-protocol-connection.hh:24
FdSink to
Definition worker-protocol-connection.hh:14
FdSource from
Definition worker-protocol-connection.hh:19
std::set< Feature > features
Definition worker-protocol-connection.hh:29
Definition worker-protocol-connection.hh:140
void postHandshake(const StoreDirConfig &store, const ClientHandshakeInfo &info)
Definition worker-protocol-connection.cc:235
static std::tuple< Version, std::set< Feature > > handshake(BufferedSink &to, Source &from, WorkerProto::Version localVersion, const std::set< Feature > &supportedFeatures)
Definition worker-protocol-connection.cc:191
Definition worker-protocol.hh:191
Definition worker-protocol.hh:68
Definition worker-protocol.hh:77
unsigned int Version
Definition worker-protocol.hh:62