# core/simulator.h ## `Simulator::Cmp::operator` `bool operator()(const Item &a, const Item &b) const noexcept` ## `Simulator::Simulator` `Simulator() = default` ## `Simulator::cancel` `bool cancel(EventId id)` ## `Simulator::create_link` `std::pair create_link(NetworkNode *a, PortId a_port, NetworkNode *b, PortId b_port, Time latency, double bandwidth_gbps)` ## `Simulator::create_rng` `Rng *create_rng(std::uint64_t seed)` ## `Simulator::create_simulator` `static std::pair create_simulator(InstanceId id)` ## `Simulator::flush_after` `void flush_after(Time grace) noexcept` ## `Simulator::get_link` `Link *get_link(LinkId id) noexcept` ## `Simulator::get_link` `Link const *get_link(LinkId id) const noexcept` ## `Simulator::get_rng` `Rng *get_rng() noexcept` ## `Simulator::get_rng` `Rng const *get_rng() const noexcept` ## `Simulator::get_simulator` `static Simulator *get_simulator(InstanceId id) noexcept` ## `Simulator::is_locked` `bool is_locked() const noexcept` ## `Simulator::lock` `void lock() noexcept` ## `Simulator::now` `Time now() const noexcept` ## `Simulator::run_next` `bool run_next()` ## `Simulator::run_until` `void run_until(Time end_time)` ## `Simulator::schedule_after` `template template EventId schedule_after(Time delay, F&&f, Args&&... args)` ## `Simulator::schedule_at` `template template EventId schedule_at(Time abs_time, F&&f, Args&&... args)` ## `cancel` `bool cancel(EventId id);` ## `flush_after` `void flush_after(Time grace) noexcept;` ## `lock` `void lock() noexcept;` ## `run_next` `bool run_next();` ## `run_until` `void run_until(Time end_time);`