blockmanager_opts.h raw

   1  // Copyright (c) 2022-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_KERNEL_BLOCKMANAGER_OPTS_H
   6  #define BITCOIN_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      bool fast_prune{false};
  29      const fs::path blocks_dir;
  30      Notifications& notifications;
  31      DBParams block_tree_db_params;
  32  };
  33  
  34  } // namespace kernel
  35  
  36  #endif // BITCOIN_KERNEL_BLOCKMANAGER_OPTS_H
  37