forked from lix-project/lix
5ccd94501d
Include a long comment explaining the policy. Perhaps this can be moved to the manual at some point in the future. Also bump the daemon protocol minor version, so clients can tell whether `wopBuildDerivation` supports trustless CA derivation building. I hope to take advantage of this in a follow-up PR to support trustless remote building with the minimal sending of derivation closures.
80 lines
2.1 KiB
C++
80 lines
2.1 KiB
C++
#pragma once
|
|
|
|
namespace nix {
|
|
|
|
|
|
#define WORKER_MAGIC_1 0x6e697863
|
|
#define WORKER_MAGIC_2 0x6478696f
|
|
|
|
#define PROTOCOL_VERSION 0x118
|
|
#define GET_PROTOCOL_MAJOR(x) ((x) & 0xff00)
|
|
#define GET_PROTOCOL_MINOR(x) ((x) & 0x00ff)
|
|
|
|
|
|
typedef enum {
|
|
wopIsValidPath = 1,
|
|
wopHasSubstitutes = 3,
|
|
wopQueryPathHash = 4, // obsolete
|
|
wopQueryReferences = 5, // obsolete
|
|
wopQueryReferrers = 6,
|
|
wopAddToStore = 7,
|
|
wopAddTextToStore = 8,
|
|
wopBuildPaths = 9,
|
|
wopEnsurePath = 10,
|
|
wopAddTempRoot = 11,
|
|
wopAddIndirectRoot = 12,
|
|
wopSyncWithGC = 13,
|
|
wopFindRoots = 14,
|
|
wopExportPath = 16, // obsolete
|
|
wopQueryDeriver = 18, // obsolete
|
|
wopSetOptions = 19,
|
|
wopCollectGarbage = 20,
|
|
wopQuerySubstitutablePathInfo = 21,
|
|
wopQueryDerivationOutputs = 22, // obsolete
|
|
wopQueryAllValidPaths = 23,
|
|
wopQueryFailedPaths = 24,
|
|
wopClearFailedPaths = 25,
|
|
wopQueryPathInfo = 26,
|
|
wopImportPaths = 27, // obsolete
|
|
wopQueryDerivationOutputNames = 28, // obsolete
|
|
wopQueryPathFromHashPart = 29,
|
|
wopQuerySubstitutablePathInfos = 30,
|
|
wopQueryValidPaths = 31,
|
|
wopQuerySubstitutablePaths = 32,
|
|
wopQueryValidDerivers = 33,
|
|
wopOptimiseStore = 34,
|
|
wopVerifyStore = 35,
|
|
wopBuildDerivation = 36,
|
|
wopAddSignatures = 37,
|
|
wopNarFromPath = 38,
|
|
wopAddToStoreNar = 39,
|
|
wopQueryMissing = 40,
|
|
wopQueryDerivationOutputMap = 41,
|
|
} WorkerOp;
|
|
|
|
|
|
#define STDERR_NEXT 0x6f6c6d67
|
|
#define STDERR_READ 0x64617461 // data needed from source
|
|
#define STDERR_WRITE 0x64617416 // data for sink
|
|
#define STDERR_LAST 0x616c7473
|
|
#define STDERR_ERROR 0x63787470
|
|
#define STDERR_START_ACTIVITY 0x53545254
|
|
#define STDERR_STOP_ACTIVITY 0x53544f50
|
|
#define STDERR_RESULT 0x52534c54
|
|
|
|
|
|
class Store;
|
|
struct Source;
|
|
|
|
template<class T> T readStorePaths(const Store & store, Source & from);
|
|
|
|
void writeStorePaths(const Store & store, Sink & out, const StorePathSet & paths);
|
|
|
|
StorePathCAMap readStorePathCAMap(const Store & store, Source & from);
|
|
|
|
void writeStorePathCAMap(const Store & store, Sink & out, const StorePathCAMap & paths);
|
|
|
|
void writeOutputPathMap(const Store & store, Sink & out, const OutputPathMap & paths);
|
|
|
|
}
|