Skip to content

Commit

Permalink
Move related blockstore functions together (nanocurrency#3116)
Browse files Browse the repository at this point in the history
  • Loading branch information
wezrule authored Mar 5, 2021
1 parent 3c14951 commit a3e1ad1
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 67 deletions.
4 changes: 2 additions & 2 deletions nano/secure/blockstore.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -629,8 +629,6 @@ class block_store
virtual void account_del (nano::write_transaction const &, nano::account const &) = 0;
virtual bool account_exists (nano::transaction const &, nano::account const &) = 0;
virtual size_t account_count (nano::transaction const &) = 0;
virtual void confirmation_height_clear (nano::write_transaction const &, nano::account const &) = 0;
virtual void confirmation_height_clear (nano::write_transaction const &) = 0;
virtual nano::store_iterator<nano::account, nano::account_info> accounts_begin (nano::transaction const &, nano::account const &) const = 0;
virtual nano::store_iterator<nano::account, nano::account_info> accounts_begin (nano::transaction const &) const = 0;
virtual nano::store_iterator<nano::account, nano::account_info> accounts_end () const = 0;
Expand Down Expand Up @@ -693,6 +691,8 @@ class block_store
virtual bool confirmation_height_exists (nano::transaction const & transaction_a, nano::account const & account_a) const = 0;
virtual void confirmation_height_del (nano::write_transaction const & transaction_a, nano::account const & account_a) = 0;
virtual uint64_t confirmation_height_count (nano::transaction const & transaction_a) = 0;
virtual void confirmation_height_clear (nano::write_transaction const &, nano::account const &) = 0;
virtual void confirmation_height_clear (nano::write_transaction const &) = 0;
virtual nano::store_iterator<nano::account, nano::confirmation_height_info> confirmation_height_begin (nano::transaction const & transaction_a, nano::account const & account_a) const = 0;
virtual nano::store_iterator<nano::account, nano::confirmation_height_info> confirmation_height_begin (nano::transaction const & transaction_a) const = 0;
virtual nano::store_iterator<nano::account, nano::confirmation_height_info> confirmation_height_end () const = 0;
Expand Down
130 changes: 65 additions & 65 deletions nano/secure/blockstore_partial.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,50 +56,6 @@ class block_store_partial : public block_store
frontier_put (transaction_a, hash_l, network_params.ledger.genesis_account);
}

nano::uint128_t block_balance (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override
{
auto block (block_get (transaction_a, hash_a));
release_assert (block);
nano::uint128_t result (block_balance_calculated (block));
return result;
}

bool account_exists (nano::transaction const & transaction_a, nano::account const & account_a) override
{
auto iterator (accounts_begin (transaction_a, account_a));
return iterator != accounts_end () && nano::account (iterator->first) == account_a;
}

void confirmation_height_clear (nano::write_transaction const & transaction_a, nano::account const & account_a) override
{
confirmation_height_del (transaction_a, account_a);
}

void confirmation_height_clear (nano::write_transaction const & transaction_a) override
{
drop (transaction_a, nano::tables::confirmation_height);
}

bool pending_exists (nano::transaction const & transaction_a, nano::pending_key const & key_a) override
{
auto iterator (pending_begin (transaction_a, key_a));
return iterator != pending_end () && nano::pending_key (iterator->first) == key_a;
}

bool pending_any (nano::transaction const & transaction_a, nano::account const & account_a) override
{
auto iterator (pending_begin (transaction_a, nano::pending_key (account_a, 0)));
return iterator != pending_end () && nano::pending_key (iterator->first).account == account_a;
}

bool unchecked_exists (nano::transaction const & transaction_a, nano::unchecked_key const & unchecked_key_a) override
{
nano::db_val<Val> value;
auto status (get (transaction_a, tables::unchecked, nano::db_val<Val> (unchecked_key_a), value));
release_assert (success (status) || not_found (status));
return (success (status));
}

void block_put (nano::write_transaction const & transaction_a, nano::block_hash const & hash_a, nano::block const & block_a) override
{
debug_assert (block_a.sideband ().successor.is_zero () || block_exists (transaction_a, block_a.sideband ().successor));
Expand All @@ -122,6 +78,14 @@ class block_store_partial : public block_store
return block->sideband ().height;
}

nano::uint128_t block_balance (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override
{
auto block (block_get (transaction_a, hash_a));
release_assert (block);
nano::uint128_t result (block_balance_calculated (block));
return result;
}

std::shared_ptr<nano::block> block_get (nano::transaction const & transaction_a, nano::block_hash const & hash_a) const override
{
auto value (block_raw_get (transaction_a, hash_a));
Expand Down Expand Up @@ -239,13 +203,6 @@ class block_store_partial : public block_store
block_raw_put (transaction_a, data, hash_a);
}

void unchecked_put (nano::write_transaction const & transaction_a, nano::block_hash const & hash_a, std::shared_ptr<nano::block> const & block_a) override
{
nano::unchecked_key key (hash_a, block_a->hash ());
nano::unchecked_info info (block_a, block_a->account (), nano::seconds_since_epoch (), nano::signature_verification::unknown);
unchecked_put (transaction_a, key, info);
}

nano::store_iterator<nano::unchecked_key, nano::unchecked_info> unchecked_end () const override
{
return nano::store_iterator<nano::unchecked_key, nano::unchecked_info> (nullptr);
Expand Down Expand Up @@ -291,12 +248,6 @@ class block_store_partial : public block_store
return nano::store_iterator<nano::block_hash, nano::account> (nullptr);
}

void block_del (nano::write_transaction const & transaction_a, nano::block_hash const & hash_a) override
{
auto status = del (transaction_a, tables::blocks, hash_a);
release_assert_success (status);
}

int version_get (nano::transaction const & transaction_a) const override
{
nano::uint256_union version_key (1);
Expand All @@ -312,6 +263,12 @@ class block_store_partial : public block_store
return result;
}

void block_del (nano::write_transaction const & transaction_a, nano::block_hash const & hash_a) override
{
auto status = del (transaction_a, tables::blocks, hash_a);
release_assert_success (status);
}

nano::epoch block_version (nano::transaction const & transaction_a, nano::block_hash const & hash_a) override
{
auto block = block_get (transaction_a, hash_a);
Expand Down Expand Up @@ -358,6 +315,18 @@ class block_store_partial : public block_store
return result;
}

bool pending_exists (nano::transaction const & transaction_a, nano::pending_key const & key_a) override
{
auto iterator (pending_begin (transaction_a, key_a));
return iterator != pending_end () && nano::pending_key (iterator->first) == key_a;
}

bool pending_any (nano::transaction const & transaction_a, nano::account const & account_a) override
{
auto iterator (pending_begin (transaction_a, nano::pending_key (account_a, 0)));
return iterator != pending_end () && nano::pending_key (iterator->first).account == account_a;
}

void frontier_put (nano::write_transaction const & transaction_a, nano::block_hash const & block_a, nano::account const & account_a) override
{
nano::db_val<Val> account (account_a);
Expand Down Expand Up @@ -397,16 +366,24 @@ class block_store_partial : public block_store
release_assert_success (status);
}

void online_weight_put (nano::write_transaction const & transaction_a, uint64_t time_a, nano::amount const & amount_a) override
bool unchecked_exists (nano::transaction const & transaction_a, nano::unchecked_key const & unchecked_key_a) override
{
nano::db_val<Val> value (amount_a);
auto status (put (transaction_a, tables::online_weight, time_a, value));
release_assert_success (status);
nano::db_val<Val> value;
auto status (get (transaction_a, tables::unchecked, nano::db_val<Val> (unchecked_key_a), value));
release_assert (success (status) || not_found (status));
return (success (status));
}

void online_weight_del (nano::write_transaction const & transaction_a, uint64_t time_a) override
void unchecked_put (nano::write_transaction const & transaction_a, nano::block_hash const & hash_a, std::shared_ptr<nano::block> const & block_a) override
{
auto status (del (transaction_a, tables::online_weight, time_a));
nano::unchecked_key key (hash_a, block_a->hash ());
nano::unchecked_info info (block_a, block_a->account (), nano::seconds_since_epoch (), nano::signature_verification::unknown);
unchecked_put (transaction_a, key, info);
}

void unchecked_clear (nano::write_transaction const & transaction_a) override
{
auto status = drop (transaction_a, tables::unchecked);
release_assert_success (status);
}

Expand Down Expand Up @@ -439,9 +416,22 @@ class block_store_partial : public block_store
return result;
}

void unchecked_clear (nano::write_transaction const & transaction_a) override
bool account_exists (nano::transaction const & transaction_a, nano::account const & account_a) override
{
auto status = drop (transaction_a, tables::unchecked);
auto iterator (accounts_begin (transaction_a, account_a));
return iterator != accounts_end () && nano::account (iterator->first) == account_a;
}

void online_weight_put (nano::write_transaction const & transaction_a, uint64_t time_a, nano::amount const & amount_a) override
{
nano::db_val<Val> value (amount_a);
auto status (put (transaction_a, tables::online_weight, time_a, value));
release_assert_success (status);
}

void online_weight_del (nano::write_transaction const & transaction_a, uint64_t time_a) override
{
auto status (del (transaction_a, tables::online_weight, time_a));
release_assert_success (status);
}

Expand Down Expand Up @@ -602,6 +592,16 @@ class block_store_partial : public block_store
return exists (transaction_a, tables::confirmation_height, nano::db_val<Val> (account_a));
}

void confirmation_height_clear (nano::write_transaction const & transaction_a, nano::account const & account_a) override
{
confirmation_height_del (transaction_a, account_a);
}

void confirmation_height_clear (nano::write_transaction const & transaction_a) override
{
drop (transaction_a, nano::tables::confirmation_height);
}

nano::store_iterator<nano::account, nano::account_info> accounts_begin (nano::transaction const & transaction_a, nano::account const & account_a) const override
{
return make_iterator<nano::account, nano::account_info> (transaction_a, tables::accounts, nano::db_val<Val> (account_a));
Expand Down

0 comments on commit a3e1ad1

Please sign in to comment.