From b2f240870b4f759a7cf6eaf4d4409d2f6b9af5e1 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 17 Dec 2018 18:47:07 +0300 Subject: Add package_manifest::load_files() function loading file-* values --- libbpkg/manifest.hxx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'libbpkg/manifest.hxx') diff --git a/libbpkg/manifest.hxx b/libbpkg/manifest.hxx index fc61511..3d8f5f5 100644 --- a/libbpkg/manifest.hxx +++ b/libbpkg/manifest.hxx @@ -9,10 +9,11 @@ #include #include #include -#include // uint16_t +#include // uint16_t #include -#include // move() -#include // logic_error +#include // move() +#include // logic_error +#include #include #include @@ -634,6 +635,20 @@ namespace bpkg // void serialize_header (butl::manifest_serializer&) const; + + // Load the *-file manifest values using the specified load function that + // returns the file contents passing through any exception it may throw. + // + // Note that if the returned file contents is empty, load_files() makes + // sure that this is allowed by the value's semantics throwing + // manifest_parsing otherwise. However, the load function may want to + // recognize such cases itself in order to issue more precise diagnostics. + // + using load_function = std::string (const std::string& name, + const butl::path& value); + + void + load_files (const std::function&); }; // Create individual package manifest. -- cgit v1.1