summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2015-12-05 16:47:41 +0100
committerAttila Molnar <attilamolnar@hush.com>2015-12-05 16:47:41 +0100
commit18d5754871de9f0de35c06fbbe4fce6c55c1752f (patch)
treef9524eee32a4943bcae368e9ee381d2f473245f6
parentc933f324085d025d4b1b96f4405cdffff52e9256 (diff)
m_ircv3 Make WriteNeighborsWithCap() available for use in other modules
-rw-r--r--include/modules/ircv3.h45
-rw-r--r--src/modules/m_ircv3.cpp25
2 files changed, 48 insertions, 22 deletions
diff --git a/include/modules/ircv3.h b/include/modules/ircv3.h
new file mode 100644
index 000000000..e03ee16fa
--- /dev/null
+++ b/include/modules/ircv3.h
@@ -0,0 +1,45 @@
+/*
+ * InspIRCd -- Internet Relay Chat Daemon
+ *
+ * Copyright (C) 2015 Attila Molnar <attilamolnar@hush.com>
+ *
+ * This file is part of InspIRCd. InspIRCd is free software: you can
+ * redistribute it and/or modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation, version 2.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#pragma once
+
+namespace IRCv3
+{
+ class WriteNeighborsWithCap;
+}
+
+class IRCv3::WriteNeighborsWithCap : public User::ForEachNeighborHandler
+{
+ const Cap::Capability& cap;
+ const std::string& msg;
+
+ void Execute(LocalUser* user) CXX11_OVERRIDE
+ {
+ if (cap.get(user))
+ user->Write(msg);
+ }
+
+ public:
+ WriteNeighborsWithCap(User* user, const std::string& message, const Cap::Capability& capability)
+ : cap(capability)
+ , msg(message)
+ {
+ user->ForEachNeighbor(*this, false);
+ }
+};
diff --git a/src/modules/m_ircv3.cpp b/src/modules/m_ircv3.cpp
index c99d920ba..5275e9bd5 100644
--- a/src/modules/m_ircv3.cpp
+++ b/src/modules/m_ircv3.cpp
@@ -19,26 +19,7 @@
#include "inspircd.h"
#include "modules/account.h"
#include "modules/cap.h"
-
-class WriteNeighborsWithCap : public User::ForEachNeighborHandler
-{
- const Cap::Capability& cap;
- const std::string& msg;
-
- void Execute(LocalUser* user) CXX11_OVERRIDE
- {
- if (cap.get(user))
- user->Write(msg);
- }
-
- public:
- WriteNeighborsWithCap(User* user, const std::string& message, const Cap::Capability& capability)
- : cap(capability)
- , msg(message)
- {
- user->ForEachNeighbor(*this, false);
- }
-};
+#include "modules/ircv3.h"
class ModuleIRCv3 : public Module, public AccountEventListener
{
@@ -76,7 +57,7 @@ class ModuleIRCv3 : public Module, public AccountEventListener
else
line += newaccount;
- WriteNeighborsWithCap(user, line, cap_accountnotify);
+ IRCv3::WriteNeighborsWithCap(user, line, cap_accountnotify);
}
void OnUserJoin(Membership* memb, bool sync, bool created, CUList& excepts) CXX11_OVERRIDE
@@ -162,7 +143,7 @@ class ModuleIRCv3 : public Module, public AccountEventListener
if (!awaymsg.empty())
line += " :" + awaymsg;
- WriteNeighborsWithCap(user, line, cap_awaynotify);
+ IRCv3::WriteNeighborsWithCap(user, line, cap_awaynotify);
}
return MOD_RES_PASSTHRU;
}