diff options
Diffstat (limited to 'third_party/nix/src/libstore/machines.hh')
-rw-r--r-- | third_party/nix/src/libstore/machines.hh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/third_party/nix/src/libstore/machines.hh b/third_party/nix/src/libstore/machines.hh new file mode 100644 index 000000000000..0e7269723707 --- /dev/null +++ b/third_party/nix/src/libstore/machines.hh @@ -0,0 +1,36 @@ +#pragma once + +#include "libutil/types.hh" + +namespace nix { + +struct Machine { + const std::string storeUri; + const std::vector<std::string> systemTypes; + const std::string sshKey; + const unsigned int maxJobs; + const unsigned int speedFactor; + const std::set<std::string> supportedFeatures; + const std::set<std::string> mandatoryFeatures; + const std::string sshPublicHostKey; + bool enabled = true; + + bool allSupported(const std::set<std::string>& features) const; + + bool mandatoryMet(const std::set<std::string>& features) const; + + Machine(decltype(storeUri)& storeUri, decltype(systemTypes)& systemTypes, + decltype(sshKey)& sshKey, decltype(maxJobs) maxJobs, + decltype(speedFactor) speedFactor, + decltype(supportedFeatures)& supportedFeatures, + decltype(mandatoryFeatures)& mandatoryFeatures, + decltype(sshPublicHostKey)& sshPublicHostKey); +}; + +typedef std::vector<Machine> Machines; + +void parseMachines(const std::string& s, Machines& machines); + +Machines getMachines(); + +} // namespace nix |