20#ifndef OPM_TIMESERVICE_HEADER_INCLUDED
21#define OPM_TIMESERVICE_HEADER_INCLUDED
26#include <unordered_map>
32 using time_point = std::chrono::time_point<std::chrono::system_clock, std::chrono::duration<int64_t, std::ratio<1,1000>>>;
34 namespace TimeService {
35 std::time_t to_time_t(
const time_point& tp);
36 time_point from_time_t(std::time_t t);
39 std::time_t advance(
const std::time_t tp,
const double sec);
40 std::time_t makeUTCTime(std::tm timePoint);
41 const std::unordered_map<std::string , int>& eclipseMonthIndices();
42 const std::unordered_map<int, std::string>& eclipseMonthNames();
43 int eclipseMonth(
const std::string& name);
44 bool valid_month(
const std::string& month_name);
46 std::time_t mkdatetime(
int in_year,
int in_month,
int in_day,
int hour,
int minute,
int second);
47 std::time_t mkdate(
int in_year,
int in_month,
int in_day);
48 std::time_t portable_timegm(
const std::tm* t);
49 std::time_t timeFromEclipse(
const DeckRecord &dateRecord);
60 bool operator==(
const YMD& data)
const
62 return year == data.year &&
63 month == data.month &&
67 template<
class Serializer>
95 const YMD& ymd()
const {
return ymd_; }
96 int year()
const {
return this->ymd_.year; }
97 int month()
const {
return this->ymd_.month; }
98 int day()
const {
return this->ymd_.day; }
99 int hour()
const {
return this->hour_; }
100 int minutes()
const {
return this->minutes_; }
101 int seconds()
const {
return this->seconds_; }
102 int microseconds()
const {
return this->usec_; }
104 template<
class Serializer>
105 void serializeOp(Serializer& serializer)
109 serializer(minutes_);
110 serializer(seconds_);
123 TimeStampUTC operator+(
const TimeStampUTC& lhs, std::chrono::duration<double> delta);
124 std::time_t asTimeT(
const TimeStampUTC& tp);
125 std::time_t asLocalTimeT(
const TimeStampUTC& tp);
126 time_point asTimePoint(
const TimeStampUTC& tp);
Class for (de-)serializing.
Definition Serializer.hpp:84
Definition TimeService.hpp:53
This class implements a small container which holds the transmissibility mulitpliers for all the face...
Definition Exceptions.hpp:30
Definition TimeService.hpp:55