From 3f3c76ab7e9f34ee87b1a08fbb1526b36c346a3b Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Mon, 3 Jun 2013 07:39:49 -0700 Subject: [PATCH] Split LoadEvent to a new file --- modules/ripple_main/ripple_main.cpp | 6 ++++ newcoin.vcxproj | 8 ++++- newcoin.vcxproj.filters | 9 ++++-- src/cpp/ripple/LedgerConsensus.cpp | 2 ++ src/cpp/ripple/LoadMonitor.h | 47 ----------------------------- src/cpp/ripple/ripple_LoadEvent.cpp | 37 +++++++++++++++++++++++ src/cpp/ripple/ripple_LoadEvent.h | 35 +++++++++++++++++++++ 7 files changed, 93 insertions(+), 51 deletions(-) create mode 100644 src/cpp/ripple/ripple_LoadEvent.cpp create mode 100644 src/cpp/ripple/ripple_LoadEvent.h diff --git a/modules/ripple_main/ripple_main.cpp b/modules/ripple_main/ripple_main.cpp index 3eec9a1f0..98e03a6c3 100644 --- a/modules/ripple_main/ripple_main.cpp +++ b/modules/ripple_main/ripple_main.cpp @@ -74,6 +74,8 @@ #include "src/cpp/database/SqliteDatabase.h" +#include "src/cpp/ripple/ripple_LoadEvent.h" + #include "src/cpp/ripple/AcceptedLedger.h" #include "src/cpp/ripple/AccountItems.h" #include "src/cpp/ripple/AccountSetTransactor.h" @@ -266,6 +268,10 @@ static DH* handleTmpDh(SSL* ssl, int is_export, int iKeyLength) //------------------------------------------------------------------------------ +// Refactored sources + +#include "src/cpp/ripple/ripple_LoadEvent.cpp" + // Implementation of interfaces #include "src/cpp/ripple/ripple_Features.cpp" diff --git a/newcoin.vcxproj b/newcoin.vcxproj index d620ca2d8..876a33910 100644 --- a/newcoin.vcxproj +++ b/newcoin.vcxproj @@ -980,6 +980,12 @@ true true + + true + true + true + true + true true @@ -1632,7 +1638,6 @@ - @@ -1658,6 +1663,7 @@ + diff --git a/newcoin.vcxproj.filters b/newcoin.vcxproj.filters index 8bd4c5151..ee49344c1 100644 --- a/newcoin.vcxproj.filters +++ b/newcoin.vcxproj.filters @@ -801,6 +801,9 @@ 1. Modules\ripple_main\processing + + 1. Modules\ripple_main\main + @@ -1448,9 +1451,6 @@ 1. Modules\ripple_main\main - - 1. Modules\ripple_main\main - 1. Modules\ripple_main\main @@ -1484,6 +1484,9 @@ 1. Modules\ripple_main\sockets + + 1. Modules\ripple_main\main + diff --git a/src/cpp/ripple/LedgerConsensus.cpp b/src/cpp/ripple/LedgerConsensus.cpp index 2c33046d3..aa7e0addf 100644 --- a/src/cpp/ripple/LedgerConsensus.cpp +++ b/src/cpp/ripple/LedgerConsensus.cpp @@ -1022,6 +1022,7 @@ void LedgerConsensus::playbackProposals() } } +// VFALCO: TODO, clean these macros up and put them somewhere. Try to eliminate them if possible. #define LCAT_SUCCESS 0 #define LCAT_FAIL 1 #define LCAT_RETRY 2 @@ -1040,6 +1041,7 @@ int LedgerConsensus::applyTransaction(TransactionEngine& engine, SerializedTrans << (retryAssured ? "/retry" : "/final"); WriteLog (lsTRACE, LedgerConsensus) << txn->getJson(0); +// VFALCO: TODO, figure out what this "trust network" is all about and why it needs exceptions. #ifndef TRUST_NETWORK try { diff --git a/src/cpp/ripple/LoadMonitor.h b/src/cpp/ripple/LoadMonitor.h index 944f835c6..a97e31f87 100644 --- a/src/cpp/ripple/LoadMonitor.h +++ b/src/cpp/ripple/LoadMonitor.h @@ -55,51 +55,4 @@ private: boost::mutex mLock; }; -class LoadEvent -{ -public: - typedef boost::shared_ptr pointer; - typedef UPTR_T autoptr; - -public: - 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() - { - if (mRunning) - stop(); - } - - void reName(const std::string& name) - { - mName = name; - } - - void start() - { // okay to call if already started - mRunning = true; - mStartTime = boost::posix_time::microsec_clock::universal_time(); - } - - void stop() - { - assert(mRunning); - mRunning = false; - mMonitor.addCountAndLatency(mName, - static_cast((boost::posix_time::microsec_clock::universal_time() - mStartTime).total_milliseconds())); - } - -private: - LoadMonitor& mMonitor; - bool mRunning; - std::string mName; - boost::posix_time::ptime mStartTime; -}; - #endif diff --git a/src/cpp/ripple/ripple_LoadEvent.cpp b/src/cpp/ripple/ripple_LoadEvent.cpp new file mode 100644 index 000000000..fb0849094 --- /dev/null +++ b/src/cpp/ripple/ripple_LoadEvent.cpp @@ -0,0 +1,37 @@ + +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((boost::posix_time::microsec_clock::universal_time() - mStartTime).total_milliseconds())); +} diff --git a/src/cpp/ripple/ripple_LoadEvent.h b/src/cpp/ripple/ripple_LoadEvent.h new file mode 100644 index 000000000..a6851a7fd --- /dev/null +++ b/src/cpp/ripple/ripple_LoadEvent.h @@ -0,0 +1,35 @@ +#ifndef RIPPLE_LOADEVENT_H +#define RIPPLE_LOADEVENT_H + +class LoadMonitor; + +class LoadEvent +{ +public: + typedef boost::shared_ptr pointer; + typedef UPTR_T autoptr; + +public: + // VFALCO: TODO, remove the dependency on LoadMonitor. + 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