コード例 #1
0
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());
    }
}
コード例 #2
0
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);
	}

}
コード例 #3
0
ファイル: zsLib_Stringize.cpp プロジェクト: openpeer/zsLib
    //-----------------------------------------------------------------------
    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());
    }
コード例 #4
0
ファイル: zsLib_Stringize.cpp プロジェクト: openpeer/zsLib
    //-----------------------------------------------------------------------
    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;
    }
コード例 #5
0
ファイル: Timer.cpp プロジェクト: obrienadam/Phase
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();
}
コード例 #6
0
ファイル: Timer.cpp プロジェクト: obrienadam/Phase
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();
}
コード例 #7
0
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());
    }
}
コード例 #8
0
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);
}
コード例 #9
0
ファイル: Duration.hpp プロジェクト: azaika/OpenSiv3D
	inline void Formatter(FormatData& formatData, const Seconds& seconds)
	{
		Formatter(formatData, seconds.count());

		formatData.string.push_back(U's');
	}