24 #include "../CommonLib/ddcConfig.h" 81 inline void Set(
const time_t time_)
96 struct tm CalendarTime() const;
103 virtual void DateTime(
char* DateBuf,
char* TimeBuf)
const;
110 return std::string(DateBuf);
118 return std::string(TimeBuf);
127 #ifdef HAVE_CLOCK_GETTIME 133 struct timespec m_ts;
169 clock_gettime(CLOCK_REALTIME, &m_ts);
174 inline void Set(
const time_t time_)
182 inline void Set(
const struct timespec &ts_)
210 virtual void DateTime(
char* DateBuf,
char* TimeBuf)
const;
229 #ifdef DDC_USE_HIRES_CLOCK 231 typedef struct DDCTimeHiRes DDCTime;
254 typedef std::map<DelayT,ValueT>
MapT;
278 DDCTimeAvg(DelayT delay1=60, DelayT delay2=300, DelayT delay3=900, ValueT val=0)
281 SetDelays(delay1,delay2,delay3,val);
289 SetDelays(delays,val);
295 : m_map(X.m_map), m_t(X.m_t), m_total(X.m_total), m_n(X.m_n)
299 void reset(ValueT val=0);
312 void SetDelays(
const std::vector<DelayT>& delays, ValueT val=0);
315 void SetDelays(DelayT delay1=60, DelayT delay2=300, DelayT delay3=900, ValueT val=0);
319 { m_map = delayMap; };
324 MapT& Append(ValueT sample,
const TimeT& when,
size_t n=1);
330 {
return Append(sample, TimeT::Now()); };
334 { m_total += sample; };
341 {
if (x.
m_n > 0) Append(x.
Total());
return *
this;};
345 { Append(0,TimeT::Now(),0); };
355 inline const TimeT&
Time()
const 364 {
return m_n==0 ? m_total : (m_total / (ValueT)m_n); };
368 {
return m_map.begin()->second; };
371 std::string toJsonArray()
const;
374 std::string toJsonMap()
const;
static DDCTimeHiRes Now()
Definition: ddcTime.h:159
size_t DelayT
Definition: ddcTime.h:245
DDCTimeHiRes TimeT
Definition: ddcTime.h:251
Definition: ddcTime.h:239
const TimeT & Time() const
Definition: ddcTime.h:355
ValueT Average() const
Definition: ddcTime.h:363
Definition: ddcTime.h:128
std::string TimeStr() const
Definition: ddcTime.h:114
time_t m_t
Definition: ddcTime.h:46
void Set(const struct timespec &ts_)
Definition: ddcTime.h:182
ValueT m_total
Definition: ddcTime.h:269
MapT m_map
Definition: ddcTime.h:263
void Set(const DDCTimeHiRes &t)
Definition: ddcTime.h:193
void Set(const time_t time_)
Definition: ddcTime.h:81
size_t m_n
Definition: ddcTime.h:272
struct timespec m_ts
Definition: ddcTime.h:133
std::string DateStr() const
Definition: ddcTime.h:106
virtual ~DDCTimeHiRes()
Definition: ddcTime.h:155
const size_t DDCTimeBufferSize
Definition: ddcTime.cpp:36
void AppendTotal(ValueT sample)
Definition: ddcTime.h:333
const size_t DDCDateBufferSize
Definition: ddcTime.cpp:33
DDCTimeHiRes(const DDCTimeHiRes &t)
Definition: ddcTime.h:147
DDCTimeAvg(DelayT delay1=60, DelayT delay2=300, DelayT delay3=900, ValueT val=0)
Definition: ddcTime.h:278
void Set(const DDCTimeUnix &t)
Definition: ddcTime.h:189
DDCTimeHiRes()
Definition: ddcTime.h:139
void Scrub()
Definition: ddcTime.h:344
void Set()
Definition: ddcTime.h:167
static DDCTimeUnix Now()
Definition: ddcTime.h:69
DDCTimeUnix(const time_t time_)
Definition: ddcTime.h:56
void Set(const DDCTimeUnix &t)
Definition: ddcTime.h:85
DDCTimeAvg & operator+=(const DDCTimeAvg &x)
Definition: ddcTime.h:340
DDCTimeUnix(const DDCTimeUnix &X)
Definition: ddcTime.h:60
ValueT Total() const
Definition: ddcTime.h:359
ValueT tAverage() const
Definition: ddcTime.h:367
DDCTimeHiRes(const DDCTimeUnix &t)
Definition: ddcTime.h:151
void Set(const time_t time_)
Definition: ddcTime.h:174
DDCTimeHiRes(const struct timespec &ts_)
Definition: ddcTime.h:143
void SetDelays(const MapT &delayMap)
Definition: ddcTime.h:318
DDCTimeAvg(const DDCTimeAvg &X)
Definition: ddcTime.h:294
double ValueT
Definition: ddcTime.h:248
const MapT & Values() const
Definition: ddcTime.h:351
virtual ~DDCTimeUnix()
Definition: ddcTime.h:65
void clear()
Definition: ddcTime.h:302
DDCTimeAvg(const std::vector< DelayT > &delays, ValueT val=0)
Definition: ddcTime.h:286
double Elapsed(const DDCTimeUnix &t0) const
Definition: ddcTime.cpp:74
void Set()
Definition: ddcTime.h:77
MapT & Append(ValueT sample=0)
Definition: ddcTime.h:329
std::map< DelayT, ValueT > MapT
Definition: ddcTime.h:254
time_t Time() const
Definition: ddcTime.h:92
TimeT m_t
Definition: ddcTime.h:266
virtual void DateTime(char *DateBuf, char *TimeBuf) const
Definition: ddcTime.cpp:62
DDCTimeUnix()
Definition: ddcTime.h:52