Vanetza
 
Loading...
Searching...
No Matches
clock.cpp
1#include <vanetza/common/clock.hpp>
2#include <boost/date_time/posix_time/posix_time.hpp>
3
4namespace vanetza
5{
6
7const boost::posix_time::ptime& Clock::epoch()
8{
9 static const boost::posix_time::ptime epoch {
10 boost::gregorian::date(2004, 1, 1),
11 boost::posix_time::milliseconds(0)
12 };
13 return epoch;
14}
15
16Clock::time_point Clock::at(const boost::posix_time::ptime& t)
17{
18 auto delta = (t - epoch()).total_microseconds();
19 Clock::time_point tp { std::chrono::microseconds(delta) };
20 return tp;
21}
22
23Clock::date_time Clock::at(const Clock::time_point& t)
24{
25 std::chrono::microseconds delta = t.time_since_epoch();
26 return Clock::epoch() + boost::posix_time::microseconds(delta.count());
27}
28
29Clock::time_point Clock::at(const std::string& at)
30{
31 return Clock::at(boost::posix_time::time_from_string(at));
32}
33
34} // namespace vanetza