|
Boost : |
From: Brian Braatz (brianb_at_[hidden])
Date: 2005-03-03 20:23:11
First off- note that Timer can take a start time on the ctor:
class timer
{
public:
timer() { _start_time = std::clock(); } // postcondition:
elapsed()==0
(snip)
high_resolution_timer does not however:
class high_resolution_timer
{
public:
// ctor
high_resolution_timer()
{
start_time.QuadPart = 0;
frequency.QuadPart = 0;
if (!QueryPerformanceFrequency(&frequency))
throw std::runtime_error("Couldn't acquire frequency");
restart();
}
(snip)
MY PROBLEM:
I need to feed the timer the START time (or get FROM it the start
time would be preferred)
The reason I need this is because for logging purposes (working with the
Profiler from Christopher Diggins) I need to log the start and stop
times, and I need it to (for internal cross reference) be the same
number for multiple purposes.
MY REQUESTS:
Easy request:
high_resolution_timer is changed to have the same type of ctor as timer
does
May Start a discussion request:
That something like a starttime() method is provided for both
classes
Medium request-
That both classes do a typedef for the type returned by the
starttime method
i.e. instead of
class high_resolution_timer
{
public:
(snip)
private:
timer t; // backup in case of QueryPerformanceCounter() bug
LARGE_INTEGER start_time;
LARGE_INTEGER frequency;
};
You have instead:
class high_resolution_timer
{
public:
(snip)
typedef LARGE_INTEGER TIME_TYPE;
private:
timer t; // backup in case of QueryPerformanceCounter() bug
TIME_TYPE start_time;
TIME_TYPE frequency;
};
(for both high_resolution_timer and timer)
There you go, those are my requests. Now I will sit here quietly and
hope there is a Santa Claus....
(grin)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk