base
Time.hpp
Go to the documentation of this file.
1 #ifndef BASE_TIME_H__
2 #define BASE_TIME_H__
3 
4 #include <cstdlib>
5 #include <ostream>
6 #include <stdint.h>
7 #include <vector>
8 
9 namespace base
10 {
11  struct Time
12  {
13  private:
14  explicit Time(int64_t _microseconds);
15 
16  public:
17  int64_t microseconds;
18 
19  static const int UsecPerSec = 1000000LL;
20 
21  enum Resolution { Seconds = 1, Milliseconds = 1000, Microseconds = 1000000 };
22 
23  Time();
24 
25 
26  public:
28  static Time now();
29 
30  bool operator < (Time const& ts) const;
31  bool operator > (Time const& ts) const;
32  bool operator == (Time const& ts) const;
33  bool operator != (Time const& ts) const;
34  bool operator >= (Time const& ts) const;
35  bool operator <= (Time const& ts) const;
36  Time operator - (Time const& ts) const;
37  Time operator + (Time const& ts) const;
38  Time operator / (int divider) const;
39  Time operator * (double factor) const;
40 
42  bool isNull() const;
43 
45  timeval toTimeval() const;
46 
53  std::vector<int> toTimeValues() const;
54 
60  std::string toString(base::Time::Resolution resolution = Microseconds, const std::string& mainFormat = "%Y%m%d-%H:%M:%S") const;
61 
63  double toSeconds() const;
64 
66  int64_t toMilliseconds() const;
67 
69  int64_t toMicroseconds() const;
70 
71  static Time fromMicroseconds(int64_t value);
72 
73  static Time fromMilliseconds(int64_t value);
74 
75  static Time fromSeconds(int64_t value);
76 
77  static Time fromSeconds(int value);
78 
79  static Time fromSeconds(int64_t value, int microseconds);
80 
81  static Time fromSeconds(double value);
82 
84  static Time max();
85 
101  static Time fromTimeValues(int year, int month, int day, int hour, int minute, int seconds, int millis, int micros);
102 
103 
112  static Time fromString(const std::string& stringTime, Resolution resolution = Microseconds, const std::string& mainFormat = "%Y%m%d-%H:%M:%S");
113  };
114 
115  std::ostream& operator << (std::ostream& io, base::Time const& time);
116 }
117 
118 
119 #endif
bool operator>(Time const &ts) const
Definition: Time.cpp:35
std::ostream & operator<<(std::ostream &os, Angle angle)
Definition: Angle.cpp:25
Definition: Time.hpp:21
int64_t toMicroseconds() const
Definition: Time.cpp:159
bool operator<=(Time const &ts) const
Definition: Time.cpp:55
bool operator<(Time const &ts) const
Definition: Time.cpp:30
static Time fromString(const std::string &stringTime, Resolution resolution=Microseconds, const std::string &mainFormat="%Y%m%d-%H:%M:%S")
Definition: Time.cpp:223
Resolution
Definition: Time.hpp:21
Time operator*(double factor) const
Definition: Time.cpp:75
Time operator-(Time const &ts) const
Definition: Time.cpp:60
std::vector< int > toTimeValues() const
Definition: Time.cpp:91
static Time max()
Definition: Time.cpp:195
Time()
Definition: Time.cpp:18
static Time now()
Definition: Time.cpp:23
bool operator>=(Time const &ts) const
Definition: Time.cpp:50
Definition: Time.hpp:11
int64_t microseconds
Definition: Time.hpp:17
static Time fromSeconds(int64_t value)
Definition: Time.cpp:174
bool operator!=(Time const &ts) const
Definition: Time.cpp:45
timeval toTimeval() const
Definition: Time.cpp:85
int64_t toMilliseconds() const
Definition: Time.cpp:154
Time operator+(Time const &ts) const
Definition: Time.cpp:65
Time operator/(int divider) const
Definition: Time.cpp:70
static Time fromMicroseconds(int64_t value)
Definition: Time.cpp:164
static Time fromMilliseconds(int64_t value)
Definition: Time.cpp:169
Definition: LinearAngular6DCommand.hpp:8
static Time fromTimeValues(int year, int month, int day, int hour, int minute, int seconds, int millis, int micros)
Create time from int Time Values. Creates a time object from the time values (year, month, day ...) given as integer values. This function can be used when the time values are only available as seperated values in numerical form.
Definition: Time.cpp:200
bool operator==(Time const &ts) const
Definition: Time.cpp:40
std::string toString(base::Time::Resolution resolution=Microseconds, const std::string &mainFormat="%Y%m%d-%H:%M:%S") const
Definition: Time.cpp:118
bool isNull() const
Definition: Time.cpp:80
Definition: Time.hpp:21
double toSeconds() const
Definition: Time.cpp:149
static const int UsecPerSec
Definition: Time.hpp:19
Definition: Time.hpp:21