void SQLiteCache::Impl::refresh(const Resource& resource, Seconds expires) { try { if (!db) { createDatabase(); } if (!schema) { createSchema(); } if (!refreshStmt) { refreshStmt = std::make_unique<Statement>( // 1 2 db->prepare("UPDATE `http_cache` SET `expires` = ? WHERE `url` = ?")); } else { refreshStmt->reset(); } const auto canonicalURL = util::mapbox::canonicalURL(resource.url); refreshStmt->bind(1, expires.count()); refreshStmt->bind(2, canonicalURL.c_str()); refreshStmt->run(); } catch (mapbox::sqlite::Exception& ex) { Log::Error(Event::Database, ex.code, ex.what()); } }
void utl::ProfilePass::run() { //size_t j = 0; auto compare = _countUp ? [](const Dim& lhs, const Dim& rhs){ return (lhs < 1) == 0 && lhs <= rhs; } : [](const Dim& lhs, const Dim& rhs){ return (lhs < 1) == 0 && lhs >= rhs; }; auto advance = _countUp ? [](Dim& lhs, const Dim& rhs){ lhs += rhs; } : [](Dim& lhs, const Dim& rhs){ lhs -= rhs; } ; for(Dim i = _start; compare(i, _end); advance(i,_step)) { // TRUE_COMMENT("start : " << this->_start.toString() << ", _end : " << this->_end.toString() << ", _step = " << this->_step.toString() << ", i " << i.toString() << ", comp = " << compare(i,_end)); Seconds time = this->prof(i); double op = this->ops(i); double perf = double(op) / double(time.count()); this->_elems.push_back(i.prod()); this->_times.push_back(time) ; this->_ops.push_back(op) ; // 2 * n^2 + n this->_perf.push_back(perf); } }
//----------------------------------------------------------------------- String timeToString(const Time &value) { if (Time() == value) return String(); Microseconds sinceEpoch = zsLib::timeSinceEpoch<Microseconds>(value); Seconds asSeconds = toSeconds(sinceEpoch); if (asSeconds < sinceEpoch) { return durationToString<Microseconds>(sinceEpoch); } return std::to_string(asSeconds.count()); }
//----------------------------------------------------------------------- String durationToString( const Seconds &secPart, std::intmax_t fractionalPart, std::intmax_t den ) { if (den < 1) { return string(secPart.count()); } char buffer[100] {}; char format[50] {}; std::intmax_t secValue = static_cast<std::intmax_t>(secPart.count()); int digits = static_cast<int>(log10(den)); snprintf(format, sizeof(format)-1, "%%lli.%%0%illi", digits); snprintf(buffer, sizeof(buffer)-1, format, (long long)secValue, (long long)fractionalPart); return buffer; }
std::string Timer::elapsedCpuTime(const Communicator &comm) const { std::chrono::duration<double, std::nano> dur(comm.sum((end_ - start_).count())); std::ostringstream sout; Hours hours = std::chrono::duration_cast<Hours>(dur); dur -= hours; Minutes minutes = std::chrono::duration_cast<Minutes>(dur); dur -= minutes; Seconds seconds = std::chrono::duration_cast<Seconds>(dur); sout << hours.count() << ":" << minutes.count() << ":" << seconds.count(); return sout.str(); }
std::string Timer::elapsedTime() const { auto dur(end_ - start_); std::ostringstream sout; Hours hours = std::chrono::duration_cast<Hours>(dur); dur -= hours; Minutes minutes = std::chrono::duration_cast<Minutes>(dur); dur -= minutes; Seconds seconds = std::chrono::duration_cast<Seconds>(dur); sout << hours.count() << ":" << minutes.count() << ":" << seconds.count(); return sout.str(); }
void SQLiteCache::Impl::refresh(const Resource& resource, Seconds expires) { try { initializeDatabase(); if (!refreshStmt) { refreshStmt = std::make_unique<Statement>( db->prepare("UPDATE `http_cache` SET " // 1 2 3 "`accessed` = ?, `expires` = ? WHERE `url` = ?")); } else { refreshStmt->reset(); } const auto canonicalURL = util::mapbox::canonicalURL(resource.url); refreshStmt->bind(1, int64_t(toSeconds(SystemClock::now()).count())); refreshStmt->bind(2, int64_t(expires.count())); refreshStmt->bind(3, canonicalURL.c_str()); refreshStmt->run(); } catch (mapbox::sqlite::Exception& ex) { Log::Error(Event::Database, ex.code, ex.what()); } }
void BossAI::_DespawnAtEvade(Seconds delayToRespawn, Creature* who) { if (delayToRespawn < Seconds(2)) { TC_LOG_ERROR("scripts", "_DespawnAtEvade called with delay of %ld seconds, defaulting to 2.", delayToRespawn.count()); delayToRespawn = Seconds(2); } if (!who) who = me; if (TempSummon* whoSummon = who->ToTempSummon()) { TC_LOG_WARN("scripts", "_DespawnAtEvade called on a temporary summon."); whoSummon->UnSummon(); return; } who->DespawnOrUnsummon(0, Seconds(delayToRespawn)); if (instance && who == me) instance->SetBossState(_bossId, FAIL); }
inline void Formatter(FormatData& formatData, const Seconds& seconds) { Formatter(formatData, seconds.count()); formatData.string.push_back(U's'); }