summaryrefslogtreecommitdiff
path: root/include/xline.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/xline.h')
-rw-r--r--include/xline.h83
1 files changed, 40 insertions, 43 deletions
diff --git a/include/xline.h b/include/xline.h
index 2a49d8b80..7c102c882 100644
--- a/include/xline.h
+++ b/include/xline.h
@@ -20,8 +20,7 @@
*/
-#ifndef XLINE_H
-#define XLINE_H
+#pragma once
/** XLine is the base class for ban lines such as G lines and K lines.
* Modules may derive from this, and their xlines will automatically be
@@ -51,7 +50,12 @@ class CoreExport XLine : public classbase
* @param t The line type, should be set by the derived class constructor
*/
XLine(time_t s_time, long d, std::string src, std::string re, const std::string &t)
- : set_time(s_time), duration(d), source(src), reason(re), type(t)
+ : set_time(s_time)
+ , duration(d)
+ , source(src)
+ , reason(re)
+ , type(t)
+ , from_config(false)
{
expiry = set_time + duration;
}
@@ -101,16 +105,16 @@ class CoreExport XLine : public classbase
* line. Usually a line in the form 'expiring Xline blah, set by...'
* see the DisplayExpiry methods of GLine, ELine etc.
*/
- virtual void DisplayExpiry() = 0;
+ virtual void DisplayExpiry();
/** Returns the displayable form of the pattern for this xline,
* e.g. '*\@foo' or '*baz*'. This must always return the full pattern
* in a form which can be used to construct an entire derived xline,
* even if it is stored differently internally (e.g. GLine stores the
* ident and host parts seperately but will still return ident\@host
- * for its Displayable() method)
+ * for its Displayable() method).
*/
- virtual const char* Displayable() = 0;
+ virtual const std::string& Displayable() = 0;
/** Called when the xline has just been added.
*/
@@ -141,6 +145,9 @@ class CoreExport XLine : public classbase
*/
const std::string type;
+ // Whether this XLine was loaded from the server config.
+ bool from_config;
+
virtual bool IsBurstable();
};
@@ -171,17 +178,15 @@ class CoreExport KLine : public XLine
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
-
- virtual void DisplayExpiry();
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
- virtual bool IsBurstable();
+ bool IsBurstable() CXX11_OVERRIDE;
/** Ident mask (ident part only)
*/
@@ -219,15 +224,13 @@ class CoreExport GLine : public XLine
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** Ident mask (ident part only)
*/
@@ -263,17 +266,15 @@ class CoreExport ELine : public XLine
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Unset();
+ void Unset() CXX11_OVERRIDE;
- virtual void DisplayExpiry();
+ void OnAdd() CXX11_OVERRIDE;
- virtual void OnAdd();
-
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** Ident mask (ident part only)
*/
@@ -308,15 +309,13 @@ class CoreExport ZLine : public XLine
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** IP mask (no ident part)
*/
@@ -345,15 +344,13 @@ class CoreExport QLine : public XLine
~QLine()
{
}
- virtual bool Matches(User *u);
+ bool Matches(User* u) CXX11_OVERRIDE;
- virtual bool Matches(const std::string &str);
+ bool Matches(const std::string& str) CXX11_OVERRIDE;
- virtual void Apply(User* u);
+ void Apply(User* u) CXX11_OVERRIDE;
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ const std::string& Displayable() CXX11_OVERRIDE;
/** Nickname mask
*/
@@ -531,10 +528,10 @@ class CoreExport XLineManager
* will be expired and removed before the list is displayed.
* @param type The type of stats to show
* @param numeric The numeric to give to each result line
- * @param user The username making the query
- * @param results The string_list to receive the results
+ * @param stats Stats context
*/
- void InvokeStats(const std::string &type, int numeric, User* user, string_list &results);
-};
+ void InvokeStats(const std::string& type, unsigned int numeric, Stats::Context& stats);
-#endif
+ /** Clears any XLines which were added by the server configuration. */
+ void ClearConfigLines();
+};