diff --git a/Builds/VisualStudio2012/RippleD.vcxproj b/Builds/VisualStudio2012/RippleD.vcxproj
index 0ef518fdb..357c14a63 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj
+++ b/Builds/VisualStudio2012/RippleD.vcxproj
@@ -37,13 +37,13 @@
true
true
-
+
true
true
true
true
-
+
true
true
true
@@ -1344,8 +1344,8 @@
-
-
+
+
diff --git a/Builds/VisualStudio2012/RippleD.vcxproj.filters b/Builds/VisualStudio2012/RippleD.vcxproj.filters
index d556c7769..36a921803 100644
--- a/Builds/VisualStudio2012/RippleD.vcxproj.filters
+++ b/Builds/VisualStudio2012/RippleD.vcxproj.filters
@@ -849,18 +849,18 @@
[1] Ripple\ripple_basio\boost
-
- [1] Ripple\ripple_app\node
-
-
- [1] Ripple\ripple_app\node
-
[1] Ripple\ripple_app\node
[1] Ripple\ripple_app\node
+
+ [1] Ripple\ripple_app\node
+
+
+ [1] Ripple\ripple_app\node
+
@@ -1593,12 +1593,6 @@
[1] Ripple\ripple_basio\boost
-
- [1] Ripple\ripple_app\node
-
-
- [1] Ripple\ripple_app\node
-
[1] Ripple\ripple_app\_data
@@ -1608,6 +1602,12 @@
[1] Ripple\ripple_app\node
+
+ [1] Ripple\ripple_app\node
+
+
+ [1] Ripple\ripple_app\node
+
diff --git a/modules/ripple_app/node/ripple_HSBELevelDB.cpp b/modules/ripple_app/node/ripple_HSBELevelDB.cpp
deleted file mode 100644
index a6a38a807..000000000
--- a/modules/ripple_app/node/ripple_HSBELevelDB.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-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(NodeObject::ref obj)
-{
- Blob blob (toBlob (obj));
- return mDB->Put (leveldb::WriteOptions (),
- leveldb::Slice (reinterpret_cast(obj->getHash ().begin ()), 256 / 8),
- leveldb::Slice (reinterpret_cast(&blob.front ()), blob.size ())).ok ();
-}
-
-bool HSBELevelDB::bulkStore(const std::vector< NodeObject::pointer >& objs)
-{
- leveldb::WriteBatch batch;
-
- BOOST_FOREACH (NodeObject::ref obj, objs)
- {
- Blob blob (toBlob (obj));
- batch.Put (
- leveldb::Slice (reinterpret_cast(obj->getHash ().begin ()), 256 / 8),
- leveldb::Slice (reinterpret_cast(&blob.front ()), blob.size ()));
- }
- return mDB->Write (leveldb::WriteOptions (), &batch).ok ();
-}
-
-NodeObject::pointer HSBELevelDB::retrieve(uint256 const& hash)
-{
- std::string sData;
- if (!mDB->Get (leveldb::ReadOptions (),
- leveldb::Slice (reinterpret_cast(hash.begin ()), 256 / 8), &sData).ok ())
- {
- return NodeObject::pointer();
- }
- return fromBinary(hash, &sData[0], sData.size ());
-}
-
-void HSBELevelDB::visitAll(FUNCTION_TYPE 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(NodeObject::ref obj)
-{
- Blob rawData (9 + obj->getData ().size ());
- unsigned char* bufPtr = &rawData.front();
-
- *reinterpret_cast (bufPtr + 0) = ntohl (obj->getIndex ());
- *reinterpret_cast (bufPtr + 4) = ntohl (obj->getIndex ());
- * (bufPtr + 8) = static_cast (obj->getType ());
- memcpy (bufPtr + 9, &obj->getData ().front (), obj->getData ().size ());
-
- return rawData;
-}
-
-NodeObject::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 (data));
- int htype = data[8];
-
- return boost::make_shared (static_cast (htype), index,
- data + 9, size - 9, hash);
-}
diff --git a/modules/ripple_app/node/ripple_HSBELevelDB.h b/modules/ripple_app/node/ripple_HSBELevelDB.h
deleted file mode 100644
index 7abf10f99..000000000
--- a/modules/ripple_app/node/ripple_HSBELevelDB.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef HSBELEVELDB_H
-#define HSBELEVELDB_H
-
-class HSBELevelDB : public NodeStore::Backend
-{
-public:
- HSBELevelDB(std::string const& path);
- ~HSBELevelDB();
-
- std::string getBackEndName()
- {
- return "LevelDB";
- }
-
- std::string getDataBaseName();
-
- bool store(NodeObject::ref);
- bool bulkStore(const std::vector< NodeObject::pointer >&);
-
- NodeObject::pointer retrieve(uint256 const& hash);
-
- void visitAll(FUNCTION_TYPE);
-
-private:
- std::string mName;
- leveldb::DB* mDB;
-
- Blob toBlob(NodeObject::ref);
- NodeObject::pointer fromBinary(uint256 const& hash, char const* data, int size);
-};
-
-#endif
diff --git a/modules/ripple_app/node/ripple_HSBESqlite.cpp b/modules/ripple_app/node/ripple_HSBESqlite.cpp
deleted file mode 100644
index 368ea9421..000000000
--- a/modules/ripple_app/node/ripple_HSBESqlite.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-
-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(NodeObject::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< NodeObject::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(NodeObject::ref object, objects)
- {
- bind(pSt, object);
- pSt.step();
- pSt.reset();
- }
-
- pStE.step();
- pStE.reset();
-
- return true;
-
-}
-
-NodeObject::pointer HSBESQLite::retrieve(uint256 const& hash)
-{
- NodeObject::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(getType(pSt.peekString(0)), pSt.getUInt32(1), pSt.getBlob(2), hash);
-
- pSt.reset();
- }
-
- return ret;
-}
-
-void HSBESQLite::visitAll(FUNCTION_TYPE 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(getType(pSt.peekString(0)), pSt.getUInt32(1), pSt.getBlob(2), hash));
- }
-
- pSt.reset();
-}
-
-void HSBESQLite::bind(SqliteStatement& statement, NodeObject::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());
-}
-
-NodeObjectType HSBESQLite::getType(std::string const& type)
-{
- NodeObjectType 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;
-}
diff --git a/modules/ripple_app/node/ripple_HSBESqlite.h b/modules/ripple_app/node/ripple_HSBESqlite.h
deleted file mode 100644
index cd0945700..000000000
--- a/modules/ripple_app/node/ripple_HSBESqlite.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef HSBESQLITE_H
-#define HSBESQLITE_H
-
-class HSBESQLite : public NodeStore::Backend
-{
-public:
- HSBESQLite(std::string const& path);
- ~HSBESQLite();
-
- std::string getBackEndName()
- {
- return "SQLite";
- }
-
- std::string getDataBaseName();
-
- bool store(NodeObject::ref);
- bool bulkStore(const std::vector< NodeObject::pointer >&);
-
- NodeObject::pointer retrieve(uint256 const& hash);
-
- void visitAll(FUNCTION_TYPE);
-
-private:
- std::string mName;
- DatabaseCon* mDb;
-
- void bind(SqliteStatement& statement, NodeObject::ref object);
- NodeObjectType getType(std::string const&);
-};
-
-#endif
diff --git a/modules/ripple_app/node/ripple_NodeStore.h b/modules/ripple_app/node/ripple_NodeStore.h
index ae232d7f3..6e3b64273 100644
--- a/modules/ripple_app/node/ripple_NodeStore.h
+++ b/modules/ripple_app/node/ripple_NodeStore.h
@@ -56,7 +56,7 @@ public:
/** Create an instance of this factory's backend.
*/
- virtual Backend* createInstance (HashMap const& keyValueParameters);
+ virtual Backend* createInstance (HashMap const& keyValueParameters) = 0;
};
public:
diff --git a/modules/ripple_app/node/ripple_NodeStoreLevelDB.cpp b/modules/ripple_app/node/ripple_NodeStoreLevelDB.cpp
new file mode 100644
index 000000000..b02cdd3eb
--- /dev/null
+++ b/modules/ripple_app/node/ripple_NodeStoreLevelDB.cpp
@@ -0,0 +1,142 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
+
+class LevelDBBackendFactory::Backend : public NodeStore::Backend
+{
+public:
+ Backend (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()));
+ }
+
+ ~Backend ()
+ {
+ delete mDB;
+ }
+
+ std::string getDataBaseName()
+ {
+ return mName;
+ }
+
+ bool store (NodeObject::ref obj)
+ {
+ Blob blob (toBlob (obj));
+ return mDB->Put (leveldb::WriteOptions (),
+ leveldb::Slice (reinterpret_cast(obj->getHash ().begin ()), 256 / 8),
+ leveldb::Slice (reinterpret_cast(&blob.front ()), blob.size ())).ok ();
+ }
+
+ bool bulkStore (const std::vector< NodeObject::pointer >& objs)
+ {
+ leveldb::WriteBatch batch;
+
+ BOOST_FOREACH (NodeObject::ref obj, objs)
+ {
+ Blob blob (toBlob (obj));
+ batch.Put (
+ leveldb::Slice (reinterpret_cast(obj->getHash ().begin ()), 256 / 8),
+ leveldb::Slice (reinterpret_cast(&blob.front ()), blob.size ()));
+ }
+ return mDB->Write (leveldb::WriteOptions (), &batch).ok ();
+ }
+
+ NodeObject::pointer retrieve (uint256 const& hash)
+ {
+ std::string sData;
+ if (!mDB->Get (leveldb::ReadOptions (),
+ leveldb::Slice (reinterpret_cast(hash.begin ()), 256 / 8), &sData).ok ())
+ {
+ return NodeObject::pointer();
+ }
+ return fromBinary(hash, &sData[0], sData.size ());
+ }
+
+ void visitAll (FUNCTION_TYPE 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 toBlob(NodeObject::ref obj)
+ {
+ Blob rawData (9 + obj->getData ().size ());
+ unsigned char* bufPtr = &rawData.front();
+
+ *reinterpret_cast (bufPtr + 0) = ntohl (obj->getIndex ());
+ *reinterpret_cast (bufPtr + 4) = ntohl (obj->getIndex ());
+ * (bufPtr + 8) = static_cast (obj->getType ());
+ memcpy (bufPtr + 9, &obj->getData ().front (), obj->getData ().size ());
+
+ return rawData;
+ }
+
+ NodeObject::pointer fromBinary(uint256 const& hash,
+ char const* data, int size)
+ {
+ if (size < 9)
+ throw std::runtime_error ("undersized object");
+
+ uint32 index = htonl (*reinterpret_cast (data));
+ int htype = data[8];
+
+ return boost::make_shared (static_cast (htype), index,
+ data + 9, size - 9, hash);
+ }
+
+private:
+ std::string mName;
+ leveldb::DB* mDB;
+};
+
+//------------------------------------------------------------------------------
+
+LevelDBBackendFactory::LevelDBBackendFactory ()
+{
+}
+
+LevelDBBackendFactory::~LevelDBBackendFactory ()
+{
+}
+
+LevelDBBackendFactory& LevelDBBackendFactory::getInstance ()
+{
+ static LevelDBBackendFactory instance;
+
+ return instance;
+}
+
+String LevelDBBackendFactory::getName () const
+{
+ return "LevelDB";
+}
+
+NodeStore::Backend* LevelDBBackendFactory::createInstance (HashMap const& keyValueParameters)
+{
+ return nullptr;
+}
+
+//------------------------------------------------------------------------------
+
diff --git a/modules/ripple_app/node/ripple_NodeStoreLevelDB.h b/modules/ripple_app/node/ripple_NodeStoreLevelDB.h
new file mode 100644
index 000000000..cc53c8595
--- /dev/null
+++ b/modules/ripple_app/node/ripple_NodeStoreLevelDB.h
@@ -0,0 +1,27 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
+
+#ifndef RIPPLE_NODESTORELEVELDB_H_INCLUDED
+#define RIPPLE_NODESTORELEVELDB_H_INCLUDED
+
+/** Factory to produce LevelDB backends for the NodeStore.
+*/
+class LevelDBBackendFactory : public NodeStore::BackendFactory
+{
+private:
+ class Backend;
+
+ LevelDBBackendFactory ();
+ ~LevelDBBackendFactory ();
+
+public:
+ static LevelDBBackendFactory& getInstance ();
+
+ String getName () const;
+ NodeStore::Backend* createInstance (HashMap const& keyValueParameters);
+};
+
+#endif
diff --git a/modules/ripple_app/node/ripple_NodeStoreSqlite.cpp b/modules/ripple_app/node/ripple_NodeStoreSqlite.cpp
new file mode 100644
index 000000000..82b4b488e
--- /dev/null
+++ b/modules/ripple_app/node/ripple_NodeStoreSqlite.cpp
@@ -0,0 +1,165 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
+
+class SqliteBackendFactory::Backend : public NodeStore::Backend
+{
+public:
+ Backend(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)));
+ }
+
+ Backend()
+ {
+ delete mDb;
+ }
+
+ std::string getDataBaseName()
+ {
+ return mName;
+ }
+
+ bool store(NodeObject::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 bulkStore(const std::vector< NodeObject::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(NodeObject::ref object, objects)
+ {
+ bind(pSt, object);
+ pSt.step();
+ pSt.reset();
+ }
+
+ pStE.step();
+ pStE.reset();
+
+ return true;
+
+ }
+
+ NodeObject::pointer retrieve(uint256 const& hash)
+ {
+ NodeObject::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(getType(pSt.peekString(0)), pSt.getUInt32(1), pSt.getBlob(2), hash);
+
+ pSt.reset();
+ }
+
+ return ret;
+ }
+
+ void visitAll(FUNCTION_TYPE 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(getType(pSt.peekString(0)), pSt.getUInt32(1), pSt.getBlob(2), hash));
+ }
+
+ pSt.reset();
+ }
+
+ void bind(SqliteStatement& statement, NodeObject::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());
+ }
+
+ NodeObjectType getType(std::string const& type)
+ {
+ NodeObjectType 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;
+ }
+
+private:
+ std::string mName;
+ DatabaseCon* mDb;
+};
+
+//------------------------------------------------------------------------------
+
+SqliteBackendFactory::SqliteBackendFactory ()
+{
+}
+
+SqliteBackendFactory::~SqliteBackendFactory ()
+{
+}
+
+SqliteBackendFactory& SqliteBackendFactory::getInstance ()
+{
+ static SqliteBackendFactory instance;
+
+ return instance;
+}
+
+String SqliteBackendFactory::getName () const
+{
+ return "Sqlite";
+}
+
+NodeStore::Backend* SqliteBackendFactory::createInstance (HashMap const& keyValueParameters)
+{
+ return new Backend (keyValueParameters ["path"].toStdString ());
+}
diff --git a/modules/ripple_app/node/ripple_NodeStoreSqlite.h b/modules/ripple_app/node/ripple_NodeStoreSqlite.h
new file mode 100644
index 000000000..9ee4ff9e4
--- /dev/null
+++ b/modules/ripple_app/node/ripple_NodeStoreSqlite.h
@@ -0,0 +1,27 @@
+//------------------------------------------------------------------------------
+/*
+ Copyright (c) 2011-2013, OpenCoin, Inc.
+*/
+//==============================================================================
+
+#ifndef RIPPLE_NODESTORESQLITE_H_INCLUDED
+#define RIPPLE_NODESTORESQLITE_H_INCLUDED
+
+/** Factory to produce SQLite backends for the NodeStore.
+*/
+class SqliteBackendFactory : public NodeStore::BackendFactory
+{
+private:
+ class Backend;
+
+ SqliteBackendFactory ();
+ ~SqliteBackendFactory ();
+
+public:
+ static SqliteBackendFactory& getInstance ();
+
+ String getName () const;
+ NodeStore::Backend* createInstance (HashMap const& keyValueParameters);
+};
+
+#endif
diff --git a/modules/ripple_app/ripple_app.cpp b/modules/ripple_app/ripple_app.cpp
index 210aa4723..8f0eadcc6 100644
--- a/modules/ripple_app/ripple_app.cpp
+++ b/modules/ripple_app/ripple_app.cpp
@@ -96,8 +96,8 @@ namespace ripple
#include "node/ripple_NodeObject.h"
#include "node/ripple_NodeStore.h"
-#include "node/ripple_HSBELevelDB.h"
-#include "node/ripple_HSBESqlite.h"
+#include "node/ripple_NodeStoreLevelDB.h"
+#include "node/ripple_NodeStoreSqlite.h"
#include "src/cpp/ripple/ripple_SHAMapItem.h"
#include "src/cpp/ripple/ripple_SHAMapNode.h"
@@ -236,8 +236,8 @@ static const uint64 tenTo17m1 = tenTo17 - 1;
#include "basics/ripple_RPCServerHandler.cpp"
#include "node/ripple_NodeObject.cpp"
#include "node/ripple_NodeStore.cpp"
-#include "node/ripple_HSBELevelDB.cpp"
-#include "node/ripple_HSBESqlite.cpp"
+#include "node/ripple_NodeStoreLevelDB.cpp"
+#include "node/ripple_NodeStoreSqlite.cpp"
#include "src/cpp/ripple/Ledger.cpp"
#include "src/cpp/ripple/ripple_SHAMapDelta.cpp"