From 7d2cc6887deb7af7ef9b70fcb3532b988ec6f914 Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Wed, 10 Jul 2013 13:06:28 -0700 Subject: [PATCH] Add null backend factory --- Builds/VisualStudio2012/RippleD.vcxproj | 7 ++ .../VisualStudio2012/RippleD.vcxproj.filters | 6 ++ .../node/ripple_NullBackendFactory.cpp | 71 +++++++++++++++++++ .../node/ripple_NullBackendFactory.h | 29 ++++++++ modules/ripple_app/ripple_app.cpp | 4 +- 5 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 modules/ripple_app/node/ripple_NullBackendFactory.cpp create mode 100644 modules/ripple_app/node/ripple_NullBackendFactory.h diff --git a/Builds/VisualStudio2012/RippleD.vcxproj b/Builds/VisualStudio2012/RippleD.vcxproj index ff1e40ed11..1887c76056 100644 --- a/Builds/VisualStudio2012/RippleD.vcxproj +++ b/Builds/VisualStudio2012/RippleD.vcxproj @@ -43,6 +43,12 @@ true true + + true + true + true + true + true true @@ -1345,6 +1351,7 @@ + diff --git a/Builds/VisualStudio2012/RippleD.vcxproj.filters b/Builds/VisualStudio2012/RippleD.vcxproj.filters index 72f166073d..3cb46b0943 100644 --- a/Builds/VisualStudio2012/RippleD.vcxproj.filters +++ b/Builds/VisualStudio2012/RippleD.vcxproj.filters @@ -861,6 +861,9 @@ [1] Ripple\ripple_app\node + + [1] Ripple\ripple_app\node + @@ -1608,6 +1611,9 @@ [1] Ripple\ripple_app\node + + [1] Ripple\ripple_app\node + diff --git a/modules/ripple_app/node/ripple_NullBackendFactory.cpp b/modules/ripple_app/node/ripple_NullBackendFactory.cpp new file mode 100644 index 0000000000..6ffb0d8299 --- /dev/null +++ b/modules/ripple_app/node/ripple_NullBackendFactory.cpp @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +/* + Copyright (c) 2011-2013, OpenCoin, Inc. +*/ +//============================================================================== + +class NullBackendFactory::Backend : public NodeStore::Backend +{ +public: + Backend () + { + } + + ~Backend () + { + } + + std::string getDataBaseName() + { + return std::string (); + } + + bool store (NodeObject::ref obj) + { + return false; + } + + bool bulkStore (const std::vector< NodeObject::pointer >& objs) + { + return false; + } + + NodeObject::pointer retrieve (uint256 const& hash) + { + return NodeObject::pointer (); + } + + void visitAll (FUNCTION_TYPE func) + { + } +}; + +//------------------------------------------------------------------------------ + +NullBackendFactory::NullBackendFactory () +{ +} + +NullBackendFactory::~NullBackendFactory () +{ +} + +NullBackendFactory& NullBackendFactory::getInstance () +{ + static NullBackendFactory instance; + + return instance; +} + +String NullBackendFactory::getName () const +{ + return "none"; +} + +NodeStore::Backend* NullBackendFactory::createInstance (StringPairArray const& keyValues) +{ + return new NullBackendFactory::Backend; +} + +//------------------------------------------------------------------------------ + diff --git a/modules/ripple_app/node/ripple_NullBackendFactory.h b/modules/ripple_app/node/ripple_NullBackendFactory.h new file mode 100644 index 0000000000..7112473384 --- /dev/null +++ b/modules/ripple_app/node/ripple_NullBackendFactory.h @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +/* + Copyright (c) 2011-2013, OpenCoin, Inc. +*/ +//============================================================================== + +#ifndef RIPPLE_NULLBACKENDFACTORY_H_INCLUDED +#define RIPPLE_NULLBACKENDFACTORY_H_INCLUDED + +/** Factory to produce a null backend. + + This is for standalone / testing mode. +*/ +class NullBackendFactory : public NodeStore::BackendFactory +{ +private: + class Backend; + + NullBackendFactory (); + ~NullBackendFactory (); + +public: + static NullBackendFactory& getInstance (); + + String getName () const; + NodeStore::Backend* createInstance (StringPairArray const& keyValues); +}; + +#endif diff --git a/modules/ripple_app/ripple_app.cpp b/modules/ripple_app/ripple_app.cpp index 3df7dd400c..130e11334d 100644 --- a/modules/ripple_app/ripple_app.cpp +++ b/modules/ripple_app/ripple_app.cpp @@ -96,8 +96,9 @@ namespace ripple #include "node/ripple_NodeObject.h" #include "node/ripple_NodeStore.h" -#include "node/ripple_SqliteBackendFactory.h" #include "node/ripple_LevelDBBackendFactory.h" +#include "node/ripple_NullBackendFactory.h" +#include "node/ripple_SqliteBackendFactory.h" #include "src/cpp/ripple/ripple_SHAMapItem.h" #include "src/cpp/ripple/ripple_SHAMapNode.h" @@ -237,6 +238,7 @@ static const uint64 tenTo17m1 = tenTo17 - 1; #include "node/ripple_NodeObject.cpp" #include "node/ripple_NodeStore.cpp" #include "node/ripple_LevelDBBackendFactory.cpp" +#include "node/ripple_NullBackendFactory.cpp" #include "node/ripple_SqliteBackendFactory.cpp" #include "src/cpp/ripple/Ledger.cpp"