#pragma once #include namespace saw { namespace rmt { struct Thread {}; } template<> class device final { private: event_loop ev_loop_; std::thread thread_; bool keep_running_; void run(){ wait_scope wait{ev_loop_}; while(keep_running_){ wait.wait(std::chrono::seconds{4u}); } } public: device(): ev_loop_{}, thread_{&device::run, this}, keep_running_{true} { } }; template<> class remote final { private: public: remote() = default; conveyor>> resolve_address(){ return heap>(*this); } device connect_device(const remote_address& ){ return {}; } }; }