OpenLexocad  28.0
TimeInfo.h
Go to the documentation of this file.
1 #pragma once
2 #include <sys/timeb.h>
3 #include <string>
4 
5 namespace Base
6 {
7 class LX_BASE_EXPORT TimeInfo
8 {
9 public:
11 
13  void setToActual(void);
14  uint64_t getSeconds(void) const;
15  unsigned short getMiliseconds(void) const;
16 
17  void operator=(const TimeInfo& time);
18  bool operator==(const TimeInfo& time) const;
19  bool operator!=(const TimeInfo& time) const;
20 
21  bool operator<(const TimeInfo& time) const;
22  bool operator<=(const TimeInfo& time) const;
23  bool operator>=(const TimeInfo& time) const;
24  bool operator>(const TimeInfo& time) const;
25 
26  static const char* currentDateTimeString();
27  static std::string diffTime(const TimeInfo& timeStart, const TimeInfo& timeEnd = TimeInfo());
28  static float diffTimeF(const TimeInfo& timeStart, const TimeInfo& timeEnd = TimeInfo());
29  bool isNull() const;
30  static TimeInfo null();
31 
32 protected:
33  struct _timeb timebuffer;
34 };
35 
36 
37 inline bool TimeInfo::operator!=(const TimeInfo& time) const
38 {
39  return (timebuffer.time != time.timebuffer.time || timebuffer.millitm != time.timebuffer.millitm);
40 }
41 
42 inline void TimeInfo::operator=(const TimeInfo& time)
43 {
44  timebuffer = time.timebuffer;
45 }
46 
47 inline bool TimeInfo::operator==(const TimeInfo& time) const
48 {
49  return (timebuffer.time == time.timebuffer.time && timebuffer.millitm == time.timebuffer.millitm);
50 }
51 
52 inline bool TimeInfo::operator<(const TimeInfo& time) const
53 {
54  if (timebuffer.time == time.timebuffer.time)
55  return timebuffer.millitm < time.timebuffer.millitm;
56  else
57  return timebuffer.time < time.timebuffer.time;
58  // return (timebuffer.time < time.timebuffer.time && timebuffer.millitm < time.timebuffer.millitm);
59 }
60 
61 inline bool TimeInfo::operator<=(const TimeInfo& time) const
62 {
63  if (timebuffer.time == time.timebuffer.time)
64  return timebuffer.millitm <= time.timebuffer.millitm;
65  else
66  return timebuffer.time <= time.timebuffer.time;
67  // return (timebuffer.time <= time.timebuffer.time && timebuffer.millitm <= time.timebuffer.millitm);
68 }
69 
70 inline bool TimeInfo::operator>=(const TimeInfo& time) const
71 {
72  if (timebuffer.time == time.timebuffer.time)
73  return timebuffer.millitm >= time.timebuffer.millitm;
74  else
75  return timebuffer.time >= time.timebuffer.time;
76  // return (timebuffer.time >= time.timebuffer.time && timebuffer.millitm >= time.timebuffer.millitm);
77 }
78 
79 inline bool TimeInfo::operator>(const TimeInfo& time) const
80 {
81  if (timebuffer.time == time.timebuffer.time)
82  return timebuffer.millitm > time.timebuffer.millitm;
83  else
84  return timebuffer.time > time.timebuffer.time;
85  // return (timebuffer.time > time.timebuffer.time && timebuffer.millitm > time.timebuffer.millitm);
86 }
87 
88 
89 
90 } // namespace Base
Base::TimeInfo::getMiliseconds
unsigned short getMiliseconds(void) const
Base::TimeInfo::operator>
bool operator>(const TimeInfo &time) const
Definition: TimeInfo.h:79
Base::TimeInfo::diffTimeF
static float diffTimeF(const TimeInfo &timeStart, const TimeInfo &timeEnd=TimeInfo())
Base::TimeInfo::TimeInfo
TimeInfo()
Base::TimeInfo::setToActual
void setToActual(void)
sets the object to the actual system time
Base::TimeInfo::operator<=
bool operator<=(const TimeInfo &time) const
Definition: TimeInfo.h:61
Base::TimeInfo::diffTime
static std::string diffTime(const TimeInfo &timeStart, const TimeInfo &timeEnd=TimeInfo())
Base::TimeInfo::operator>=
bool operator>=(const TimeInfo &time) const
Definition: TimeInfo.h:70
Base::TimeInfo::operator<
bool operator<(const TimeInfo &time) const
Definition: TimeInfo.h:52
Base::TimeInfo::operator=
void operator=(const TimeInfo &time)
Definition: TimeInfo.h:42
entt::operator!=
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) ENTT_NOEXCEPT
Compares two hashed strings.
Definition: entt.hpp:570
Base::TimeInfo::currentDateTimeString
static const char * currentDateTimeString()
Base::TimeInfo::getSeconds
uint64_t getSeconds(void) const
Base::TimeInfo::timebuffer
struct _timeb timebuffer
Definition: TimeInfo.h:33
Base::TimeInfo::operator==
bool operator==(const TimeInfo &time) const
Definition: TimeInfo.h:47
Base::TimeInfo::isNull
bool isNull() const
Base::TimeInfo
Definition: TimeInfo.h:8
Base::TimeInfo::operator!=
bool operator!=(const TimeInfo &time) const
Definition: TimeInfo.h:37
Base
Definition: AbstractXMLReader.h:5