*/
-#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
* 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.
*/
virtual void Apply(User* u);
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ virtual const std::string& Displayable();
virtual bool IsBurstable();
virtual void Apply(User* u);
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ virtual const std::string& Displayable();
/** Ident mask (ident part only)
*/
virtual void Unset();
- virtual void DisplayExpiry();
-
virtual void OnAdd();
- virtual const char* Displayable();
+ virtual const std::string& Displayable();
/** Ident mask (ident part only)
*/
virtual void Apply(User* u);
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ virtual const std::string& Displayable();
/** IP mask (no ident part)
*/
virtual void Apply(User* u);
- virtual void DisplayExpiry();
-
- virtual const char* Displayable();
+ virtual const std::string& Displayable();
/** Nickname mask
*/
public:
/** Create an XLine factory
- * @param Instance creator
* @param t Type of XLine this factory generates
*/
XLineFactory(const std::string &t) : type(t) { }
public:
/** Constructor
- * @param Instance A pointer to the creator object
*/
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);
/** 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