]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/xline.h
Move <security:hidesplits> to the spanningtree module.
[user/henk/code/inspircd.git] / include / xline.h
index bde3d3fda7e4b93b39e2df5c4eea5ac372091885..7c102c8825c7df6469fb22d3e52b61ab22e880ed 100644 (file)
@@ -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
+        * 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)
+        * ident and host parts seperately but will still return ident\@host
+        * 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
         */
@@ -376,7 +373,6 @@ class CoreExport XLineFactory
  public:
 
        /** Create an XLine factory
-        * @param Instance creator
         * @param t Type of XLine this factory generates
         */
        XLineFactory(const std::string &t) : type(t) { }
@@ -428,7 +424,6 @@ class CoreExport XLineManager
  public:
 
        /** Constructor
-        * @param Instance A pointer to the creator object
         */
        XLineManager();
 
@@ -448,7 +443,7 @@ class CoreExport XLineManager
        /** Get all lines of a certain type to an XLineLookup (std::map<std::string, XLine*>).
         * NOTE: When this function runs any expired items are removed from the list before it
         * is returned to the caller.
-        * @param The type to look up
+        * @param type The type to look up
         * @return A list of all XLines of the given type.
         */
        XLineLookup* GetAll(const std::string &type);
@@ -531,11 +526,12 @@ class CoreExport XLineManager
        /** Handle /STATS for a given type.
         * NOTE: Any items in the list for this particular line type which have expired
         * 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();
+};