From 01b57e984c544e3030527110ec59e1f7e95606c2 Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Wed, 10 Jul 2013 13:05:01 -0700 Subject: [PATCH] Add broken import code for Vinnie to fix. --- modules/ripple_app/node/ripple_NodeStore.cpp | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/ripple_app/node/ripple_NodeStore.cpp b/modules/ripple_app/node/ripple_NodeStore.cpp index 40a256a173..629997e78b 100644 --- a/modules/ripple_app/node/ripple_NodeStore.cpp +++ b/modules/ripple_app/node/ripple_NodeStore.cpp @@ -219,3 +219,29 @@ NodeObject::pointer NodeStore::retrieve (uint256 const& hash) WriteLog (lsTRACE, NodeObject) << "HOS: " << hash << " fetch: in db"; return obj; } + +static void importFunc(HashStoreBE::pointer dest, std::vector& objects, + HashedObject::pointer object) +{ + if (objects.size() >= 128) + { + dest->bulkStore(objects); + objects.clear(); + objects.reserve(128); + } + objects.push_back(object); +} + +int HashedObjectStore::import (HashStoreBE::ref src, HashStoreBE::ref dest) +{ + WriteLog (lsWARNING, HashedObject) << "Node import from \"" + << src->getBackEndName() << ":" << src->getDataBaseName() + << "\" to \"" << dest->getBackEndName() << ":" << dest->getDataBaseName() << "\"."; + + std::vector objects; + objects.reserve(128); + src->visitAll(BIND_TYPE(&importFunc, dest, boost::ref(objects), P_1)); + + if (!objects.empty()) + dest->bulkStore(objects); +}