#ifndef BOSS_MOD_NEWADDRHANDLER_HPP #define BOSS_MOD_NEWADDRHANDLER_HPP #include namespace Boss { namespace Mod { class Rpc; }} namespace Ev { template class Io; } namespace S { class Bus; } namespace Boss { namespace Mod { /** class Boss::Mod::NewaddrHandler * * @brief handles `Boss::Msg::RequestNewaddr` * and responds with `Boss::Msg::ResponseNewaddr`. */ class NewaddrHandler { private: S::Bus& bus; Boss::Mod::Rpc* rpc; std::vector pending; void start(); Ev::Io newaddr(void*); public: NewaddrHandler() =delete; NewaddrHandler(NewaddrHandler&&) =delete; NewaddrHandler(NewaddrHandler const&) =delete; NewaddrHandler(S::Bus& bus_ ) : bus(bus_), rpc(nullptr) { start(); } }; }} #endif /* !defined(BOSS_MOD_NEWADDRHANDLER_HPP) */