diff options
author | Jim Posen <jim.posen@gmail.com> | 2018-08-29 22:15:50 -0700 |
---|---|---|
committer | Jim Posen <jim.posen@gmail.com> | 2019-04-06 12:10:55 -0700 |
commit | ff351050968f290787cd5fa456d394380f64fec3 (patch) | |
tree | c3becebf7085a6a37f8ec6db5862d90afe164d9f /src/blockfilter.cpp | |
parent | accc8b8b1842ed6d522b71a056777bcac8f39e81 (diff) | |
download | bitcoin-ff351050968f290787cd5fa456d394380f64fec3.tar.xz |
init: Add CLI option to enable block filter index.
Diffstat (limited to 'src/blockfilter.cpp')
-rw-r--r-- | src/blockfilter.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/blockfilter.cpp b/src/blockfilter.cpp index b96956212b..787390be31 100644 --- a/src/blockfilter.cpp +++ b/src/blockfilter.cpp @@ -2,6 +2,9 @@ // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. +#include <mutex> +#include <sstream> + #include <blockfilter.h> #include <crypto/siphash.h> #include <hash.h> @@ -218,6 +221,40 @@ bool BlockFilterTypeByName(const std::string& name, BlockFilterType& filter_type return false; } +const std::vector<BlockFilterType>& AllBlockFilterTypes() +{ + static std::vector<BlockFilterType> types; + + static std::once_flag flag; + std::call_once(flag, []() { + types.reserve(g_filter_types.size()); + for (auto entry : g_filter_types) { + types.push_back(entry.first); + } + }); + + return types; +} + +const std::string& ListBlockFilterTypes() +{ + static std::string type_list; + + static std::once_flag flag; + std::call_once(flag, []() { + std::stringstream ret; + bool first = true; + for (auto entry : g_filter_types) { + if (!first) ret << ", "; + ret << entry.second; + first = false; + } + type_list = ret.str(); + }); + + return type_list; +} + static GCSFilter::ElementSet BasicFilterElements(const CBlock& block, const CBlockUndo& block_undo) { |