Esempio n. 1
0
//-------------------------------------------------------------------------------------------------
inline int_t
File::write(
    ctchar_t *a_format, ...
) const
{
    xTEST_PTR(a_format);

    va_list args;
    xVA_START(args, a_format);

    int_t iRv = xTVFPRINTF(get(), a_format, args);
    xTEST_LESS(- 1, iRv);

    xVA_END(args);

    return iRv;
}
Esempio n. 2
0
//-------------------------------------------------------------------------------------------------
inline void_t
Process::create(
    std::ctstring_t &a_filePath,
    ctchar_t        *a_params, ...
)
{
    xTEST_EQ(a_filePath.empty(), false);
    xTEST_EQ(File::isExists(a_filePath), true);
    xTEST_PTR(a_params);

    std::tstring_t cmdLine;

    va_list args;
    xVA_START(args, a_params);
    cmdLine = String::formatV(a_params, args);
    xVA_END(args);

    // xTRACEV(xT("cmdLine: %s"), cmdLine.c_str());

    _create_impl(a_filePath, cmdLine);
}
Esempio n. 3
0
//-------------------------------------------------------------------------------------------------
size_t
Profiler::restart(
    cptr_ctchar_t a_comment, ...
)
{
    size_t uiRV = 0;

    // format comment
    std::tstring_t sRv;

    if ( !_log.filePath().empty() ) {
        va_list args;
        xVA_START(args, a_comment);
        sRv = FormatC::strV(a_comment, args);
        xVA_END(args);
    }

    // stop, start
    uiRV = stop(xT("%s"), sRv.c_str());
    start();

    return uiRV;
}
Esempio n. 4
0
//-------------------------------------------------------------------------------------------------
size_t
Profiler::stop(
    cptr_ctchar_t a_comment, ...
)
{
    xTEST_EQ(_isStarted, true);

    // stop, get duration
    {
        _stop = std::clock();
        xTEST_DIFF(static_cast<clock_t>( - 1 ), _stop);

        _duration = _stop - _start;
        xTEST_LESS_EQ(static_cast<clock_t>( 0 ), _duration);
    }

    cdouble_t   durationMsec1 = (static_cast<double>( _duration ) /
        static_cast<double>( CLOCKS_PER_SEC )) * 1000.0;  // 1 sec = 1000 msec
    std::size_t durationMsec2 = Utils::roundIntT<std::size_t>( durationMsec1 );

    // write to log
    if ( !_log.filePath().empty() ) {
        std::tstring_t  sRv;
        std::ctstring_t durationTime = DateTime(durationMsec2).format(xT("%H:%M:%S"));

        va_list args;
        xVA_START(args, a_comment);
        sRv = FormatC::strV(a_comment, args);
        xVA_END(args);

        _log.write(xT("%s: %s"), durationTime.c_str(), sRv.c_str());
    }

    _isStarted = false;

    return durationMsec2;
}