diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2017-05-10 15:27:42 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2017-05-11 20:18:23 +0300 |
commit | addb8ea78351f65788bd61d2374b7f4bbb430d88 (patch) | |
tree | 9117db2f49dcc528396bd3aace145889f4cf825b /libbbot/manifest.hxx | |
parent | 1e968cbe5fdd7008e7ee3655ba7b164b2054cb62 (diff) |
Adjust machine_header_manifest class so derived ones can delegate it parsing/serialization
Diffstat (limited to 'libbbot/manifest.hxx')
-rw-r--r-- | libbbot/manifest.hxx | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/libbbot/manifest.hxx b/libbbot/manifest.hxx index a42eeea..4ae8b26 100644 --- a/libbbot/manifest.hxx +++ b/libbbot/manifest.hxx @@ -34,15 +34,30 @@ namespace bbot : id (std::move (i)), name (std::move (n)), summary (std::move (s)) {} public: + machine_header_manifest () = default; // VC export. - machine_header_manifest (butl::manifest_parser&, - bool ignore_unknown = false); - machine_header_manifest (butl::manifest_parser&, - butl::manifest_name_value start, - bool ignore_unknown = false); + + machine_header_manifest ( + butl::manifest_parser&, + butl::unknown_name_mode = butl::unknown_name_mode::fail); + + machine_header_manifest ( + butl::manifest_parser&, + butl::manifest_name_value start, + butl::unknown_name_mode = butl::unknown_name_mode::fail, + butl::manifest_name_value* end = nullptr); + + // Wrapper-ctor. Primarily for use in template functions parameterized + // with the manifest type. + // + machine_header_manifest (butl::manifest_parser& p, bool ignore_unknown) + : machine_header_manifest (p, + ignore_unknown + ? butl::unknown_name_mode::skip + : butl::unknown_name_mode::fail) {} void - serialize (butl::manifest_serializer&) const; + serialize (butl::manifest_serializer&, bool end_of_manifest = true) const; }; using machine_header_manifests = std::vector<machine_header_manifest>; |