aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/filesystem.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-08-22 14:38:57 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-08-23 18:14:07 +0200
commit5035f4ef68922ac758b1e4734e67d73c9228010b (patch)
tree271fdd5b1d6e995a058d97aacb3ac90a538d9ff1 /libbuild2/filesystem.ixx
parent8793941652d6aa1c3d02b2f87f691e6d06254b7d (diff)
Introduce notion of build context
All non-const global state is now in class context and we can now have multiple independent builds going on at the same time.
Diffstat (limited to 'libbuild2/filesystem.ixx')
-rw-r--r--libbuild2/filesystem.ixx40
1 files changed, 40 insertions, 0 deletions
diff --git a/libbuild2/filesystem.ixx b/libbuild2/filesystem.ixx
new file mode 100644
index 0000000..6dab3ad
--- /dev/null
+++ b/libbuild2/filesystem.ixx
@@ -0,0 +1,40 @@
+// file : libbuild2/filesystem.ixx -*- C++ -*-
+// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+namespace build2
+{
+ template <typename T>
+ fs_status<butl::rmfile_status>
+ rmfile (context&, const path&, const T&, uint16_t);
+
+ template <typename T>
+ inline fs_status<rmfile_status>
+ rmfile (const path& f, const T& t, uint16_t v)
+ {
+ return rmfile (t.ctx, f, t, v);
+ }
+
+ inline fs_status<rmfile_status>
+ rmfile (context& ctx, const path& f, uint16_t v)
+ {
+ return rmfile (ctx, f, f, v);
+ }
+
+ template <typename T>
+ fs_status<rmdir_status>
+ rmdir (context&, const dir_path&, const T&, uint16_t);
+
+ template <typename T>
+ inline fs_status<rmdir_status>
+ rmdir (const dir_path& d, const T& t, uint16_t v)
+ {
+ return rmdir (t.ctx, d, t, v);
+ }
+
+ inline fs_status<rmdir_status>
+ rmdir (context& ctx, const dir_path& d, uint16_t v)
+ {
+ return rmdir (ctx, d, d, v);
+ }
+}