From c828e2bb39f711c82c3b816f57ddde9ab29bdb20 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 18 Jun 2015 17:27:25 +0200 Subject: Move path_mtime to filesystem, rename file_mtime, follow symlinks --- butl/timestamp.cxx | 44 -------------------------------------------- 1 file changed, 44 deletions(-) (limited to 'butl/timestamp.cxx') diff --git a/butl/timestamp.cxx b/butl/timestamp.cxx index 2d02416..f9f5455 100644 --- a/butl/timestamp.cxx +++ b/butl/timestamp.cxx @@ -4,10 +4,6 @@ #include -#include // stat -#include // stat -#include // stat - #include // localtime, gmtime, strftime #include @@ -17,46 +13,6 @@ using namespace std; namespace butl { - // Figuring out whether we have the nanoseconds in some form. - // - template - constexpr auto nsec (const S* s) -> decltype(s->st_mtim.tv_nsec) - { - return s->st_mtim.tv_nsec; // POSIX (GNU/Linux, Solaris). - } - - template - constexpr auto nsec (const S* s) -> decltype(s->st_mtimespec.tv_nsec) - { - return s->st_mtimespec.tv_nsec; // MacOS X. - } - - template - constexpr auto nsec (const S* s) -> decltype(s->st_mtime_n) - { - return s->st_mtime_n; // AIX 5.2 and later. - } - - template - constexpr int nsec (...) {return 0;} - - timestamp - path_mtime (const path& p) - { - struct stat s; - if (stat (p.string ().c_str (), &s) != 0) - { - if (errno == ENOENT || errno == ENOTDIR) - return timestamp_nonexistent; - else - throw system_error (errno, system_category ()); - } - - return system_clock::from_time_t (s.st_mtime) + - chrono::duration_cast ( - chrono::nanoseconds (nsec (&s))); - } - ostream& operator<< (ostream& os, const timestamp& ts) { -- cgit v1.1