$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