Nix 2.26.3
Nix, the purely functional package manager; unstable internal interfaces
 
Loading...
Searching...
No Matches
machines.hh
Go to the documentation of this file.
1#pragma once
3
4#include "ref.hh"
5#include "store-reference.hh"
6
7namespace nix {
8
9class Store;
10
11struct Machine;
12
13typedef std::vector<Machine> Machines;
14
15struct Machine {
16
17 const StoreReference storeUri;
18 const std::set<std::string> systemTypes;
19 const std::string sshKey;
20 const unsigned int maxJobs;
21 const float speedFactor;
22 const std::set<std::string> supportedFeatures;
23 const std::set<std::string> mandatoryFeatures;
24 const std::string sshPublicHostKey;
25 bool enabled = true;
26
31 bool systemSupported(const std::string & system) const;
32
37 bool allSupported(const std::set<std::string> & features) const;
38
42 bool mandatoryMet(const std::set<std::string> & features) const;
43
44 Machine(
45 const std::string & storeUri,
46 decltype(systemTypes) systemTypes,
47 decltype(sshKey) sshKey,
48 decltype(maxJobs) maxJobs,
49 decltype(speedFactor) speedFactor,
50 decltype(supportedFeatures) supportedFeatures,
51 decltype(mandatoryFeatures) mandatoryFeatures,
52 decltype(sshPublicHostKey) sshPublicHostKey);
53
60
69 ref<Store> openStore() const;
70
78 static Machines parseConfig(const std::set<std::string> & defaultSystems, const std::string & config);
79};
80
86Machines getMachines();
87
88}
Definition store-api.hh:169
Definition ref.hh:15
Definition machines.hh:15
static Machines parseConfig(const std::set< std::string > &defaultSystems, const std::string &config)
Definition machines.cc:203
bool mandatoryMet(const std::set< std::string > &features) const
Definition machines.cc:59
bool allSupported(const std::set< std::string > &features) const
Definition machines.cc:50
StoreReference completeStoreReference() const
Definition machines.cc:67
ref< Store > openStore() const
Definition machines.cc:100
bool systemSupported(const std::string &system) const
Definition machines.cc:45
Definition store-reference.hh:43