dncurrency/nano/node/scheduler/component.hpp
2024-11-26 18:33:34 +01:00

36 lines
995 B
C++

#pragma once
#include <nano/node/fwd.hpp>
#include <memory>
#include <string>
namespace nano::scheduler
{
class component final
{
public:
component (nano::node_config &, nano::node &, nano::ledger &, nano::bucketing &, nano::block_processor &, nano::active_elections &, nano::online_reps &, nano::vote_cache &, nano::confirming_set &, nano::stats &, nano::logger &);
~component ();
void start ();
void stop ();
/// Does the block exist in any of the schedulers
bool contains (nano::block_hash const & hash) const;
nano::container_info container_info () const;
private:
std::unique_ptr<nano::scheduler::hinted> hinted_impl;
std::unique_ptr<nano::scheduler::manual> manual_impl;
std::unique_ptr<nano::scheduler::optimistic> optimistic_impl;
std::unique_ptr<nano::scheduler::priority> priority_impl;
public: // Schedulers
nano::scheduler::hinted & hinted;
nano::scheduler::manual & manual;
nano::scheduler::optimistic & optimistic;
nano::scheduler::priority & priority;
};
}