diff options
author | Riccardo Spagni <ric@spagni.net> | 2015-12-05 21:57:56 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2015-12-05 21:58:27 +0200 |
commit | 7ee0abe5a65d12a50c5169bf93bef8113469f975 (patch) | |
tree | 3e742a2c53b35620d28b9003a6788e80a8651024 /src/blockchain_db | |
parent | Merge pull request #515 (diff) | |
parent | blockchain_db: make the indexing base a BlockchainDB virtual function (diff) | |
download | monero-7ee0abe5a65d12a50c5169bf93bef8113469f975.tar.xz |
Merge pull request #517
a3c5ca0 blockchain_db: make the indexing base a BlockchainDB virtual function (moneromooo-monero)
a702118 blockchain_dump: fix output key dump for BDB 1-based indices (moneromooo-monero)
3bf35e1 db_bdb: read 32 bit heights from keys (moneromooo-monero)
Diffstat (limited to 'src/blockchain_db')
-rw-r--r-- | src/blockchain_db/berkeleydb/db_bdb.cpp | 2 | ||||
-rw-r--r-- | src/blockchain_db/berkeleydb/db_bdb.h | 2 | ||||
-rw-r--r-- | src/blockchain_db/blockchain_db.h | 3 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/blockchain_db/berkeleydb/db_bdb.cpp b/src/blockchain_db/berkeleydb/db_bdb.cpp index da68ff40c..486b63a3e 100644 --- a/src/blockchain_db/berkeleydb/db_bdb.cpp +++ b/src/blockchain_db/berkeleydb/db_bdb.cpp @@ -588,7 +588,7 @@ bool BlockchainBDB::for_all_blocks(std::function<bool(uint64_t, const crypto::ha bdb_cur cur(DB_DEFAULT_TX, m_blocks); - Dbt_copy<uint64_t> k; + Dbt_copy<uint32_t> k; Dbt_safe v; bool ret = true; int result; diff --git a/src/blockchain_db/berkeleydb/db_bdb.h b/src/blockchain_db/berkeleydb/db_bdb.h index 6bc9cb4f1..d05abea25 100644 --- a/src/blockchain_db/berkeleydb/db_bdb.h +++ b/src/blockchain_db/berkeleydb/db_bdb.h @@ -297,6 +297,8 @@ public: virtual uint64_t get_num_outputs(const uint64_t& amount) const; + virtual uint64_t get_indexing_base() const { return 1; } + virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index); virtual output_data_t get_output_key(const uint64_t& global_index) const; virtual void get_output_key(const uint64_t &amount, const std::vector<uint64_t> &offsets, std::vector<output_data_t> &outputs); diff --git a/src/blockchain_db/blockchain_db.h b/src/blockchain_db/blockchain_db.h index 85144f04c..152f29b38 100644 --- a/src/blockchain_db/blockchain_db.h +++ b/src/blockchain_db/blockchain_db.h @@ -464,6 +464,9 @@ public: // returns the total number of outputs of amount <amount> virtual uint64_t get_num_outputs(const uint64_t& amount) const = 0; + // return index of the first element (should be hidden, but isn't) + virtual uint64_t get_indexing_base() const { return 0; } + // return public key for output with global output amount <amount> and index <index> virtual output_data_t get_output_key(const uint64_t& amount, const uint64_t& index) = 0; virtual output_data_t get_output_key(const uint64_t& global_index) const = 0; |