19 #ifndef IRCCD_DAEMON_RULE_SERVICE_HPP
20 #define IRCCD_DAEMON_RULE_SERVICE_HPP
27 #include <irccd/sysconfig.hpp>
50 std::vector<rule> rules_;
118 std::string_view origin,
120 std::string_view
event) noexcept ->
bool;
132 template <
typename T>
164 #endif // !IRCCD_DAEMON_RULE_SERVICE_HPP
void load(const config &cfg) noexcept
Traits for loggable objects.
Definition: logger.hpp:78
Store and solve rules.
Definition: rule_service.hpp:47
Read .ini configuration file for irccd.
Definition: config.hpp:39
Abstract plugin.
Definition: plugin.hpp:61
std::variant< std::monostate, connect_event, disconnect_event, invite_event, join_event, kick_event, me_event, message_event, mode_event, names_event, nick_event, notice_event, part_event, topic_event, whois_event > event
Store all possible events.
Definition: server.hpp:247
void insert(rule rule, std::size_t position)
static auto get_component(const rule &rule) -> std::string_view
static auto get_category(const rule &rule) -> std::string_view
auto solve(std::string_view server, std::string_view channel, std::string_view origin, std::string_view plugin, std::string_view event) noexcept -> bool
auto require(std::size_t position) const -> const rule &
A channel to join with an optional password.
Definition: server.hpp:63
Irccd main instance.
Definition: bot.hpp:58
auto list() const noexcept -> const std::vector< rule > &
The class that connect to a IRC server.
Definition: server.hpp:256
Parent namespace.
Definition: acceptor.hpp:43
void remove(std::size_t position)
Manage rule to activate or deactive events.
Definition: rule.hpp:39