irccd
3.0.3
|
Server side remote command. More...
#include <transport_command.hpp>
Public Types | |
using | document = json_util::deserializer |
Convenient alias. More... | |
using | constructor = std::function< std::unique_ptr< transport_command >()> |
Command constructor factory. More... | |
Public Member Functions | |
virtual | ~transport_command ()=default |
virtual auto | get_name () const noexcept -> std::string_view=0 |
virtual void | exec (bot &bot, transport_client &client, const document &args)=0 |
Static Public Member Functions | |
static auto | registry () noexcept -> const std::vector< constructor > & |
Registry of all commands. More... | |
Server side remote command.
using irccd::daemon::transport_command::constructor = std::function<std::unique_ptr<transport_command> ()> |
Command constructor factory.
Convenient alias.
|
virtualdefault |
Default destructor virtual.
|
pure virtual |
Execute the command.
If the command throw an exception, the error is sent to the client so be careful about sensitive information.
The implementation should use client.success() or client.error() to send some data.
bot | the irccd instance |
client | the client |
args | the client arguments |
Implemented in irccd::daemon::server_topic_command, irccd::daemon::server_reconnect_command, irccd::daemon::server_part_command, irccd::daemon::server_notice_command, irccd::daemon::server_nick_command, irccd::daemon::server_mode_command, irccd::daemon::server_message_command, irccd::daemon::server_me_command, irccd::daemon::server_list_command, irccd::daemon::server_kick_command, irccd::daemon::server_join_command, irccd::daemon::server_invite_command, irccd::daemon::server_info_command, irccd::daemon::server_disconnect_command, irccd::daemon::server_connect_command, irccd::daemon::rule_remove_command, irccd::daemon::rule_move_command, irccd::daemon::rule_list_command, irccd::daemon::rule_info_command, irccd::daemon::rule_edit_command, irccd::daemon::rule_add_command, irccd::daemon::plugin_unload_command, irccd::daemon::plugin_reload_command, irccd::daemon::plugin_load_command, irccd::daemon::plugin_list_command, irccd::daemon::plugin_info_command, and irccd::daemon::plugin_config_command.
|
pure virtualnoexcept |
Return the command name, must not have spaces.
Implemented in irccd::daemon::server_topic_command, irccd::daemon::server_reconnect_command, irccd::daemon::server_part_command, irccd::daemon::server_notice_command, irccd::daemon::server_nick_command, irccd::daemon::server_mode_command, irccd::daemon::server_message_command, irccd::daemon::server_me_command, irccd::daemon::server_list_command, irccd::daemon::server_kick_command, irccd::daemon::server_join_command, irccd::daemon::server_invite_command, irccd::daemon::server_info_command, irccd::daemon::server_disconnect_command, irccd::daemon::server_connect_command, irccd::daemon::rule_remove_command, irccd::daemon::rule_move_command, irccd::daemon::rule_list_command, irccd::daemon::rule_info_command, irccd::daemon::rule_edit_command, irccd::daemon::rule_add_command, irccd::daemon::plugin_unload_command, irccd::daemon::plugin_reload_command, irccd::daemon::plugin_load_command, irccd::daemon::plugin_list_command, irccd::daemon::plugin_info_command, and irccd::daemon::plugin_config_command.
|
staticnoexcept |
Registry of all commands.