diff --git a/RippleD.props b/RippleD.props
index a8aff17523..c8469dfc94 100644
--- a/RippleD.props
+++ b/RippleD.props
@@ -15,7 +15,7 @@
USE_LEVELDB;_SCL_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)
true
Level3
- $(RepoDir)\src\cpp\leveldb;$(RepoDir)\src\cpp\leveldb\include;$(RepoDir)\src\cpp\protobuf\src;$(RepoDir)\src\cpp\protobuf\vsprojects;%(AdditionalIncludeDirectories)
+ $(RepoDir)\src\cpp\leveldb;$(RepoDir)\src\cpp\leveldb\include;$(RepoDir)\src\cpp\protobuf\src;$(RepoDir)\src\cpp\protobuf\vsprojects;$(RepoDir);%(AdditionalIncludeDirectories)
Shlwapi.lib;%(AdditionalDependencies)
diff --git a/modules/ripple_basics/ripple_basics.cpp b/modules/ripple_basics/ripple_basics.cpp
index 593a621281..23dfb500a5 100644
--- a/modules/ripple_basics/ripple_basics.cpp
+++ b/modules/ripple_basics/ripple_basics.cpp
@@ -23,3 +23,5 @@
*/
#include "ripple_basics.h"
+
+//#include "src/cpp/ripple/Amount.cpp"
diff --git a/modules/ripple_ledger/ripple_ledger.cpp b/modules/ripple_ledger/ripple_ledger.cpp
new file mode 100644
index 0000000000..a307a153d4
--- /dev/null
+++ b/modules/ripple_ledger/ripple_ledger.cpp
@@ -0,0 +1,51 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+//==============================================================================
+
+/** Add this to get the @ref ripple_ledger module.
+
+ @file ripple_ledger.cpp
+ @ingroup ripple_ledger
+*/
+
+#include "ripple_ledger.h"
+
+#if 0
+#include "src/cpp/ripple/Contract.cpp"
+#include "src/cpp/ripple/Operation.cpp"
+
+#include "src/cpp/ripple/AcceptedLedger.cpp"
+#include "src/cpp/ripple/AccountItems.cpp"
+#include "src/cpp/ripple/AccountState.cpp"
+#endif
+#include "src/cpp/ripple/FeatureTable.cpp"
+#include "src/cpp/ripple/Ledger.cpp"
+#if 0
+#include "src/cpp/ripple/LedgerAcquire.cpp"
+#include "src/cpp/ripple/LedgerConsensus.cpp"
+#include "src/cpp/ripple/LedgerEntrySet.cpp"
+#include "src/cpp/ripple/LedgerFormats.cpp"
+#include "src/cpp/ripple/LedgerHistory.cpp"
+#include "src/cpp/ripple/LedgerMaster.cpp"
+#include "src/cpp/ripple/LedgerProposal.cpp"
+#include "src/cpp/ripple/LedgerTiming.cpp"
+#include "src/cpp/ripple/Offer.cpp"
+#include "src/cpp/ripple/OrderBook.cpp"
+#include "src/cpp/ripple/OrderBookDB.cpp"
+#include "src/cpp/ripple/RippleCalc.cpp"
+#include "src/cpp/ripple/RippleState.cpp"
+#endif
diff --git a/modules/ripple_ledger/ripple_ledger.h b/modules/ripple_ledger/ripple_ledger.h
new file mode 100644
index 0000000000..eef111df99
--- /dev/null
+++ b/modules/ripple_ledger/ripple_ledger.h
@@ -0,0 +1,37 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+
+ Permission to use, copy, modify, and/or distribute this software for any
+ purpose with or without fee is hereby granted, provided that the above
+ copyright notice and this permission notice appear in all copies.
+
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+//==============================================================================
+
+/** Include this to get the @ref ripple_ledger module.
+
+ @file ripple_ledger.h
+ @ingroup ripple_ledger
+*/
+
+/** Ledger classes.
+
+ This module exposes functionality for accessing and processing the ledger.
+
+ @defgroup ripple_ledger
+*/
+
+#ifndef RIPPLE_LEDGER_H
+#define RIPPLE_LEDGER_H
+
+
+
+#endif
diff --git a/newcoin.vcxproj b/newcoin.vcxproj
index 6b3268f35d..849af583c0 100644
--- a/newcoin.vcxproj
+++ b/newcoin.vcxproj
@@ -168,6 +168,7 @@
+
@@ -646,6 +647,7 @@
+
diff --git a/newcoin.vcxproj.filters b/newcoin.vcxproj.filters
index 7a530d9b5a..e83f634c67 100644
--- a/newcoin.vcxproj.filters
+++ b/newcoin.vcxproj.filters
@@ -89,6 +89,12 @@
{7f76ce57-c428-487e-97a0-979c0990a81d}
+
+ {505d1e20-ff6a-446b-8ce0-962e11b78820}
+
+
+ {c441b367-d096-401f-a3f0-5ac24290d7b7}
+
@@ -424,15 +430,6 @@
protoc_generated
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_main
@@ -457,54 +454,12 @@
1. Modules\ripple_main
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_net
1. Modules\ripple_net
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_ledger\transactions
@@ -568,9 +523,6 @@
1. Modules\ripple_main
-
- 1. Modules\ripple_main
-
1. Modules\ripple_ledger\contracts
@@ -616,9 +568,6 @@
1. Modules\ripple_ledger\serialization
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_net
@@ -688,6 +637,66 @@
1. Modules\ripple_basics
+
+ 1. Modules\ripple_basics\diagnostic
+
+
+ 1. Modules\ripple_ledger
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
@@ -1050,15 +1059,6 @@
protoc_generated
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_main
@@ -1086,54 +1086,12 @@
1. Modules\ripple_main
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_net
1. Modules\ripple_net
-
- 1. Modules\ripple_ledger
-
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_ledger\transactions
@@ -1188,9 +1146,6 @@
1. Modules\ripple_main
-
- 1. Modules\ripple_main
-
1. Modules\ripple_ledger\contracts
@@ -1236,9 +1191,6 @@
1. Modules\ripple_ledger\serialization
-
- 1. Modules\ripple_ledger
-
1. Modules\ripple_net
@@ -1314,6 +1266,66 @@
1. Modules\ripple_basics
+
+ 1. Modules\ripple_basics\diagnostic
+
+
+ 1. Modules\ripple_ledger
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
+
+ 1. Modules\ripple_ledger\processing
+
diff --git a/src/cpp/ripple/FeatureTable.cpp b/src/cpp/ripple/FeatureTable.cpp
index e4f99becc7..d5c94b2ec8 100644
--- a/src/cpp/ripple/FeatureTable.cpp
+++ b/src/cpp/ripple/FeatureTable.cpp
@@ -7,8 +7,6 @@
#include "ValidationCollection.h"
#include "HashPrefixes.h"
-SETUP_LOG();
-
void FeatureTable::addInitialFeatures()
{
// For each feature this version supports, call enableFeature.
@@ -175,13 +173,13 @@ void FeatureTable::reportValidations(const FeatureSet& set)
BOOST_FOREACH(const u256_int_pair& it, set.mVotes)
{
FeatureState& state = mFeatureMap[it.first];
- cLog(lsDEBUG) << "Feature " << it.first.GetHex() << " has " << it.second << " votes, needs " << threshold;
+ WriteLog (lsDEBUG, FeatureTable) << "Feature " << it.first.GetHex() << " has " << it.second << " votes, needs " << threshold;
if (it.second >= threshold)
{ // we have a majority
state.mLastMajority = set.mCloseTime;
if (state.mFirstMajority == 0)
{
- cLog(lsWARNING) << "Feature " << it.first << " attains a majority vote";
+ WriteLog (lsWARNING, FeatureTable) << "Feature " << it.first << " attains a majority vote";
state.mFirstMajority = set.mCloseTime;
changedFeatures.push_back(it.first);
}
@@ -190,7 +188,7 @@ void FeatureTable::reportValidations(const FeatureSet& set)
{
if (state.mFirstMajority != 0)
{
- cLog(lsWARNING) << "Feature " << it.first << " loses majority vote";
+ WriteLog (lsWARNING, FeatureTable) << "Feature " << it.first << " loses majority vote";
state.mFirstMajority = 0;
state.mLastMajority = 0;
changedFeatures.push_back(it.first);
@@ -254,12 +252,12 @@ void FeatureTable::doVoting(Ledger::ref lastClosedLedger, SHAMap::ref initialPos
BOOST_FOREACH(const uint256& uFeature, lFeatures)
{
- cLog(lsWARNING) << "We are voting for feature " << uFeature;
+ WriteLog (lsWARNING, FeatureTable) << "We are voting for feature " << uFeature;
SerializedTransaction trans(ttFEATURE);
trans.setFieldAccount(sfAccount, uint160());
trans.setFieldH256(sfFeature, uFeature);
uint256 txID = trans.getTransactionID();
- cLog(lsWARNING) << "Vote: " << txID;
+ WriteLog (lsWARNING, FeatureTable) << "Vote: " << txID;
Serializer s;
trans.add(s, true);
@@ -267,7 +265,7 @@ void FeatureTable::doVoting(Ledger::ref lastClosedLedger, SHAMap::ref initialPos
SHAMapItem::pointer tItem = boost::make_shared(txID, s.peekData());
if (!initialPosition->addGiveItem(tItem, true, false))
{
- cLog(lsWARNING) << "Ledger already had feature transaction";
+ WriteLog (lsWARNING, FeatureTable) << "Ledger already had feature transaction";
}
}
}
@@ -375,19 +373,19 @@ void FeeVote::doValidation(Ledger::ref lastClosedLedger, STObject& validation)
{
if (lastClosedLedger->getBaseFee() != mTargetBaseFee)
{
- cLog(lsINFO) << "Voting for base fee of " << mTargetBaseFee;
+ WriteLog (lsINFO, FeatureTable) << "Voting for base fee of " << mTargetBaseFee;
validation.setFieldU64(sfBaseFee, mTargetBaseFee);
}
if (lastClosedLedger->getReserve(0) != mTargetReserveBase)
{
- cLog(lsINFO) << "Voting for base resrve of " << mTargetReserveBase;
+ WriteLog (lsINFO, FeatureTable) << "Voting for base resrve of " << mTargetReserveBase;
validation.setFieldU32(sfReserveBase, mTargetReserveBase);
}
if (lastClosedLedger->getReserveInc() != mTargetReserveIncrement)
{
- cLog(lsINFO) << "Voting for reserve increment of " << mTargetReserveIncrement;
+ WriteLog (lsINFO, FeatureTable) << "Voting for reserve increment of " << mTargetReserveIncrement;
validation.setFieldU32(sfReserveIncrement, mTargetReserveIncrement);
}
}
@@ -433,7 +431,7 @@ void FeeVote::doVoting(Ledger::ref lastClosedLedger, SHAMap::ref initialPosition
(baseReserve != lastClosedLedger->getReserve(0)) ||
(incReserve != lastClosedLedger->getReserveInc()))
{
- cLog(lsWARNING) << "We are voting for a fee change: " << baseFee << "/" << baseReserve << "/" << incReserve;
+ WriteLog (lsWARNING, FeatureTable) << "We are voting for a fee change: " << baseFee << "/" << baseReserve << "/" << incReserve;
SerializedTransaction trans(ttFEE);
trans.setFieldAccount(sfAccount, uint160());
trans.setFieldU64(sfBaseFee, baseFee);
@@ -441,7 +439,7 @@ void FeeVote::doVoting(Ledger::ref lastClosedLedger, SHAMap::ref initialPosition
trans.setFieldU32(sfReserveBase, baseReserve);
trans.setFieldU32(sfReserveIncrement, incReserve);
uint256 txID = trans.getTransactionID();
- cLog(lsWARNING) << "Vote: " << txID;
+ WriteLog (lsWARNING, FeatureTable) << "Vote: " << txID;
Serializer s;
trans.add(s, true);
@@ -449,7 +447,7 @@ void FeeVote::doVoting(Ledger::ref lastClosedLedger, SHAMap::ref initialPosition
SHAMapItem::pointer tItem = boost::make_shared(txID, s.peekData());
if (!initialPosition->addGiveItem(tItem, true, false))
{
- cLog(lsWARNING) << "Ledger already had fee change";
+ WriteLog (lsWARNING, FeatureTable) << "Ledger already had fee change";
}
}
}
diff --git a/src/cpp/ripple/Log.h b/src/cpp/ripple/Log.h
index 5dee1c077d..af0a646664 100644
--- a/src/cpp/ripple/Log.h
+++ b/src/cpp/ripple/Log.h
@@ -56,7 +56,7 @@ protected:
public:
LogPartition(const char *name);
- bool doLog(LogSeverity s) { return s >= mMinSeverity; }
+ bool doLog(LogSeverity s) const { return s >= mMinSeverity; }
const std::string& getName() const { return mName; }
static bool setSeverity(const std::string& partition, LogSeverity severity);
@@ -110,6 +110,23 @@ public:
static std::string rotateLog(void);
};
+//-----
+
+template
+inline LogPartition const& getLogPartition ()
+{
+ static LogPartition logPartition (__FILE__);
+ return logPartition;
+}
+
+template
+inline Log getLog (LogSeverity level)
+{
+ return Log (level, getLogPartition ());
+}
+
+#define WriteLog(s, k) if (!getLogPartition ().doLog (s)) do {} while (0); else Log (s, getLogPartition ())
+
#endif
// vim:ts=4