// file : bbot/machine-manifest -*- C++ -*- // copyright : Copyright (c) 2014-2017 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file #ifndef BBOT_MACHINE_MANIFEST #define BBOT_MACHINE_MANIFEST #include #include #include #include #include // machine_header namespace bbot { // Machine type. // enum class machine_type {kvm, nspawn}; string to_string (machine_type); machine_type to_machine_type (const string&); // Throws invalid_argument. // Machine. // class machine_manifest: public machine_header_manifest { public: machine_type type; optional mac; // Required in bootstrapped machine manifest. machine_manifest (std::string i, std::string n, std::string s, machine_type t) : machine_header_manifest (std::move (i), std::move (n), std::move (s)), type (t) {} public: machine_manifest () = default; // VC export. machine_manifest (butl::manifest_parser&, bool ignore_unknown = false); machine_manifest (butl::manifest_parser&, butl::manifest_name_value start, bool ignore_unknown = false); void serialize (butl::manifest_serializer&) const; }; } #endif // BBOT_MACHINE_MANIFEST