MCPcopy Create free account
hub / github.com/comaps/comaps / IsActiveImpl

Function IsActiveImpl

3party/opening_hours/rules_evaluation.cpp:349–371  ·  view source on GitHub ↗

@return [day active, time active].

Source from the content-addressed store, hash-verified

347
348/// @return [day active, time active].
349std::pair<bool, bool> IsActiveImpl(RuleSequence const & rule, time_t const timestamp)
350{
351 if (rule.IsTwentyFourHours())
352 return {true, true};
353
354 auto const dateTimeTM = MakeTimetuple(timestamp);
355 if (!HasExtendedHours(rule))
356 return MakeActiveResult(rule, dateTimeTM, rule.GetTimes());
357
358 TTimespans originalNormalizedSpans;
359 Timespan additionalSpan;
360 SplitExtendedHours(rule.GetTimes(), originalNormalizedSpans, additionalSpan);
361
362 auto const res1 = MakeActiveResult(rule, dateTimeTM, originalNormalizedSpans);
363 if (res1.first && res1.second)
364 return res1;
365
366 time_t constexpr twentyFourHoursShift = 24 * 60 * 60;
367 auto const dateTimeTMShifted = MakeTimetuple(timestamp - twentyFourHoursShift);
368
369 auto const res2 = MakeActiveResult(rule, dateTimeTMShifted, additionalSpan);
370 return { res1.first || res2.first, res2.second };
371}
372
373/// Check if r1 is more general range and includes r2.
374bool IsR1IncludesR2(RuleSequence const & r1, RuleSequence const & r2)

Callers 2

IsActiveFunction · 0.85
GetStateFunction · 0.85

Calls 5

MakeTimetupleFunction · 0.85
HasExtendedHoursFunction · 0.85
MakeActiveResultFunction · 0.85
SplitExtendedHoursFunction · 0.85
IsTwentyFourHoursMethod · 0.45

Tested by

no test coverage detected