Files
rippled/modules/ripple_core/functional/ripple_LoadEvent.cpp
2013-06-23 11:12:39 -07:00

43 lines
1000 B
C++

//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
LoadEvent::LoadEvent (LoadMonitor& monitor, const std::string& name, bool shouldStart)
: mMonitor (monitor)
, mRunning (false)
, mName (name)
{
mStartTime = boost::posix_time::microsec_clock::universal_time ();
if (shouldStart)
start ();
}
LoadEvent::~LoadEvent ()
{
if (mRunning)
stop ();
}
void LoadEvent::reName (const std::string& name)
{
mName = name;
}
void LoadEvent::start ()
{
mRunning = true;
mStartTime = boost::posix_time::microsec_clock::universal_time ();
}
void LoadEvent::stop ()
{
assert (mRunning);
mRunning = false;
mMonitor.addCountAndLatency (mName,
static_cast<int> ((boost::posix_time::microsec_clock::universal_time () - mStartTime).total_milliseconds ()));
}