//------------------------------------------------------------------------------ /* Copyright (c) 2011-2013, OpenCoin, Inc. */ //============================================================================== #ifndef RIPPLE_LOADEVENT_H #define RIPPLE_LOADEVENT_H class LoadMonitor; // VFALCO NOTE What is the difference between a LoadEvent and a LoadMonitor? // VFALCO TODO Rename LoadEvent to ScopedLoadSample // // This looks like a scoped elapsed time measuring class // class LoadEvent { public: // VFALCO NOTE Why are these shared pointers? Wouldn't there be a // piece of lifetime-managed calling code that can simply own // the object? // // Why both kinds of containers? // typedef boost::shared_ptr pointer; typedef UPTR_T autoptr; public: // VFALCO TODO remove the dependency on LoadMonitor. Is that possible? LoadEvent (LoadMonitor& monitor, const std::string& name, bool shouldStart); ~LoadEvent (); // VFALCO TODO rename this to setName () or setLabel () void reName (const std::string& name); // okay to call if already started void start (); void stop (); private: LoadMonitor& mMonitor; bool mRunning; std::string mName; boost::posix_time::ptime mStartTime; }; #endif