Bring in backends from the dead branch

This commit is contained in:
Vinnie Falco
2013-07-10 10:21:42 -07:00
parent dd65bd8a72
commit 4b5daa70c9
14 changed files with 431 additions and 47 deletions

View File

@@ -25,6 +25,30 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HashedObject.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HashedObjectStore.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HSBELevelDB.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HSBESqlite.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\ripple_app.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -596,18 +620,6 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\ripple_HashedObject.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\ripple_HashedObjectStore.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\ripple_HashRouter.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@@ -1330,6 +1342,11 @@
<ClInclude Include="..\..\modules\ripple_app\basics\ripple_BuildVersion.h" />
<ClInclude Include="..\..\modules\ripple_app\basics\ripple_RPCServerHandler.h" />
<ClInclude Include="..\..\modules\ripple_app\basics\ripple_Version.h" />
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HashedObject.h" />
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HashedObjectStore.h" />
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HashStoreBE.h" />
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HSBELevelDB.h" />
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HSBESqlite.h" />
<ClInclude Include="..\..\modules\ripple_app\ripple_app.h" />
<ClInclude Include="..\..\modules\ripple_basics\containers\ripple_KeyCache.h" />
<ClInclude Include="..\..\modules\ripple_basics\containers\ripple_RangeSet.h" />
@@ -1439,9 +1456,8 @@
<ClInclude Include="..\..\src\cpp\ripple\ripple_CanonicalTXSet.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_Database.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_DatabaseCon.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_DBInit.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_DisputedTx.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_HashedObject.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_HashedObjectStore.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_IApplication.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_IFeatures.h" />
<ClInclude Include="..\..\src\cpp\ripple\ripple_IFeeVote.h" />

View File

@@ -145,6 +145,9 @@
<Filter Include="[1] Ripple\ripple_app\_misc\_consensus">
<UniqueIdentifier>{82a6d3f3-fa01-4cc6-9730-f928e61b9929}</UniqueIdentifier>
</Filter>
<Filter Include="[1] Ripple\ripple_app\node">
<UniqueIdentifier>{bd48a825-192f-4d5e-9230-661fdd65f9b6}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\Subtrees\sqlite\sqlite3.c">
@@ -549,12 +552,6 @@
<ClCompile Include="..\..\src\cpp\ripple\ripple_DBInit.cpp">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\ripple_HashedObject.cpp">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\ripple_HashedObjectStore.cpp">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClCompile>
<ClCompile Include="..\..\src\cpp\ripple\ripple_SqliteDatabase.cpp">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClCompile>
@@ -852,6 +849,18 @@
<ClCompile Include="..\..\modules\ripple_basio\boost\ripple_SslContext.cpp">
<Filter>[1] Ripple\ripple_basio\boost</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HSBELevelDB.cpp">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HSBESqlite.cpp">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HashedObject.cpp">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClCompile>
<ClCompile Include="..\..\modules\ripple_app\node\ripple_HashedObjectStore.cpp">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\Subtrees\sqlite\sqlite3.h">
@@ -1299,12 +1308,6 @@
<ClInclude Include="..\..\src\cpp\ripple\ripple_DatabaseCon.h">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\ripple_HashedObject.h">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\ripple_HashedObjectStore.h">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\ripple_SqliteDatabase.h">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClInclude>
@@ -1590,6 +1593,24 @@
<ClInclude Include="..\..\modules\ripple_basio\boost\ripple_SslContext.h">
<Filter>[1] Ripple\ripple_basio\boost</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HashStoreBE.h">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HSBELevelDB.h">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HSBESqlite.h">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClInclude>
<ClInclude Include="..\..\src\cpp\ripple\ripple_DBInit.h">
<Filter>[1] Ripple\ripple_app\_data</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HashedObject.h">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClInclude>
<ClInclude Include="..\..\modules\ripple_app\node\ripple_HashedObjectStore.h">
<Filter>[1] Ripple\ripple_app\node</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\src\cpp\ripple\ripple.proto" />

View File

@@ -0,0 +1,97 @@
HSBELevelDB::HSBELevelDB(std::string const& path) : mName(path), mDB(NULL)
{
leveldb::Options options;
options.create_if_missing = true;
options.block_cache = leveldb::NewLRUCache (theConfig.getSize (siHashNodeDBCache) * 1024 * 1024);
if (theConfig.NODE_SIZE >= 2)
options.filter_policy = leveldb::NewBloomFilterPolicy (10);
leveldb::Status status = leveldb::DB::Open (options, path, &mDB);
if (!status.ok () || mDB)
throw (std::runtime_error (std::string("Unable to open/create leveldb: ") + status.ToString()));
}
HSBELevelDB::~HSBELevelDB()
{
delete mDB;
}
std::string HSBELevelDB::getDataBaseName()
{
return mName;
}
bool HSBELevelDB::store(HashedObject::ref obj)
{
Blob blob (toBlob (obj));
return mDB->Put (leveldb::WriteOptions (),
leveldb::Slice (reinterpret_cast<char const*>(obj->getHash ().begin ()), 256 / 8),
leveldb::Slice (reinterpret_cast<char const*>(&blob.front ()), blob.size ())).ok ();
}
bool HSBELevelDB::bulkStore(const std::vector< HashedObject::pointer >& objs)
{
leveldb::WriteBatch batch;
BOOST_FOREACH (HashedObject::ref obj, objs)
{
Blob blob (toBlob (obj));
batch.Put (
leveldb::Slice (reinterpret_cast<char const*>(obj->getHash ().begin ()), 256 / 8),
leveldb::Slice (reinterpret_cast<char const*>(&blob.front ()), blob.size ()));
}
return mDB->Write (leveldb::WriteOptions (), &batch).ok ();
}
HashedObject::pointer HSBELevelDB::retrieve(uint256 const& hash)
{
std::string sData;
if (!mDB->Get (leveldb::ReadOptions (),
leveldb::Slice (reinterpret_cast<char const*>(hash.begin ()), 256 / 8), &sData).ok ())
{
return HashedObject::pointer();
}
return fromBinary(hash, &sData[0], sData.size ());
}
void HSBELevelDB::visitAll(FUNCTION_TYPE<void (HashedObject::pointer)> func)
{
leveldb::Iterator* it = mDB->NewIterator (leveldb::ReadOptions ());
for (it->SeekToFirst (); it->Valid (); it->Next ())
{
if (it->key ().size () == 256 / 8)
{
uint256 hash;
memcpy(hash.begin(), it->key ().data(), 256 / 8);
func (fromBinary (hash, it->value ().data (), it->value ().size ()));
}
}
}
Blob HSBELevelDB::toBlob(HashedObject::ref obj)
{
Blob rawData (9 + obj->getData ().size ());
unsigned char* bufPtr = &rawData.front();
*reinterpret_cast<uint32*> (bufPtr + 0) = ntohl (obj->getIndex ());
*reinterpret_cast<uint32*> (bufPtr + 4) = ntohl (obj->getIndex ());
* (bufPtr + 8) = static_cast<unsigned char> (obj->getType ());
memcpy (bufPtr + 9, &obj->getData ().front (), obj->getData ().size ());
return rawData;
}
HashedObject::pointer HSBELevelDB::fromBinary(uint256 const& hash,
char const* data, int size)
{
if (size < 9)
throw std::runtime_error ("undersized object");
uint32 index = htonl (*reinterpret_cast<const uint32*> (data));
int htype = data[8];
return boost::make_shared<HashedObject> (static_cast<HashedObjectType> (htype), index,
data + 9, size - 9, hash);
}

View File

@@ -0,0 +1,32 @@
#ifndef HSBELEVELDB_H
#define HSBELEVELDB_H
class HSBELevelDB : public HashStoreBE
{
public:
HSBELevelDB(std::string const& path);
~HSBELevelDB();
std::string getBackEndName()
{
return "LevelDB";
}
std::string getDataBaseName();
bool store(HashedObject::ref);
bool bulkStore(const std::vector< HashedObject::pointer >&);
HashedObject::pointer retrieve(uint256 const& hash);
void visitAll(FUNCTION_TYPE<void (HashedObject::pointer)>);
private:
std::string mName;
leveldb::DB* mDB;
Blob toBlob(HashedObject::ref);
HashedObject::pointer fromBinary(uint256 const& hash, char const* data, int size);
};
#endif

View File

@@ -0,0 +1,125 @@
HSBESQLite::HSBESQLite(std::string const& path) : mName(path)
{
mDb = new DatabaseCon(path, HashNodeDBInit, HashNodeDBCount);
mDb->getDB()->executeSQL(boost::str(boost::format("PRAGMA cache_size=-%d;") %
(theConfig.getSize(siHashNodeDBCache) * 1024)));
}
HSBESQLite::~HSBESQLite()
{
delete mDb;
}
std::string HSBESQLite::getDataBaseName()
{
return mName;
}
bool HSBESQLite::store(HashedObject::ref object)
{
ScopedLock sl(mDb->getDBLock());
static SqliteStatement pSt(mDb->getDB()->getSqliteDB(),
"INSERT OR IGNORE INTO CommittedObjects "
"(Hash,ObjType,LedgerIndex,Object) VALUES (?, ?, ?, ?);");
bind(pSt, object);
pSt.step();
pSt.reset();
return true;
}
bool HSBESQLite::bulkStore(const std::vector< HashedObject::pointer >& objects)
{
ScopedLock sl(mDb->getDBLock());
static SqliteStatement pStB(mDb->getDB()->getSqliteDB(), "BEGIN TRANSACTION;");
static SqliteStatement pStE(mDb->getDB()->getSqliteDB(), "END TRANSACTION;");
static SqliteStatement pSt(mDb->getDB()->getSqliteDB(),
"INSERT OR IGNORE INTO CommittedObjects "
"(Hash,ObjType,LedgerIndex,Object) VALUES (?, ?, ?, ?);");
pStB.step();
pStB.reset();
BOOST_FOREACH(HashedObject::ref object, objects)
{
bind(pSt, object);
pSt.step();
pSt.reset();
}
pStE.step();
pStE.reset();
return true;
}
HashedObject::pointer HSBESQLite::retrieve(uint256 const& hash)
{
HashedObject::pointer ret;
{
ScopedLock sl(mDb->getDBLock());
static SqliteStatement pSt(mDb->getDB()->getSqliteDB(),
"SELECT ObjType,LedgerIndex,Object FROM CommittedObjects WHERE Hash = ?;");
pSt.bind(1, hash.GetHex());
if (pSt.isRow(pSt.step()))
ret = boost::make_shared<HashedObject>(getType(pSt.peekString(0)), pSt.getUInt32(1), pSt.getBlob(2), hash);
pSt.reset();
}
return ret;
}
void HSBESQLite::visitAll(FUNCTION_TYPE<void (HashedObject::pointer)> func)
{
uint256 hash;
static SqliteStatement pSt(mDb->getDB()->getSqliteDB(),
"SELECT ObjType,LedgerIndex,Object,Hash FROM CommittedObjects;");
while (pSt.isRow(pSt.step()))
{
hash.SetHexExact(pSt.getString(3));
func(boost::make_shared<HashedObject>(getType(pSt.peekString(0)), pSt.getUInt32(1), pSt.getBlob(2), hash));
}
pSt.reset();
}
void HSBESQLite::bind(SqliteStatement& statement, HashedObject::ref object)
{
char const* type;
switch (object->getType())
{
case hotLEDGER: type = "L"; break;
case hotTRANSACTION: type = "T"; break;
case hotACCOUNT_NODE: type = "A"; break;
case hotTRANSACTION_NODE: type = "N"; break;
default: type = "U";
}
statement.bind(1, object->getHash().GetHex());
statement.bind(2, type);
statement.bind(3, object->getIndex());
statement.bindStatic(4, object->getData());
}
HashedObjectType HSBESQLite::getType(std::string const& type)
{
HashedObjectType htype = hotUNKNOWN;
if (!type.empty())
{
switch (type[0])
{
case 'L': htype = hotLEDGER; break;
case 'T': htype = hotTRANSACTION; break;
case 'A': htype = hotACCOUNT_NODE; break;
case 'N': htype = hotTRANSACTION_NODE; break;
}
}
return htype;
}

View File

@@ -0,0 +1,32 @@
#ifndef HSBESQLITE_H
#define HSBESQLITE_H
class HSBESQLite : public HashStoreBE
{
public:
HSBESQLite(std::string const& path);
~HSBESQLite();
std::string getBackEndName()
{
return "SQLite";
}
std::string getDataBaseName();
bool store(HashedObject::ref);
bool bulkStore(const std::vector< HashedObject::pointer >&);
HashedObject::pointer retrieve(uint256 const& hash);
void visitAll(FUNCTION_TYPE<void (HashedObject::pointer)>);
private:
std::string mName;
DatabaseCon* mDb;
void bind(SqliteStatement& statement, HashedObject::ref object);
HashedObjectType getType(std::string const&);
};
#endif

View File

@@ -0,0 +1,31 @@
#ifndef RIPPLE_HASHSTOREBE_H
#define RIPPLE_HASHSTOREBE_H
/** Back end for storing objects indexed by 256-bit hash
*/
class HashStoreBE
{
public:
typedef boost::shared_ptr<HashStoreBE> pointer;
HashStoreBE() { ; }
virtual ~HashStoreBE() { ; }
virtual std::string getBackEndName() = 0;
virtual std::string getDataBaseName() = 0;
// Store/retrieve a single object
// These functions must be thread safe
virtual bool store(HashedObject::ref) = 0;
virtual HashedObject::pointer retrieve(uint256 const &hash) = 0;
// Store a group of objects
// This function will only be called from a single thread
virtual bool bulkStore(const std::vector< HashedObject::pointer >&) = 0;
// Visit every object in the database
// This function will only be called during an import operation
virtual void visitAll(FUNCTION_TYPE<void (HashedObject::pointer)>) = 0;
};
#endif

View File

@@ -89,7 +89,17 @@ namespace ripple
// linearize the include sequence and view it in one place.
//
#include "src/cpp/ripple/ripple_HashedObject.h"
#include "src/cpp/ripple/ripple_Database.h"
#include "src/cpp/ripple/ripple_DatabaseCon.h"
#include "src/cpp/ripple/ripple_SqliteDatabase.h"
#include "src/cpp/ripple/ripple_DBInit.h"
#include "node/ripple_HashedObject.h"
#include "node/ripple_HashedObjectStore.h"
#include "node/ripple_HashStoreBE.h"
#include "node/ripple_HSBELevelDB.h"
#include "node/ripple_HSBESqlite.h"
#include "src/cpp/ripple/ripple_SHAMapItem.h"
#include "src/cpp/ripple/ripple_SHAMapNode.h"
#include "src/cpp/ripple/ripple_SHAMapTreeNode.h"
@@ -106,11 +116,8 @@ namespace ripple
#include "src/cpp/ripple/Ledger.h"
#include "src/cpp/ripple/SerializedValidation.h"
#include "src/cpp/ripple/ripple_ILoadManager.h"
#include "src/cpp/ripple/ripple_DatabaseCon.h"
#include "src/cpp/ripple/ripple_ProofOfWork.h"
#include "src/cpp/ripple/ripple_InfoSub.h"
#include "src/cpp/ripple/ripple_HashedObject.h"
#include "src/cpp/ripple/ripple_HashedObjectStore.h"
#include "src/cpp/ripple/ripple_OrderBook.h"
#include "src/cpp/ripple/ripple_SHAMapSyncFilters.h"
#include "src/cpp/ripple/ripple_IFeatures.h"
@@ -125,8 +132,6 @@ namespace ripple
#include "src/cpp/ripple/ripple_PeerSet.h"
#include "src/cpp/ripple/ripple_InboundLedger.h"
#include "src/cpp/ripple/ripple_InboundLedgers.h"
#include "src/cpp/ripple/ripple_Database.h"
#include "src/cpp/ripple/ripple_SqliteDatabase.h"
#include "src/cpp/ripple/ScriptData.h"
#include "src/cpp/ripple/Contract.h"
#include "src/cpp/ripple/Interpreter.h"
@@ -230,6 +235,10 @@ static const uint64 tenTo17m1 = tenTo17 - 1;
#if ! defined (RIPPLE_MAIN_PART) || RIPPLE_MAIN_PART == 1
#include "basics/ripple_RPCServerHandler.cpp"
#include "node/ripple_HashedObject.cpp"
#include "node/ripple_HashedObjectStore.cpp"
#include "node/ripple_HSBELevelDB.cpp"
#include "node/ripple_HSBESqlite.cpp"
#include "src/cpp/ripple/Ledger.cpp"
#include "src/cpp/ripple/ripple_SHAMapDelta.cpp"
@@ -240,12 +249,6 @@ static const uint64 tenTo17m1 = tenTo17 - 1;
#include "src/cpp/ripple/ripple_AccountItems.cpp"
#include "src/cpp/ripple/ripple_AccountState.cpp"
#include "src/cpp/ripple/ChangeTransactor.cpp"
#include "src/cpp/ripple/ripple_DBInit.cpp"
#include "src/cpp/ripple/Interpreter.cpp"
#include "src/cpp/ripple/LedgerTiming.cpp"
#include "src/cpp/ripple/ripple_Main.cpp"
#include "src/cpp/ripple/ripple_Offer.cpp"
#include "src/cpp/ripple/Operation.cpp"
#endif
@@ -337,6 +340,9 @@ static DH* handleTmpDh (SSL* ssl, int is_export, int iKeyLength)
#include "src/cpp/ripple/ripple_AcceptedLedgerTx.cpp"
#include "src/cpp/ripple/ripple_DatabaseCon.cpp"
#include "src/cpp/ripple/ripple_FeeVote.cpp"
#include "src/cpp/ripple/ripple_DBInit.cpp"
#include "src/cpp/ripple/Interpreter.cpp"
#include "src/cpp/ripple/LedgerTiming.cpp"
#endif
@@ -349,10 +355,11 @@ static DH* handleTmpDh (SSL* ssl, int is_export, int iKeyLength)
#include "src/cpp/ripple/ripple_Features.cpp"
#include "src/cpp/ripple/ripple_LocalCredentials.cpp"
#include "src/cpp/ripple/ripple_HashedObject.cpp"
#include "src/cpp/ripple/ripple_AcceptedLedger.cpp"
#include "src/cpp/ripple/ripple_DisputedTx.cpp"
#include "src/cpp/ripple/ripple_HashRouter.cpp"
#include "src/cpp/ripple/ripple_Main.cpp"
#include "src/cpp/ripple/ripple_Offer.cpp"
#endif
@@ -362,13 +369,13 @@ static DH* handleTmpDh (SSL* ssl, int is_export, int iKeyLength)
#include "src/cpp/ripple/NetworkOPs.cpp"
#include "src/cpp/ripple/ripple_Peers.cpp"
#include "src/cpp/ripple/ripple_HashedObjectStore.cpp"
#include "src/cpp/ripple/ripple_InboundLedgers.cpp"
#include "src/cpp/ripple/ripple_LedgerHistory.cpp"
#include "src/cpp/ripple/ripple_PathRequest.cpp"
#include "src/cpp/ripple/ripple_SerializedLedger.cpp"
#include "src/cpp/ripple/ripple_TransactionAcquire.cpp"
#include "src/cpp/ripple/Operation.cpp"
#endif

View File

@@ -335,13 +335,6 @@ Application::~Application ()
delete mEphemeralLDB;
}
// VFALCO TODO Tidy these up into some class with accessors.
//
extern const char* RpcDBInit[], *TxnDBInit[], *LedgerDBInit[], *WalletDBInit[], *HashNodeDBInit[],
*NetNodeDBInit[], *PathFindDBInit[];
extern int RpcDBCount, TxnDBCount, LedgerDBCount, WalletDBCount, HashNodeDBCount,
NetNodeDBCount, PathFindDBCount;
void Application::stop ()
{
WriteLog (lsINFO, Application) << "Received shutdown request";

View File

@@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_DBINIT_H_INCLUDED
#define RIPPLE_DBINIT_H_INCLUDED
// VFALCO TODO Tidy these up into a class with functions and return types.
extern const char* RpcDBInit[];
extern const char* TxnDBInit[];
extern const char* LedgerDBInit[];
extern const char* WalletDBInit[];
extern const char* HashNodeDBInit[];
// VFALCO TODO Figure out what these counts are for
extern int RpcDBCount;
extern int TxnDBCount;
extern int LedgerDBCount;
extern int WalletDBCount;
extern int HashNodeDBCount;
// VFALCO TODO Seems these two aren't used so delete EVERYTHING.
extern const char* NetNodeDBInit[];
extern const char* PathFindDBInit[];
extern int NetNodeDBCount;
extern int PathFindDBCount;
#endif