8#ifndef INCLUDED_BDLS_FILESYSTEMUTIL_UNIXIMPUTIL
9#define INCLUDED_BDLS_FILESYSTEMUTIL_UNIXIMPUTIL
58#include <bdlt_datetime.h>
121template <
class UNIX_INTERFACE>
132 typedef typename UNIX_INTERFACE::off_t
Offset;
142 typedef typename UNIX_INTERFACE::off_t off_t;
146 typedef typename UNIX_INTERFACE::stat stat;
151 typedef typename UNIX_INTERFACE::time_t time_t;
157 static long get_st_mtim_nsec(
const stat& stat);
161 static time_t get_st_mtime(
const stat& stat);
168 static off_t get_st_size(
const stat& stat);
173 static int fstat(
int fildes, stat *buf);
200template <
class UNIX_INTERFACE>
204 return UNIX_INTERFACE::get_st_mtim_nsec(stat);
207template <
class UNIX_INTERFACE>
208typename UNIX_INTERFACE::time_t
209FilesystemUtil_UnixImpUtil<UNIX_INTERFACE>::get_st_mtime(
const stat& stat)
211 return UNIX_INTERFACE::get_st_mtime(stat);
214template <
class UNIX_INTERFACE>
215typename UNIX_INTERFACE::off_t
216FilesystemUtil_UnixImpUtil<UNIX_INTERFACE>::get_st_size(
const stat& stat)
218 return UNIX_INTERFACE::get_st_size(stat);
221template <
class UNIX_INTERFACE>
222int FilesystemUtil_UnixImpUtil<UNIX_INTERFACE>::fstat(
int fildes, stat *buf)
224 return UNIX_INTERFACE::fstat(fildes, buf);
228template <
class UNIX_INTERFACE>
234 const int rc = fstat(descriptor, &statResult);
239 return get_st_size(statResult);
242template <
class UNIX_INTERFACE>
248 int rc = fstat(descriptor, &statResult);
259 long nanoseconds = get_st_mtim_nsec(statResult);
Definition bdlt_datetime.h:330
int addMicrosecondsIfValid(bsls::Types::Int64 microseconds)
Definition bdlt_datetime.h:2173
int addSecondsIfValid(bsls::Types::Int64 seconds)
Definition bdlt_datetime.h:2110
#define BSLS_ASSERT_SAFE(X)
Definition bsls_assert.h:1917
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdls_fdstreambuf.h:412
Definition bdls_filesystemutil_uniximputil.h:122
static Offset getFileSize(FileDescriptor descriptor)
Definition bdls_filesystemutil_uniximputil.h:230
UNIX_INTERFACE::off_t Offset
Definition bdls_filesystemutil_uniximputil.h:132
static int getLastModificationTime(bdlt::Datetime *time, FileDescriptor descriptor)
Definition bdls_filesystemutil_uniximputil.h:243
int FileDescriptor
Definition bdls_filesystemutil_uniximputil.h:128
static const Datetime & epoch()
Definition bdlt_epochutil.h:397
static const bsls::Types::Int64 k_NANOSECONDS_PER_SECOND
Definition bdlt_timeunitratio.h:219
static const int k_NANOSECONDS_PER_MICROSECOND_32
Definition bdlt_timeunitratio.h:298