Mercurial > irccd
changeset 493:69e24ce9baed
Irccd: switch to Boost.Signals2, closes #575
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 22 Aug 2017 14:11:28 +0200 |
parents | 173c52d3120b |
children | 9fcdd3c9cd33 |
files | libirccd/irccd/server.hpp libirccd/irccd/service.cpp libirccd/irccd/transport.hpp |
diffstat | 3 files changed, 40 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/libirccd/irccd/server.hpp Wed Sep 27 09:42:57 2017 +0200 +++ b/libirccd/irccd/server.hpp Tue Aug 22 14:11:28 2017 +0200 @@ -35,12 +35,12 @@ #include <utility> #include <vector> +#include <boost/signals2/signal.hpp> #include <boost/timer/timer.hpp> #include <json.hpp> #include "net.hpp" -#include "signals.hpp" #include "sysconfig.hpp" namespace irccd { @@ -286,7 +286,7 @@ * * Triggered when someone changed the channel mode. */ - Signal<channel_mode_event> on_channel_mode; + boost::signals2::signal<void (channel_mode_event)> on_channel_mode; /** * Signal: on_channel_notice @@ -294,7 +294,7 @@ * * Triggered when a notice has been sent on a channel. */ - Signal<channel_notice_event> on_channel_notice; + boost::signals2::signal<void (channel_notice_event)> on_channel_notice; /** * Signal: on_connect @@ -302,7 +302,7 @@ * * Triggered when the server is successfully connected. */ - Signal<connect_event> on_connect; + boost::signals2::signal<void (connect_event)> on_connect; /** * Signal: on_die @@ -310,7 +310,7 @@ * * The server is dead. */ - Signal<> on_die; + boost::signals2::signal<void ()> on_die; /** * Signal: on_invite @@ -318,7 +318,7 @@ * * Triggered when an invite has been sent to you (the bot). */ - Signal<invite_event> on_invite; + boost::signals2::signal<void (invite_event)> on_invite; /** * Signal: on_join @@ -326,7 +326,7 @@ * * Triggered when a user has joined the channel, it also includes you. */ - Signal<join_event> on_join; + boost::signals2::signal<void (join_event)> on_join; /** * Signal: on_kick @@ -334,7 +334,7 @@ * * Triggered when someone has been kicked from a channel. */ - Signal<kick_event> on_kick; + boost::signals2::signal<void (kick_event)> on_kick; /** * Signal: on_message @@ -342,7 +342,7 @@ * * Triggered when a message on a channel has been sent. */ - Signal<message_event> on_message; + boost::signals2::signal<void (message_event)> on_message; /** * Signal: on_me @@ -353,7 +353,7 @@ * This is both used in a channel and in a private message so the target may * be a channel or your nickname. */ - Signal<me_event> on_me; + boost::signals2::signal<void (me_event)> on_me; /** * Signal: on_mode @@ -361,7 +361,7 @@ * * Triggered when the server changed your user mode. */ - Signal<mode_event> on_mode; + boost::signals2::signal<void (mode_event)> on_mode; /** * Signal: on_names @@ -369,7 +369,7 @@ * * Triggered when names listing has finished on a channel. */ - Signal<names_event> on_names; + boost::signals2::signal<void (names_event)> on_names; /** * Signal: on_nick @@ -377,7 +377,7 @@ * * Triggered when someone changed its nickname, it also includes you. */ - Signal<nick_event> on_nick; + boost::signals2::signal<void (nick_event)> on_nick; /** * Signal: on_notice @@ -385,7 +385,7 @@ * * Triggered when someone has sent a notice to you. */ - Signal<notice_event> on_notice; + boost::signals2::signal<void (notice_event)> on_notice; /** * Signal: on_part @@ -393,7 +393,7 @@ * * Triggered when someone has left the channel. */ - Signal<part_event> on_part; + boost::signals2::signal<void (part_event)> on_part; /** * Signal: on_query @@ -401,7 +401,7 @@ * * Triggered when someone has sent you a private message. */ - Signal<query_event> on_query; + boost::signals2::signal<void (query_event)> on_query; /** * Signal: on_topic @@ -409,7 +409,7 @@ * * Triggered when someone changed the channel topic. */ - Signal<topic_event> on_topic; + boost::signals2::signal<void (topic_event)> on_topic; /** * Signal: on_whois @@ -417,7 +417,7 @@ * * Triggered when whois information has been received. */ - Signal<whois_event> on_whois; + boost::signals2::signal<void (whois_event)> on_whois; private: class state;
--- a/libirccd/irccd/service.cpp Wed Sep 27 09:42:57 2017 +0200 +++ b/libirccd/irccd/service.cpp Tue Aug 22 14:11:28 2017 +0200 @@ -863,26 +863,24 @@ { assert(!has(server->name())); - using namespace std::placeholders; - std::weak_ptr<class server> ptr(server); - server->on_channel_mode.connect(std::bind(&server_service::handle_channel_mode, this, _1)); - server->on_channel_notice.connect(std::bind(&server_service::handle_channel_notice, this, _1)); - server->on_connect.connect(std::bind(&server_service::handle_connect, this, _1)); - server->on_invite.connect(std::bind(&server_service::handle_invite, this, _1)); - server->on_join.connect(std::bind(&server_service::handle_join, this, _1)); - server->on_kick.connect(std::bind(&server_service::handle_kick, this, _1)); - server->on_message.connect(std::bind(&server_service::handle_message, this, _1)); - server->on_me.connect(std::bind(&server_service::handle_me, this, _1)); - server->on_mode.connect(std::bind(&server_service::handle_mode, this, _1)); - server->on_names.connect(std::bind(&server_service::handle_names, this, _1)); - server->on_nick.connect(std::bind(&server_service::handle_nick, this, _1)); - server->on_notice.connect(std::bind(&server_service::handle_notice, this, _1)); - server->on_part.connect(std::bind(&server_service::handle_part, this, _1)); - server->on_query.connect(std::bind(&server_service::handle_query, this, _1)); - server->on_topic.connect(std::bind(&server_service::handle_topic, this, _1)); - server->on_whois.connect(std::bind(&server_service::handle_whois, this, _1)); + server->on_channel_mode.connect(boost::bind(&server_service::handle_channel_mode, this, _1)); + server->on_channel_notice.connect(boost::bind(&server_service::handle_channel_notice, this, _1)); + server->on_connect.connect(boost::bind(&server_service::handle_connect, this, _1)); + server->on_invite.connect(boost::bind(&server_service::handle_invite, this, _1)); + server->on_join.connect(boost::bind(&server_service::handle_join, this, _1)); + server->on_kick.connect(boost::bind(&server_service::handle_kick, this, _1)); + server->on_message.connect(boost::bind(&server_service::handle_message, this, _1)); + server->on_me.connect(boost::bind(&server_service::handle_me, this, _1)); + server->on_mode.connect(boost::bind(&server_service::handle_mode, this, _1)); + server->on_names.connect(boost::bind(&server_service::handle_names, this, _1)); + server->on_nick.connect(boost::bind(&server_service::handle_nick, this, _1)); + server->on_notice.connect(boost::bind(&server_service::handle_notice, this, _1)); + server->on_part.connect(boost::bind(&server_service::handle_part, this, _1)); + server->on_query.connect(boost::bind(&server_service::handle_query, this, _1)); + server->on_topic.connect(boost::bind(&server_service::handle_topic, this, _1)); + server->on_whois.connect(boost::bind(&server_service::handle_whois, this, _1)); server->on_die.connect([this, ptr] () { irccd_.post([=] (irccd&) { auto server = ptr.lock(); @@ -1010,8 +1008,6 @@ void transport_service::sync(fd_set& in, fd_set& out) { - using namespace std::placeholders; - // Transport clients. for (const auto& client : clients_) { try { @@ -1034,8 +1030,8 @@ try { // Connect signals. - client->on_command.connect(std::bind(&transport_service::handle_command, this, ptr, _1)); - client->on_die.connect(std::bind(&transport_service::handle_die, this, ptr)); + client->on_command.connect(boost::bind(&transport_service::handle_command, this, ptr, _1)); + client->on_die.connect(boost::bind(&transport_service::handle_die, this, ptr)); // Register it. clients_.push_back(std::move(client));
--- a/libirccd/irccd/transport.hpp Wed Sep 27 09:42:57 2017 +0200 +++ b/libirccd/irccd/transport.hpp Tue Aug 22 14:11:28 2017 +0200 @@ -28,10 +28,11 @@ #include <memory> #include <string> +#include <boost/signals2/signal.hpp> + #include <json.hpp> #include "net.hpp" -#include "signals.hpp" #include "sysconfig.hpp" namespace irccd { @@ -62,7 +63,7 @@ * Arguments: * - the command */ - Signal<const nlohmann::json&> on_command; + boost::signals2::signal<void (const nlohmann::json&)> on_command; /** * Signal: on_die @@ -70,7 +71,7 @@ * * The client has disconnected. */ - Signal<> on_die; + boost::signals2::signal<void ()> on_die; private: void error(const std::string& msg);