Branch data Line data Source code
1 : : // Copyright (c) 2022 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_KERNEL_BLOCKMANAGER_OPTS_H
6 : : #define BITCOIN_KERNEL_BLOCKMANAGER_OPTS_H
7 : :
8 : : #include <kernel/notifications_interface.h>
9 : : #include <util/fs.h>
10 : :
11 : : #include <cstdint>
12 : :
13 : : class CChainParams;
14 : :
15 : : namespace kernel {
16 : :
17 : : static constexpr bool DEFAULT_XOR_BLOCKSDIR{true};
18 : :
19 : : /**
20 : : * An options struct for `BlockManager`, more ergonomically referred to as
21 : : * `BlockManager::Options` due to the using-declaration in `BlockManager`.
22 : : */
23 [ + - ]: 2212 : struct BlockManagerOpts {
24 : : const CChainParams& chainparams;
25 : : bool use_xor{DEFAULT_XOR_BLOCKSDIR};
26 : : uint64_t prune_target{0};
27 : : bool fast_prune{false};
28 : : const fs::path blocks_dir;
29 : : Notifications& notifications;
30 : : };
31 : :
32 : : } // namespace kernel
33 : :
34 : : #endif // BITCOIN_KERNEL_BLOCKMANAGER_OPTS_H
|