#ifndef FORTUNA_ENTROPY_SRC_H #define FORTUNA_ENTROPY_SRC_H #include "event_adder_impl.h" #include "event_scheduler.h" namespace fortuna { namespace accumulator { class EntropySrc { private: std::unique_ptr impl; public: virtual void schedule(accumulator::EventScheduler scheduler) = 0; virtual void event(accumulator::EventAdderImpl adder) = 0; static constexpr const std::size_t max_event_length{32}; EntropySrc(const EntropySrc&) = delete; EntropySrc& operator=(const EntropySrc&) = delete; ~EntropySrc() noexcept; }; } // namespace accumulator } // namespace fortuna #endif // FORTUNA_ENTROPY_SRC_H