aboutsummaryrefslogtreecommitdiff
path: root/libbpkg/manifest.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbpkg/manifest.hxx')
-rw-r--r--libbpkg/manifest.hxx21
1 files changed, 18 insertions, 3 deletions
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 <string>
#include <vector>
#include <cassert>
-#include <cstdint> // uint16_t
+#include <cstdint> // uint16_t
#include <ostream>
-#include <utility> // move()
-#include <stdexcept> // logic_error
+#include <utility> // move()
+#include <stdexcept> // logic_error
+#include <functional>
#include <libbutl/url.mxx>
#include <libbutl/path.mxx>
@@ -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<load_function>&);
};
// Create individual package manifest.