$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jeff Garland (jeff_at_[hidden])
Date: 2006-06-25 20:07:48
Silex wrote:
> Hello
>
> Here attached is the latest version of the boost::timer modification.
>
> About doing the documentation I must say that QuickBook & BoostBook
> confused me. I understand QuickBook generates BoostBook's
> documentation but how to use it ?
>
> At the moment I'm only doing the documentation in a plain text file
> waiting for your answers...
> I *think* I understood that I'm supposed to write a .qbk file, but how
> to then make Spirit generate the xml for BoostBook is beyond me, I'm
> not used to Spirit yet.
Hi Philippe -
Sorry I haven't got a chance to look at this till now. First, it might be
nice if you could upload a version to the vault so other people can try it out.
http://boost-consulting.com/vault/index.php?&direction=0&order=&directory=date_time
Now a couple questions on the code. What is the
time_duration_type elapsed() const
{
if(m_start.QuadPart)
{
LARGE_INTEGER current;
if(!QueryPerformanceCounter(¤t))
throw std::runtime_error("qpc: QueryPerformanceCounter()
failed");
boost::uint64_t milliseconds = (current.QuadPart -
m_start.QuadPart) / m_frequency.QuadPart;
boost::uint32_t seconds = milliseconds / 1000;
boost::uint32_t minutes = seconds / 60;
boost::uint32_t hours = minutes / 60;
milliseconds = milliseconds % 1000;
m_elapsed += time_duration_type(hours, minutes, seconds,
milliseconds);
m_start = current;
}
return m_elapsed;
}
I think this code is both inefficient and likely non-portable. As I
understand it, QueryPerformanceCounter has a hardware defined resolution that
can be queried by calling QueryPerformanceFrequency. QPF provides the counts
per second. You should be able to use this to more simply construct the
time_duration. So, for example, if QPF returned 1000 you could simply say
m_elapsed += boost::posix_time::milliseconds(current-previous);
I'm guessing nanoseconds might be the best duration type to use in the
calculation.
Thx for your effort in this area.
Jeff