Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 15 additions & 15 deletions include/bitcoin/database/impl/query/optional.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ namespace database {
// private/static
TEMPLATE
template <typename Functor>
inline code CLASS::parallel_address_transform(const std::atomic_bool& cancel,
inline code CLASS::parallel_address_transform(std::atomic_bool& cancel,
outpoints& out, const output_links& links, Functor&& functor) NOEXCEPT
{
constexpr auto parallel = poolstl::execution::par;
Expand Down Expand Up @@ -65,8 +65,8 @@ inline code CLASS::parallel_address_transform(const std::atomic_bool& cancel,

// protected
TEMPLATE
code CLASS::to_address_outputs(const std::atomic_bool& cancel,
output_links& out, const hash_digest& key) const NOEXCEPT
code CLASS::to_address_outputs(std::atomic_bool& cancel, output_links& out,
const hash_digest& key) const NOEXCEPT
{
// Pushing into the vector is more efficient than precomputation of size.
out.clear();
Expand All @@ -87,8 +87,8 @@ code CLASS::to_address_outputs(const std::atomic_bool& cancel,

// protected
TEMPLATE
code CLASS::get_address_outputs_turbo(const std::atomic_bool& cancel,
outpoints& out, const hash_digest& key) const NOEXCEPT
code CLASS::get_address_outputs_turbo(std::atomic_bool& cancel, outpoints& out,
const hash_digest& key) const NOEXCEPT
{
out.clear();
output_links links{};
Expand All @@ -106,8 +106,8 @@ code CLASS::get_address_outputs_turbo(const std::atomic_bool& cancel,
}

TEMPLATE
code CLASS::get_address_outputs(const std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, bool turbo) const NOEXCEPT
code CLASS::get_address_outputs(std::atomic_bool& cancel, outpoints& out,
const hash_digest& key, bool turbo) const NOEXCEPT
{
if (turbo && store_.turbo())
return get_address_outputs_turbo(cancel, out, key);
Expand All @@ -130,7 +130,7 @@ code CLASS::get_address_outputs(const std::atomic_bool& cancel,

// protected
TEMPLATE
code CLASS::get_confirmed_unspent_outputs_turbo(const std::atomic_bool& cancel,
code CLASS::get_confirmed_unspent_outputs_turbo(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key) const NOEXCEPT
{
out.clear();
Expand All @@ -151,7 +151,7 @@ code CLASS::get_confirmed_unspent_outputs_turbo(const std::atomic_bool& cancel,
}

TEMPLATE
code CLASS::get_confirmed_unspent_outputs(const std::atomic_bool& cancel,
code CLASS::get_confirmed_unspent_outputs(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, bool turbo) const NOEXCEPT
{
if (turbo && store_.turbo())
Expand All @@ -176,7 +176,7 @@ code CLASS::get_confirmed_unspent_outputs(const std::atomic_bool& cancel,

// protected
TEMPLATE
code CLASS::get_minimum_unspent_outputs_turbo(const std::atomic_bool& cancel,
code CLASS::get_minimum_unspent_outputs_turbo(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, uint64_t minimum) const NOEXCEPT
{
out.clear();
Expand Down Expand Up @@ -207,9 +207,9 @@ code CLASS::get_minimum_unspent_outputs_turbo(const std::atomic_bool& cancel,
}

TEMPLATE
code CLASS::get_minimum_unspent_outputs(const std::atomic_bool& cancel,
outpoints& out, const hash_digest& key,
uint64_t minimum, bool turbo) const NOEXCEPT
code CLASS::get_minimum_unspent_outputs(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, uint64_t minimum,
bool turbo) const NOEXCEPT
{
if (turbo && store_.turbo())
return get_minimum_unspent_outputs_turbo(cancel, out, key, minimum);
Expand Down Expand Up @@ -239,8 +239,8 @@ code CLASS::get_minimum_unspent_outputs(const std::atomic_bool& cancel,
}

TEMPLATE
code CLASS::get_confirmed_balance(const std::atomic_bool& cancel,
uint64_t& balance, const hash_digest& key, bool turbo) const NOEXCEPT
code CLASS::get_confirmed_balance(std::atomic_bool& cancel, uint64_t& balance,
const hash_digest& key, bool turbo) const NOEXCEPT
{
outpoints outs{};
if (code ec = get_confirmed_unspent_outputs(cancel, outs, key, turbo))
Expand Down
30 changes: 14 additions & 16 deletions include/bitcoin/database/query.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,8 +314,8 @@ class query
tx_link top_tx(size_t bucket) const NOEXCEPT;

/// optional enumeration
code to_address_outputs(const std::atomic_bool& cancel,
output_links& out, const hash_digest& key) const NOEXCEPT;
code to_address_outputs(std::atomic_bool& cancel, output_links& out,
const hash_digest& key) const NOEXCEPT;

/// Archive reads.
/// -----------------------------------------------------------------------
Expand Down Expand Up @@ -553,14 +553,13 @@ class query
/// Optional Tables.
/// -----------------------------------------------------------------------

code get_address_outputs(const std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, bool turbo=false) const NOEXCEPT;
code get_confirmed_unspent_outputs(const std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, bool turbo=false) const NOEXCEPT;
code get_minimum_unspent_outputs(const std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, uint64_t value,
bool turbo=false) const NOEXCEPT;
code get_confirmed_balance(const std::atomic_bool& cancel,
code get_address_outputs(std::atomic_bool& cancel, outpoints& out,
const hash_digest& key, bool turbo=false) const NOEXCEPT;
code get_confirmed_unspent_outputs(std::atomic_bool& cancel, outpoints& out,
const hash_digest& key, bool turbo=false) const NOEXCEPT;
code get_minimum_unspent_outputs(std::atomic_bool& cancel, outpoints& out,
const hash_digest& key, uint64_t value, bool turbo=false) const NOEXCEPT;
code get_confirmed_balance(std::atomic_bool& cancel,
uint64_t& balance, const hash_digest& key, bool turbo=false) const NOEXCEPT;

bool is_filtered_body(const header_link& link) const NOEXCEPT;
Expand Down Expand Up @@ -695,11 +694,11 @@ class query
/// address
/// -----------------------------------------------------------------------

code get_address_outputs_turbo(const std::atomic_bool& cancel,
code get_address_outputs_turbo(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key) const NOEXCEPT;
code get_confirmed_unspent_outputs_turbo(const std::atomic_bool& cancel,
code get_confirmed_unspent_outputs_turbo(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key) const NOEXCEPT;
code get_minimum_unspent_outputs_turbo(const std::atomic_bool& cancel,
code get_minimum_unspent_outputs_turbo(std::atomic_bool& cancel,
outpoints& out, const hash_digest& key, uint64_t minimum) const NOEXCEPT;

/// tx_fk must be allocated.
Expand All @@ -712,9 +711,8 @@ class query
static inline bool push_bool(std_vector<Bool>& stack,
const Bool& element) NOEXCEPT;
template <typename Functor>
static inline code parallel_address_transform(
const std::atomic_bool& cancel, outpoints& out,
const output_links& links, Functor&& functor) NOEXCEPT;
static inline code parallel_address_transform(std::atomic_bool& cancel,
outpoints& out, const output_links& links, Functor&& functor) NOEXCEPT;

// Not thread safe.
size_t get_fork_() const NOEXCEPT;
Expand Down
24 changes: 12 additions & 12 deletions test/query/optional.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ BOOST_AUTO_TEST_CASE(query_optional__to_address_outputs__genesis__expected)
BOOST_REQUIRE(query.initialize(test::genesis));

output_links out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.to_address_outputs(cancel, out, genesis_address));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
BOOST_REQUIRE_EQUAL(out.front(), query.to_output(0, 0));
Expand All @@ -57,7 +57,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_address_outputs__turbo_genesis__expecte
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_address_outputs(cancel, out, genesis_address, true));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
////BOOST_REQUIRE_EQUAL(out.front(), query.to_output(0, 0));
Expand All @@ -73,7 +73,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_address_outputs__genesis__expected)
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_address_outputs(cancel, out, genesis_address));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
////BOOST_REQUIRE_EQUAL(out.front(), query.to_output(0, 0));
Expand All @@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_address_outputs__cancel__canceled_false
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{ true };
std::atomic_bool cancel{ true };
BOOST_REQUIRE_EQUAL(query.get_address_outputs(cancel, out, genesis_address), error::canceled);
BOOST_REQUIRE(out.empty());
}
Expand All @@ -106,7 +106,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_unspent_outputs__turbo_genesi
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_confirmed_unspent_outputs(cancel, out, genesis_address, true));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
////BOOST_REQUIRE_EQUAL(out.front(), 0);
Expand All @@ -122,7 +122,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_unspent_outputs__genesis__exp
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_confirmed_unspent_outputs(cancel, out, genesis_address));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
////BOOST_REQUIRE_EQUAL(out.front(), 0);
Expand All @@ -140,7 +140,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__turbo_above__e
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 5000000001, true));
BOOST_REQUIRE(out.empty());
}
Expand All @@ -155,7 +155,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__above__exclude
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 5000000001));
BOOST_REQUIRE(out.empty());
}
Expand All @@ -170,7 +170,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__at__included)
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 5000000000));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
////BOOST_REQUIRE_EQUAL(out.front(), 0);
Expand All @@ -186,7 +186,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_minimum_unspent_outputs__below__include
BOOST_REQUIRE(query.initialize(test::genesis));

outpoints out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_minimum_unspent_outputs(cancel, out, genesis_address, 0));
BOOST_REQUIRE_EQUAL(out.size(), 1u);
////BOOST_REQUIRE_EQUAL(out.front(), 0);
Expand All @@ -207,7 +207,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_balance__turbo_genesis__expec
BOOST_REQUIRE(query.initialize(test::genesis));

uint64_t out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_confirmed_balance(cancel, out, genesis_address, true));
BOOST_REQUIRE_EQUAL(out, 5000000000u);
}
Expand All @@ -222,7 +222,7 @@ BOOST_AUTO_TEST_CASE(query_optional__get_confirmed_balance__genesis__expected)
BOOST_REQUIRE(query.initialize(test::genesis));

uint64_t out{};
const std::atomic_bool cancel{};
std::atomic_bool cancel{};
BOOST_REQUIRE(!query.get_confirmed_balance(cancel, out, genesis_address));
BOOST_REQUIRE_EQUAL(out, 5000000000u);
}
Expand Down
Loading