void StatusDataWriter::DumpTimePeriod(std::ostream& fp, const TimePeriod::Ptr& tp) { fp << "define timeperiod {" "\n" "\t" "timeperiod_name" "\t" << tp->GetName() << "\n" "\t" "alias" "\t" << tp->GetName() << "\n"; Dictionary::Ptr ranges = tp->GetRanges(); if (ranges) { ObjectLock olock(ranges); for (const Dictionary::Pair& kv : ranges) { fp << "\t" << kv.first << "\t" << kv.second << "\n"; } } fp << "\t" "}" "\n" "\n"; }
Array::Ptr LegacyTimePeriod::ScriptFunc(const TimePeriod::Ptr& tp, double begin, double end) { Array::Ptr segments = new Array(); Dictionary::Ptr ranges = tp->GetRanges(); if (ranges) { for (int i = 0; i <= (end - begin) / (24 * 60 * 60); i++) { time_t refts = begin + i * 24 * 60 * 60; tm reference = Utility::LocalTime(refts); #ifdef I2_DEBUG Log(LogDebug, "LegacyTimePeriod") << "Checking reference time " << refts; #endif /* I2_DEBUG */ ObjectLock olock(ranges); for (const Dictionary::Pair& kv : ranges) { if (!IsInDayDefinition(kv.first, &reference)) { #ifdef I2_DEBUG Log(LogDebug, "LegacyTimePeriod") << "Not in day definition '" << kv.first << "'."; #endif /* I2_DEBUG */ continue; } #ifdef I2_DEBUG Log(LogDebug, "LegacyTimePeriod") << "In day definition '" << kv.first << "'."; #endif /* I2_DEBUG */ ProcessTimeRanges(kv.second, &reference, segments); } } } Log(LogDebug, "LegacyTimePeriod") << "Legacy timeperiod update returned " << segments->GetLength() << " segments."; return segments; }