aboutsummaryrefslogtreecommitdiff
path: root/libbbot/manifest.hxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-05-10 15:27:42 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-05-11 20:18:23 +0300
commitaddb8ea78351f65788bd61d2374b7f4bbb430d88 (patch)
tree9117db2f49dcc528396bd3aace145889f4cf825b /libbbot/manifest.hxx
parent1e968cbe5fdd7008e7ee3655ba7b164b2054cb62 (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.hxx27
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>;