diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-18 13:29:50 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-18 13:29:50 +0200 |
commit | 0e2f76b6f0ecb4b4c00a4c8001843b3c54bc08ad (patch) | |
tree | 3f0735a7b7e0be27823b23e24806fe9650548dc6 /bbot/machine-manifest | |
parent | 1804e3e8cf3b8f1bb14e197dada1697c40bed144 (diff) |
Finish agent and worker logic
Diffstat (limited to 'bbot/machine-manifest')
-rw-r--r-- | bbot/machine-manifest | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/bbot/machine-manifest b/bbot/machine-manifest index 77f1c78..3801ae7 100644 --- a/bbot/machine-manifest +++ b/bbot/machine-manifest @@ -9,10 +9,12 @@ #include <butl/manifest-forward> +#include <bbot/manifest> // machine_header + #include <bbot/types> #include <bbot/utility> -#include <bbot/manifest> // machine_header +#include <bbot/bootstrap-manifest> namespace bbot { @@ -53,6 +55,56 @@ namespace bbot void serialize (butl::manifest_serializer&) const; }; + + // Toolchain. + // + class toolchain_manifest + { + public: + + // Toolchain id (SHAXXX). + // + string id; + + explicit + toolchain_manifest (string i): id (i) {} + + public: + toolchain_manifest () = default; // VC export. + toolchain_manifest (butl::manifest_parser&, bool ignore_unknown = false); + toolchain_manifest (butl::manifest_parser&, + butl::manifest_name_value start, + bool ignore_unknown = false); + + void + serialize (butl::manifest_serializer&) const; + }; + + // The manifest stored in <name>-<toolchain>/ consists of the machine + // manifest (original), toolchain manifest, and bootstrap manifest. + // + class bootstrapped_machine_manifest + { + public: + machine_manifest machine; + toolchain_manifest toolchain; + bootstrap_manifest bootstrap; + + bootstrapped_machine_manifest (machine_manifest m, + toolchain_manifest t, + bootstrap_manifest b) + : machine (move (m)), toolchain (move (t)), bootstrap (move (b)) {} + + public: + bootstrapped_machine_manifest () = default; // VC export. + bootstrapped_machine_manifest (butl::manifest_parser&, + bool ignore_unknown = false); + + void + serialize (butl::manifest_serializer&) const; + }; + + using bootstrapped_machine_manifests = vector<bootstrapped_machine_manifest>; } #endif // BBOT_MACHINE_MANIFEST |