19 #ifndef IRCCD_DAEMON_BOT_HPP
20 #define IRCCD_DAEMON_BOT_HPP
27 #include <irccd/sysconfig.hpp>
30 #include <system_error>
32 #include <boost/asio/io_service.hpp>
34 #include <irccd/config.hpp>
64 boost::asio::io_service& service_;
70 std::unique_ptr<logger::sink> sink_;
71 std::unique_ptr<logger::filter> filter_;
74 std::unique_ptr<server_service> server_service_;
75 std::unique_ptr<transport_service> tpt_service_;
76 std::unique_ptr<rule_service> rule_service_;
77 std::unique_ptr<plugin_service> plugin_service_;
83 void operator=(
const bot&) =
delete;
84 void operator=(
bot&&) =
delete;
88 void load_logs_syslog();
90 void load_templates();
103 bot(boost::asio::io_service& service, std::string
config =
"");
129 auto
get_service() const noexcept -> const boost::asio::io_service&;
143 auto
get_log() const noexcept -> const logger::sink&;
210 incompatible_version,
231 using system_error::system_error;
Read .ini configuration file for irccd.
Definition: config.hpp:39
Irccd error.
Definition: bot.hpp:197
error
Irccd related errors.
Definition: bot.hpp:202
@ incomplete_message
Definition: bot.hpp:225
Irccd main instance.
Definition: bot.hpp:58
auto get_plugins() noexcept -> plugin_service &
auto get_service() const noexcept -> const boost::asio::io_service &
bot(boost::asio::io_service &service, std::string config="")
void set_config(config cfg) noexcept
auto get_servers() noexcept -> server_service &
auto get_transports() noexcept -> transport_service &
auto get_config() const noexcept -> const config &
void set_log(std::unique_ptr< logger::sink > sink) noexcept
auto get_rules() noexcept -> rule_service &
auto get_log() const noexcept -> const logger::sink &
Filter messages before printing them.
Definition: logger.hpp:283
Logger object.
Definition: logger.hpp:84
Interface to implement new logger mechanisms.
Definition: logger.hpp:121
Manage plugins.
Definition: plugin_service.hpp:50
Store and solve rules.
Definition: rule_service.hpp:47
Manage IRC servers.
Definition: server_service.hpp:51
Manage transport servers and clients.
Definition: transport_service.hpp:49
Section that contains one or more options.
Definition: ini.hpp:295
auto bot_category() noexcept -> const std::error_category &
auto make_error_code(bot_error::error e) noexcept -> std::error_code
Parent namespace.
Definition: acceptor.hpp:43