#pragma once #include #include #include "datapoint/temperature_reading.hpp" namespace djm::device { class TemperatureSource { public: virtual ~TemperatureSource() noexcept = default; /** blocking, can be called whenever a reading is desired */ virtual std::optional read( std::chrono::milliseconds timeout) = 0; }; } // namespace djm::device