diff options
Diffstat (limited to 'include/xline.h')
-rw-r--r-- | include/xline.h | 83 |
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(); +}; |