]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/xline.h
Remove SpanningTreeProtocolInterface::SendOperNotice - it was translated to a SendSNO...
[user/henk/code/inspircd.git] / include / xline.h
index 74c58e05c87dd000c40fdc146fc6e362ddefc65a..d1fe0e8826fb29b33de789b44b00669b95754a0d 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ *  InspIRCd: (C) 2002-2008 InspIRCd Development Team
  * See: http://www.inspircd.org/wiki/index.php/Credits
  *
  * This program is free but copyrighted software; see
 #ifndef __XLINE_H
 #define __XLINE_H
 
-#include <string>
-#include <deque>
-#include <vector>
-#include "users.h"
-#include "channels.h"
+//#include <string>
+//#include <deque>
+//#include <vector>
 
 /** 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
@@ -37,8 +35,9 @@ class CoreExport XLine : public classbase
        /** Default 'apply' action. Quits the user.
         * @param u User to apply the line against
         * @param line The line typed, used for display purposes in the quit message
+        * @param bancache If true, the user will be added to the bancache if they match. Else not.
         */
-       void DefaultApply(User* u, const std::string &line);
+       void DefaultApply(User* u, const std::string &line, bool bancache);
 
  public:
 
@@ -143,6 +142,8 @@ class CoreExport XLine : public classbase
         * type of line this is.
         */
        const std::string type;
+
+       virtual bool IsBurstable();
 };
 
 /** KLine class
@@ -185,6 +186,8 @@ class CoreExport KLine : public XLine
 
        virtual const char* Displayable();
 
+       virtual bool IsBurstable();
+
        /** Ident mask (ident part only)
         */
        char* identmask;
@@ -382,7 +385,7 @@ typedef std::pair<std::string, std::string> IdentHostPair;
  * does not have to know the specifics of the internals of an XLine class
  * and/or how to call its constructor.
  */
-class CoreExport XLineFactory
+class CoreExport XLineFactory : public classbase
 {
  protected:
 
@@ -412,6 +415,8 @@ class CoreExport XLineFactory
         */
        virtual XLine* Generate(time_t set_time, long duration, const char* source, const char* reason, const char* xline_specific_mask) = 0;
 
+       virtual bool AutoApplyToUserList(XLine* x) { return true; }
+
        /** Destructor
         */
        virtual ~XLineFactory() { }
@@ -452,7 +457,7 @@ typedef XLineLookup::iterator LookupIter;
  * or any other line created by a module. It also manages XLineFactory classes which
  * can generate a specialized XLine for use by another module.
  */
-class CoreExport XLineManager
+class CoreExport XLineManager : public classbase
 {
  protected:
        /** The owner/creator of this class