aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/depdb.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/depdb.ixx')
-rw-r--r--libbuild2/depdb.ixx45
1 files changed, 45 insertions, 0 deletions
diff --git a/libbuild2/depdb.ixx b/libbuild2/depdb.ixx
new file mode 100644
index 0000000..9f73fcb
--- /dev/null
+++ b/libbuild2/depdb.ixx
@@ -0,0 +1,45 @@
+// file : libbuild2/depdb.ixx -*- C++ -*-
+// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+namespace build2
+{
+ inline depdb_base::
+ ~depdb_base ()
+ {
+ if (state_ != state::write)
+ is_.~ifdstream ();
+ else
+ os_.~ofdstream ();
+ }
+
+ inline void depdb::
+ flush ()
+ {
+ if (state_ == state::write)
+ os_.flush ();
+ }
+
+ inline bool depdb::
+ mtime_check ()
+ {
+ return mtime_check_option ? *mtime_check_option : LIBBUILD2_MTIME_CHECK;
+ }
+
+ inline void depdb::
+ check_mtime (const path_type& t, timestamp e)
+ {
+ if (state_ == state::write && mtime_check ())
+ check_mtime_ (t, e);
+ }
+
+ inline void depdb::
+ check_mtime (timestamp s,
+ const path_type& d,
+ const path_type& t,
+ timestamp e)
+ {
+ if (mtime_check ())
+ check_mtime_ (s, d, t, e);
+ }
+}