#ifndef CORE_NODE_H #define CORE_NODE_H #include #include "core/simulator.h" #include "core/time.h" #include "core/types.h" namespace dofs { class Node { public: Node(Simulator *const sim, NodeId id, NodeType type) noexcept; virtual ~Node() = default; NodeId id() const noexcept; NodeStatus status() const noexcept; NodeType type() const noexcept; void set_status(NodeStatus s) noexcept; void boot(Time boottime_ns); void reboot(Time boottime_ns); Node(const Node &) = delete; Node &operator=(const Node &) = delete; protected: Simulator *const _sim; NodeId _id; NodeStatus _status; NodeType _type; }; } // namespace dofs #endif // CORE_NODE_H