From addb8ea78351f65788bd61d2374b7f4bbb430d88 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 10 May 2017 15:27:42 +0300 Subject: Adjust machine_header_manifest class so derived ones can delegate it parsing/serialization --- libbbot/manifest.hxx | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'libbbot/manifest.hxx') 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; -- cgit v1.1