#pragma once #include "connection.hpp" #include "client.hpp" #include "settings.hpp" #include #include #include #include class Registration : public std::enable_shared_from_this { const Settings &settings_; std::shared_ptr client_; boost::signals2::scoped_connection slot_; boost::signals2::scoped_connection caps_slot_; auto on_connect() -> void; auto on_cap_list(const std::unordered_map &) -> void; auto on_ircmsg(IrcCommand, const IrcMsg &msg) -> void; auto send_req() -> void; auto randomize_nick() -> void; public: Registration( const Settings &, std::shared_ptr ); static auto start( const Settings &, std::shared_ptr ) -> std::shared_ptr; };