Files
rippled/modules/ripple_basics/utility/ripple_UptimeTimer.h
2013-06-15 18:20:59 -07:00

44 lines
995 B
C++

//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_UPTIMETIMER_H
#define RIPPLE_UPTIMETIMER_H
/** Tracks program uptime.
The timer can be switched to a manual system of updating, to reduce
system calls. (?)
*/
// VFALCO TODO determine if the non-manual timing is actually needed
class UptimeTimer
{
private:
UptimeTimer ();
~UptimeTimer ();
public:
int getElapsedSeconds () const;
void beginManualUpdates ();
void endManualUpdates ();
void incrementElapsedTime ();
static UptimeTimer& getInstance ();
private:
// VFALCO DEPRECATED, Use a memory barrier instead of forcing a cache line
int m_pad1; // make sure m_elapsedTime fits in its own cache line
int volatile m_elapsedTime;
int m_pad2;
time_t m_startTime;
bool m_isUpdatingManually;
};
#endif