summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/core/os_ignore.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/modules/core/os_ignore.h b/modules/core/os_ignore.h
new file mode 100644
index 000000000..5aec64f8f
--- /dev/null
+++ b/modules/core/os_ignore.h
@@ -0,0 +1,39 @@
+/* OperServ ignore interface
+ *
+ * (C) 2003-2010 Anope Team
+ * Contact us at team@anope.org
+ *
+ * Please read COPYING and README for further details.
+ *
+ * Based on the original code of Epona by Lara.
+ * Based on the original code of Services by Andy Church.
+ */
+
+
+struct IgnoreData
+{
+ Anope::string mask;
+ Anope::string creator;
+ Anope::string reason;
+ time_t time; /* When do we stop ignoring them? */
+};
+
+class IgnoreService : public Service
+{
+ protected:
+ std::list<IgnoreData> ignores;
+
+ IgnoreService(Module *c, const Anope::string &n) : Service(c, n) { }
+
+ public:
+ virtual void AddIgnore(const Anope::string &mask, const Anope::string &creator, const Anope::string &reason, time_t delta = Anope::CurTime) = 0;
+
+ virtual bool DelIgnore(const Anope::string &mask) = 0;
+
+ inline void ClearIgnores() { this->ignores.clear(); }
+
+ virtual IgnoreData *Find(const Anope::string &mask) = 0;
+
+ inline std::list<IgnoreData> &GetIgnores() { return this->ignores; }
+};
+