/tmp/bitcoin/src/util/hash_type.h
Line | Count | Source |
1 | | // Copyright (c) 2020-present The Bitcoin Core developers |
2 | | // Distributed under the MIT software license, see the accompanying |
3 | | // file COPYING or http://www.opensource.org/licenses/mit-license.php. |
4 | | |
5 | | #ifndef BITCOIN_UTIL_HASH_TYPE_H |
6 | | #define BITCOIN_UTIL_HASH_TYPE_H |
7 | | |
8 | | template <typename HashType> |
9 | | class BaseHash |
10 | | { |
11 | | protected: |
12 | | HashType m_hash; |
13 | | |
14 | | public: |
15 | 471k | BaseHash() : m_hash() {}BaseHash<uint160>::BaseHash() Line | Count | Source | 15 | 451k | BaseHash() : m_hash() {} |
BaseHash<uint256>::BaseHash() Line | Count | Source | 15 | 19.5k | BaseHash() : m_hash() {} |
|
16 | 883k | explicit BaseHash(const HashType& in) : m_hash(in) {}BaseHash<uint160>::BaseHash(uint160 const&) Line | Count | Source | 16 | 851k | explicit BaseHash(const HashType& in) : m_hash(in) {} |
BaseHash<uint256>::BaseHash(uint256 const&) Line | Count | Source | 16 | 31.9k | explicit BaseHash(const HashType& in) : m_hash(in) {} |
|
17 | | |
18 | | unsigned char* begin() |
19 | 83.5k | { |
20 | 83.5k | return m_hash.begin(); |
21 | 83.5k | } BaseHash<uint256>::begin() Line | Count | Source | 19 | 19.5k | { | 20 | 19.5k | return m_hash.begin(); | 21 | 19.5k | } |
BaseHash<uint160>::begin() Line | Count | Source | 19 | 63.9k | { | 20 | 63.9k | return m_hash.begin(); | 21 | 63.9k | } |
|
22 | | |
23 | | const unsigned char* begin() const |
24 | 832k | { |
25 | 832k | return m_hash.begin(); |
26 | 832k | } BaseHash<uint160>::begin() const Line | Count | Source | 24 | 813k | { | 25 | 813k | return m_hash.begin(); | 26 | 813k | } |
BaseHash<uint256>::begin() const Line | Count | Source | 24 | 19.6k | { | 25 | 19.6k | return m_hash.begin(); | 26 | 19.6k | } |
|
27 | | |
28 | | unsigned char* end() |
29 | 0 | { |
30 | 0 | return m_hash.end(); |
31 | 0 | } Unexecuted instantiation: BaseHash<uint256>::end() Unexecuted instantiation: BaseHash<uint160>::end() |
32 | | |
33 | | const unsigned char* end() const |
34 | 832k | { |
35 | 832k | return m_hash.end(); |
36 | 832k | } BaseHash<uint160>::end() const Line | Count | Source | 34 | 813k | { | 35 | 813k | return m_hash.end(); | 36 | 813k | } |
BaseHash<uint256>::end() const Line | Count | Source | 34 | 19.5k | { | 35 | 19.5k | return m_hash.end(); | 36 | 19.5k | } |
|
37 | | |
38 | | operator std::vector<unsigned char>() const |
39 | | { |
40 | | return std::vector<unsigned char>{m_hash.begin(), m_hash.end()}; |
41 | | } |
42 | | |
43 | | std::string ToString() const |
44 | 14 | { |
45 | 14 | return m_hash.ToString(); |
46 | 14 | } BaseHash<uint256>::ToString[abi:cxx11]() const Line | Count | Source | 44 | 11 | { | 45 | 11 | return m_hash.ToString(); | 46 | 11 | } |
BaseHash<uint160>::ToString[abi:cxx11]() const Line | Count | Source | 44 | 3 | { | 45 | 3 | return m_hash.ToString(); | 46 | 3 | } |
|
47 | | |
48 | | bool operator==(const BaseHash<HashType>& other) const noexcept |
49 | 8.42k | { |
50 | 8.42k | return m_hash == other.m_hash; |
51 | 8.42k | } BaseHash<uint160>::operator==(BaseHash<uint160> const&) const Line | Count | Source | 49 | 8.38k | { | 50 | 8.38k | return m_hash == other.m_hash; | 51 | 8.38k | } |
BaseHash<uint256>::operator==(BaseHash<uint256> const&) const Line | Count | Source | 49 | 36 | { | 50 | 36 | return m_hash == other.m_hash; | 51 | 36 | } |
|
52 | | |
53 | | bool operator<(const BaseHash<HashType>& other) const noexcept |
54 | 1.61M | { |
55 | 1.61M | return m_hash < other.m_hash; |
56 | 1.61M | } BaseHash<uint160>::operator<(BaseHash<uint160> const&) const Line | Count | Source | 54 | 1.61M | { | 55 | 1.61M | return m_hash < other.m_hash; | 56 | 1.61M | } |
BaseHash<uint256>::operator<(BaseHash<uint256> const&) const Line | Count | Source | 54 | 1.27k | { | 55 | 1.27k | return m_hash < other.m_hash; | 56 | 1.27k | } |
|
57 | | |
58 | | size_t size() const |
59 | 25.0k | { |
60 | 25.0k | return m_hash.size(); |
61 | 25.0k | } BaseHash<uint256>::size() const Line | Count | Source | 59 | 987 | { | 60 | 987 | return m_hash.size(); | 61 | 987 | } |
BaseHash<uint160>::size() const Line | Count | Source | 59 | 24.0k | { | 60 | 24.0k | return m_hash.size(); | 61 | 24.0k | } |
|
62 | | |
63 | 601 | unsigned char* data() { return m_hash.data(); }BaseHash<uint256>::data() Line | Count | Source | 63 | 600 | unsigned char* data() { return m_hash.data(); } |
BaseHash<uint160>::data() Line | Count | Source | 63 | 1 | unsigned char* data() { return m_hash.data(); } |
|
64 | 11.7k | const unsigned char* data() const { return m_hash.data(); }BaseHash<uint256>::data() const Line | Count | Source | 64 | 75 | const unsigned char* data() const { return m_hash.data(); } |
BaseHash<uint160>::data() const Line | Count | Source | 64 | 11.6k | const unsigned char* data() const { return m_hash.data(); } |
|
65 | | }; |
66 | | |
67 | | #endif // BITCOIN_UTIL_HASH_TYPE_H |