aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/depdb.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-06-24 12:01:19 +0200
committerKaren Arutyunov <karen@codesynthesis.com>2019-07-01 18:13:55 +0300
commit977d07a3ae47ef204665d1eda2d642e5064724f3 (patch)
tree525a3d6421f61ce789b690191d3c30fc09be3517 /libbuild2/depdb.ixx
parent7161b24963dd9da4d218f92c736b77c35c328a2d (diff)
Split build system into library and driver
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);
+ }
+}