Mercurial > irccd
changeset 623:4515082ee83f
Irccd: make on-demande command name
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 22 Dec 2017 11:08:01 +0100 |
parents | c2db630ffd60 |
children | f69b1faf812f |
files | libirccd/irccd/daemon/command.cpp libirccd/irccd/daemon/command.hpp libirccd/irccd/daemon/command_service.cpp libirccd/irccd/daemon/transport_service.cpp |
diffstat | 4 files changed, 112 insertions(+), 130 deletions(-) [+] |
line wrap: on
line diff
--- a/libirccd/irccd/daemon/command.cpp Fri Dec 22 10:26:41 2017 +0100 +++ b/libirccd/irccd/daemon/command.cpp Fri Dec 22 11:08:01 2017 +0100 @@ -165,9 +165,9 @@ } // !namespace -plugin_config_command::plugin_config_command() - : command("plugin-config") +std::string plugin_config_command::get_name() const noexcept { + return "plugin-config"; } void plugin_config_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -180,9 +180,9 @@ exec_get(client, *plugin, args); } -plugin_info_command::plugin_info_command() - : command("plugin-info") +std::string plugin_info_command::get_name() const noexcept { + return "plugin-info"; } void plugin_info_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -198,9 +198,9 @@ }); } -plugin_list_command::plugin_list_command() - : command("plugin-list") +std::string plugin_list_command::get_name() const noexcept { + return "plugin-list"; } void plugin_list_command::exec(irccd& irccd, transport_client& client, const nlohmann::json&) @@ -216,9 +216,9 @@ }); } -plugin_load_command::plugin_load_command() - : command("plugin-load") +std::string plugin_load_command::get_name() const noexcept { + return "plugin-load"; } void plugin_load_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -227,9 +227,9 @@ client.success("plugin-load"); } -plugin_reload_command::plugin_reload_command() - : command("plugin-reload") +std::string plugin_reload_command::get_name() const noexcept { + return "plugin-reload"; } void plugin_reload_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -238,9 +238,9 @@ client.success("plugin-reload"); } -plugin_unload_command::plugin_unload_command() - : command("plugin-unload") +std::string plugin_unload_command::get_name() const noexcept { + return "plugin-unload"; } void plugin_unload_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -249,9 +249,9 @@ client.success("plugin-unload"); } -server_connect_command::server_connect_command() - : command("server-connect") +std::string server_connect_command::get_name() const noexcept { + return "server-connect"; } void server_connect_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -265,9 +265,9 @@ client.success("server-connect"); } -server_disconnect_command::server_disconnect_command() - : command("server-disconnect") +std::string server_disconnect_command::get_name() const noexcept { + return "server-disconnect"; } void server_disconnect_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -292,9 +292,9 @@ client.success("server-disconnect"); } -server_info_command::server_info_command() - : command("server-info") +std::string server_info_command::get_name() const noexcept { + return "server-invite"; } void server_info_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -323,9 +323,9 @@ client.send(response); } -server_invite_command::server_invite_command() - : command("server-invite") +std::string server_invite_command::get_name() const noexcept { + return "server-invite"; } void server_invite_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -343,9 +343,9 @@ client.success("server-invite"); } -server_join_command::server_join_command() - : command("server-join") +std::string server_join_command::get_name() const noexcept { + return "server-join"; } void server_join_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -361,9 +361,9 @@ client.success("server-join"); } -server_kick_command::server_kick_command() - : command("server-kick") +std::string server_kick_command::get_name() const noexcept { + return "server-kick"; } void server_kick_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -382,9 +382,9 @@ client.success("server-kick"); } -server_list_command::server_list_command() - : command("server-list") +std::string server_list_command::get_name() const noexcept { + return "server-list"; } void server_list_command::exec(irccd& irccd, transport_client& client, const nlohmann::json&) @@ -401,9 +401,9 @@ }); } -server_me_command::server_me_command() - : command("server-me") +std::string server_me_command::get_name() const noexcept { + return "server-me"; } void server_me_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -419,9 +419,9 @@ client.success("server-me"); } -server_message_command::server_message_command() - : command("server-message") +std::string server_message_command::get_name() const noexcept { + return "server-message"; } void server_message_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -437,9 +437,9 @@ client.success("server-message"); } -server_mode_command::server_mode_command() - : command("server-mode") +std::string server_mode_command::get_name() const noexcept { + return "server-mode"; } void server_mode_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -461,9 +461,9 @@ client.success("server-mode"); } -server_nick_command::server_nick_command() - : command("server-nick") +std::string server_nick_command::get_name() const noexcept { + return "server-nick"; } void server_nick_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -478,9 +478,9 @@ client.success("server-nick"); } -server_notice_command::server_notice_command() - : command("server-notice") +std::string server_notice_command::get_name() const noexcept { + return "server-notice"; } void server_notice_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -496,9 +496,9 @@ client.success("server-notice"); } -server_part_command::server_part_command() - : command("server-part") +std::string server_part_command::get_name() const noexcept { + return "server-part"; } void server_part_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -514,9 +514,9 @@ client.success("server-part"); } -server_reconnect_command::server_reconnect_command() - : command("server-reconnect") +std::string server_reconnect_command::get_name() const noexcept { + return "server-reconnect"; } void server_reconnect_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -542,9 +542,9 @@ client.success("server-reconnect"); } -server_topic_command::server_topic_command() - : command("server-topic") +std::string server_topic_command::get_name() const noexcept { + return "server-topic"; } void server_topic_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -560,9 +560,9 @@ client.success("server-topic"); } -rule_edit_command::rule_edit_command() - : command("rule-edit") +std::string rule_edit_command::get_name() const noexcept { + return "rule-edit"; } void rule_edit_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -606,9 +606,9 @@ client.success("rule-edit"); } -rule_list_command::rule_list_command() - : command("rule-list") +std::string rule_list_command::get_name() const noexcept { + return "rule-list"; } void rule_list_command::exec(irccd& irccd, transport_client& client, const nlohmann::json&) @@ -624,9 +624,9 @@ }); } -rule_info_command::rule_info_command() - : command("rule-info") +std::string rule_info_command::get_name() const noexcept { + return "rule-info"; } void rule_info_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -637,9 +637,9 @@ client.send(std::move(json)); } -rule_remove_command::rule_remove_command() - : command("rule-remove") +std::string rule_remove_command::get_name() const noexcept { + return "rule-remove"; } void rule_remove_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -653,9 +653,9 @@ client.success("rule-remove"); } -rule_move_command::rule_move_command() - : command("rule-move") +std::string rule_move_command::get_name() const noexcept { + return "rule-move"; } void rule_move_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args) @@ -709,9 +709,9 @@ client.success("rule-move"); } -rule_add_command::rule_add_command() - : command("rule-add") +std::string rule_add_command::get_name() const noexcept { + return "rule-add"; } void rule_add_command::exec(irccd& irccd, transport_client& client, const nlohmann::json& args)
--- a/libirccd/irccd/daemon/command.hpp Fri Dec 22 10:26:41 2017 +0100 +++ b/libirccd/irccd/daemon/command.hpp Fri Dec 22 11:08:01 2017 +0100 @@ -42,23 +42,8 @@ * \brief Server side remote command */ class command { -private: - std::string name_; - public: /** - * Construct a command. - * - * \pre !name.empty() - * \param name the command name - */ - inline command(std::string name) noexcept - : name_(std::move(name)) - { - assert(!name_.empty()); - } - - /** * Default destructor virtual. */ virtual ~command() = default; @@ -68,10 +53,7 @@ * * \return the command name */ - inline const std::string& name() const noexcept - { - return name_; - } + virtual std::string get_name() const noexcept = 0; /** * Execute the command. @@ -99,9 +81,9 @@ class plugin_config_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - plugin_config_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -119,9 +101,9 @@ class plugin_info_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - plugin_info_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -135,9 +117,9 @@ class plugin_list_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - plugin_list_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -157,9 +139,9 @@ class plugin_load_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - plugin_load_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -178,9 +160,9 @@ class plugin_reload_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - plugin_reload_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -199,9 +181,9 @@ class plugin_unload_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - plugin_unload_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -223,9 +205,9 @@ class server_connect_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_connect_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -244,9 +226,9 @@ class server_disconnect_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_disconnect_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -265,9 +247,9 @@ class server_info_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_info_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -288,9 +270,9 @@ class server_invite_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_invite_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -310,9 +292,9 @@ class server_join_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_join_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -333,9 +315,9 @@ class server_kick_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_kick_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -349,9 +331,9 @@ class server_list_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_list_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -371,9 +353,9 @@ class server_me_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_me_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -393,9 +375,9 @@ class server_message_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_message_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -416,9 +398,9 @@ class server_mode_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_mode_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -438,9 +420,9 @@ class server_nick_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_nick_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -460,9 +442,9 @@ class server_notice_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_notice_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -482,9 +464,9 @@ class server_part_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_part_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -503,9 +485,9 @@ class server_reconnect_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_reconnect_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -525,9 +507,9 @@ class server_topic_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - server_topic_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -546,9 +528,9 @@ class rule_edit_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - rule_edit_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -562,9 +544,9 @@ class rule_list_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - rule_list_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -582,9 +564,9 @@ class rule_info_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - rule_info_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -602,9 +584,9 @@ class rule_remove_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - rule_remove_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -622,9 +604,9 @@ class rule_move_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - rule_move_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec @@ -642,9 +624,9 @@ class rule_add_command : public command { public: /** - * Constructor. + * \copydoc command::get_name */ - rule_add_command(); + std::string get_name() const noexcept override; /** * \copydoc command::exec
--- a/libirccd/irccd/daemon/command_service.cpp Fri Dec 22 10:26:41 2017 +0100 +++ b/libirccd/irccd/daemon/command_service.cpp Fri Dec 22 11:08:01 2017 +0100 @@ -28,7 +28,7 @@ std::shared_ptr<command> command_service::find(const std::string& name) const noexcept { auto it = std::find_if(commands_.begin(), commands_.end(), [&] (const auto& cmd) { - return cmd->name() == name; + return cmd->get_name() == name; }); return it == commands_.end() ? nullptr : *it; @@ -37,7 +37,7 @@ void command_service::add(std::shared_ptr<command> command) { auto it = std::find_if(commands_.begin(), commands_.end(), [&] (const auto& cmd) { - return cmd->name() == command->name(); + return cmd->get_name() == command->get_name(); }); if (it != commands_.end())
--- a/libirccd/irccd/daemon/transport_service.cpp Fri Dec 22 10:26:41 2017 +0100 +++ b/libirccd/irccd/daemon/transport_service.cpp Fri Dec 22 11:08:01 2017 +0100 @@ -197,7 +197,7 @@ try { cmd->exec(irccd_, *tc, object); } catch (const boost::system::system_error& ex) { - tc->error(ex.code(), cmd->name()); + tc->error(ex.code(), cmd->get_name()); } catch (const std::exception& ex) { irccd_.log().warning() << "transport: unknown error not reported" << std::endl; irccd_.log().warning() << "transport: " << ex.what() << std::endl;