19        : 
public nuraft::state_machine,
 
   23                                            nuraft::ptr<nuraft::buffer>> {
 
   34        state_machine(
const std::pair<uint8_t, uint8_t>& output_range,
 
   35                      std::shared_ptr<logging::log> logger,
 
   36                      size_t completed_txs_cache_size,
 
   37                      const std::string& preseed_file,
 
   46        auto commit(uint64_t log_idx, nuraft::buffer& data)
 
   47            -> nuraft::ptr<nuraft::buffer> 
override;
 
   52            nuraft::ulong log_idx,
 
   53            nuraft::ptr<nuraft::cluster_config>& ) 
override;
 
   61        auto last_snapshot() -> nuraft::ptr<nuraft::snapshot> 
override;
 
   70            nuraft::async_result<bool>::handler_type& )
 
   77            -> std::shared_ptr<cbdc::locking_shard::locking_shard>;
 
   83        std::atomic<uint64_t> m_last_committed_idx{0};
 
   84        nuraft::ptr<nuraft::snapshot> m_snapshot{};
 
   85        std::shared_mutex m_snapshots_mut{};
 
   87        nuraft::ptr<nuraft::snapshot> m_tmp_snapshot{};
 
   88        std::mutex m_tmp_mut{};
 
   90        std::shared_ptr<cbdc::locking_shard::locking_shard> m_shard{};
 
   91        std::pair<uint8_t, uint8_t> m_output_range{};
 
   92        std::string m_snapshot_dir{};
 
   93        std::string m_db_dir{};
 
   95        std::shared_ptr<logging::log> m_logger;