Listing 6 Extract from winstl_processtimes_counter.h
/* /////////////////////////////////////////////////////////////
* ...
*
* Extract from winstl_processtimes_counter.h
*
* Copyright (C) 2002, Synesis Software Pty Ltd.
* (Licensed under the Synesis Software Standard Source License:
* http://www.synesis.com.au/licenses/ssssl.html)
*
* ...
* ////////////////////////////////////////////////////////// */
inline /* static */ HANDLE processtimes_counter::_get_process_handle()
{
static HANDLE s_hProcess = ::GetCurrentProcess();
return s_hProcess;
}
// Operations
inline void processtimes_counter::start()
{
FILETIME creationTime;
FILETIME exitTime;
::GetProcessTimes( _get_process_handle(),
&creationTime,
&exitTime,
reinterpret_cast<LPFILETIME>(&m_kernelStart),
reinterpret_cast<LPFILETIME>(&m_userStart));
}
inline void processtimes_counter::stop()
{
FILETIME creationTime;
FILETIME exitTime;
::GetProcessTimes( _get_process_handle(),
&creationTime,
&exitTime,
reinterpret_cast<LPFILETIME>(&m_kernelEnd),
reinterpret_cast<LPFILETIME>(&m_userEnd));
}