* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * InspIRCd: (C) 2002-2009 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 <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
* type of line this is.
*/
const std::string type;
+
+ virtual bool IsBurstable();
};
/** KLine class
virtual const char* Displayable();
+ virtual bool IsBurstable();
+
/** Ident mask (ident part only)
*/
char* identmask;
* 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:
*/
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() { }
/** A map of XLines indexed by string
*/
-typedef std::map<std::string, XLine *> XLineLookup;
+typedef std::map<irc::string, XLine *> XLineLookup;
/** A map of XLineLookup maps indexed by string
*/
* 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
*/
XLineLookup* GetAll(const std::string &type);
+ /** Remove all lines of a certain type.
+ */
+ void DelAll(const std::string &type);
+
/** Return all known types of line currently stored by the XLineManager.
* @return A vector containing all known line types currently stored in the main list.
*/