26#if ! defined (octave_oct_time_h)
27#define octave_oct_time_h 1
29#include "octave-config.h"
41 return (
static_cast<double> (sec) +
static_cast<double> (usec) / 1.0e6);
56 : m_ot_unix_time (0), m_ot_usec (0) { stamp (); }
59 : m_ot_unix_time (t), m_ot_usec (0) { }
61 time (OCTAVE_TIME_T t,
long us)
62 : m_ot_unix_time (t), m_ot_usec ()
69 extra = (us -
rem) / 1000000;
75 extra = - (1 + (us -
rem) / 1000000);
76 rem = 1000000 - us % 1000000;
80 m_ot_unix_time += extra;
88 : m_ot_unix_time (ot.m_ot_unix_time), m_ot_usec (ot.m_ot_usec) { }
107 return as_double (m_ot_unix_time, m_ot_usec);
110 OCTAVE_TIME_T
unix_time (
void)
const {
return m_ot_unix_time; }
112 long usec (
void)
const {
return m_ot_usec; }
155 return (t1 < t2 || t1 == t2);
174 return (t1 > t2 || t1 == t2);
190 : m_usec (0), m_sec (0), m_min (0), m_hour (0),
191 m_mday (0), m_mon (0), m_year (0), m_wday (0),
192 m_yday (0), m_isdst (0), m_gmtoff (0), m_zone (
"unknown")
196 : m_usec (tm.m_usec), m_sec (tm.m_sec), m_min (tm.m_min),
197 m_hour (tm.m_hour), m_mday (tm.m_mday), m_mon (tm.m_mon),
198 m_year (tm.m_year), m_wday (tm.m_wday), m_yday (tm.m_yday),
199 m_isdst (tm.m_isdst), m_gmtoff (tm.m_gmtoff), m_zone (tm.m_zone)
225 int usec (
void)
const {
return m_usec; }
226 int sec (
void)
const {
return m_sec; }
227 int min (
void)
const {
return m_min; }
228 int hour (
void)
const {
return m_hour; }
229 int mday (
void)
const {
return m_mday; }
230 int mon (
void)
const {
return m_mon; }
231 int year (
void)
const {
return m_year; }
232 int wday (
void)
const {
return m_wday; }
233 int yday (
void)
const {
return m_yday; }
234 int isdst (
void)
const {
return m_isdst; }
235 long gmtoff (
void)
const {
return m_gmtoff; }
236 std::string
zone (
void)
const {
return m_zone; }
251 OCTAVE_API std::string strftime (
const std::string& fmt)
const;
254 {
return strftime (
"%a %b %d %H:%M:%S %Y\n"); }
353 strptime (
const std::string& str,
const std::string& fmt)
360 :
base_tm (s), m_nchars (s.m_nchars) { }
377 OCTAVE_API void init (
const std::string& str,
const std::string& fmt);
388 : m_usr_sec (0), m_sys_sec (0), m_usr_usec (0), m_sys_usec (0)
394 : m_usr_sec (tm.m_usr_sec), m_sys_sec (tm.m_sys_sec),
395 m_usr_usec (tm.m_usr_usec), m_sys_usec (tm.m_sys_usec)
415 return as_double (m_usr_sec, m_usr_usec);
420 return as_double (m_sys_sec, m_sys_usec);
423 OCTAVE_TIME_T
user_sec (
void)
const {
return m_usr_sec; }
437 cpu_time (OCTAVE_TIME_T usr_sec, OCTAVE_TIME_T sys_sec,
long usr_usec,
long sys_usec)
438 : m_usr_sec (usr_sec), m_sys_sec (sys_sec),
439 m_usr_usec (usr_usec), m_sys_usec (sys_usec)
449 : m_cpu (), m_maxrss (0), m_ixrss (0), m_idrss (0),
450 m_isrss (0), m_minflt (0), m_majflt (0), m_nswap (0),
451 m_inblock (0), m_oublock (0), m_msgsnd (0), m_msgrcv (0),
452 m_nsignals (0), m_nvcsw (0), m_nivcsw (0)
458 : m_cpu (ru.m_cpu), m_maxrss (ru.m_maxrss),
459 m_ixrss (ru.m_ixrss), m_idrss (ru.m_idrss),
460 m_isrss (ru.m_isrss), m_minflt (ru.m_minflt),
461 m_majflt (ru.m_majflt), m_nswap (ru.m_nswap),
462 m_inblock (ru.m_inblock), m_oublock (ru.m_oublock),
463 m_msgsnd (ru.m_msgsnd), m_msgrcv (ru.m_msgrcv),
464 m_nsignals (ru.m_nsignals), m_nvcsw (ru.m_nvcsw),
465 m_nivcsw (ru.m_nivcsw)
497 long maxrss (
void)
const {
return m_maxrss; }
498 long ixrss (
void)
const {
return m_ixrss; }
499 long idrss (
void)
const {
return m_idrss; }
500 long isrss (
void)
const {
return m_isrss; }
501 long minflt (
void)
const {
return m_minflt; }
502 long majflt (
void)
const {
return m_majflt; }
503 long nswap (
void)
const {
return m_nswap; }
504 long inblock (
void)
const {
return m_inblock; }
505 long oublock (
void)
const {
return m_oublock; }
506 long msgsnd (
void)
const {
return m_msgsnd; }
507 long msgrcv (
void)
const {
return m_msgrcv; }
509 long nvcsw (
void)
const {
return m_nvcsw; }
510 long nivcsw (
void)
const {
return m_nivcsw; }
charNDArray min(char d, const charNDArray &m)
std::string zone(void) const
base_tm & operator=(const base_tm &tm)
base_tm(const base_tm &tm)
virtual ~base_tm(void)=default
std::string asctime(void) const
cpu_time(OCTAVE_TIME_T usr_sec, OCTAVE_TIME_T sys_sec, long usr_usec, long sys_usec)
long system_usec(void) const
cpu_time(const cpu_time &tm)
OCTAVE_TIME_T system_sec(void) const
double system(void) const
long user_usec(void) const
OCTAVE_TIME_T user_sec(void) const
localtime(const time &ot)
localtime(const localtime &t)
long nsignals(void) const
resource_usage(const resource_usage &ru)
strptime(const strptime &s)
int characters_converted(void) const
strptime(const std::string &str, const std::string &fmt)
OCTAVE_TIME_T unix_time(void) const
double double_value(void) const
time(OCTAVE_TIME_T t, long us)
OCTAVE_TIME_T m_ot_unix_time
F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE * d
bool operator!=(const time &t1, const time &t2)
bool operator==(const time &t1, const time &t2)
bool operator<=(const time &t1, const time &t2)
bool operator>=(const time &t1, const time &t2)
std::ostream & operator<<(std::ostream &os, const time &ot)
bool operator<(const time &t1, const time &t2)
bool operator>(const time &t1, const time &t2)
time operator+(const time &t1, const time &t2)
octave_int< T > rem(const octave_int< T > &x, const octave_int< T > &y)
static double as_double(OCTAVE_TIME_T sec, long usec)