blockmanager_opts.h raw
1 // Copyright (c) 2022 The Limenka 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 LIMENKA_KERNEL_BLOCKMANAGER_OPTS_H
6 #define LIMENKA_KERNEL_BLOCKMANAGER_OPTS_H
7
8 #include <dbwrapper.h>
9 #include <kernel/notifications_interface.h>
10 #include <util/fs.h>
11
12 #include <cstdint>
13
14 class CChainParams;
15
16 namespace kernel {
17
18 static constexpr bool DEFAULT_XOR_BLOCKSDIR{true};
19
20 /**
21 * An options struct for `BlockManager`, more ergonomically referred to as
22 * `BlockManager::Options` due to the using-declaration in `BlockManager`.
23 */
24 struct BlockManagerOpts {
25 const CChainParams& chainparams;
26 bool use_xor{DEFAULT_XOR_BLOCKSDIR};
27 uint64_t prune_target{0};
28 int64_t prune_target_during_init{-1};
29 bool fast_prune{false};
30 const fs::path blocks_dir;
31 Notifications& notifications;
32 DBParams block_tree_db_params;
33 };
34
35 } // namespace kernel
36
37 #endif // LIMENKA_KERNEL_BLOCKMANAGER_OPTS_H
38