* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2007 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
* the file COPYING for details.
* ---------------------------------------------------
*/
-#ifndef __BASE_H__
-#define __BASE_H__
+#ifndef __BASE_H__
+#define __BASE_H__
-#include "inspircd_config.h"
-#include <time.h>
#include <map>
#include <deque>
#include <string>
-/** Do we use this? -- Brain */
-typedef void* VoidPointer;
-
/** A private data store for an Extensible class */
typedef std::map<std::string,char*> ExtensibleStore;
-/** Needed */
-class InspIRCd;
-
/** The base class for all inspircd classes.
* Wherever possible, all classes you create should inherit from this,
* giving them the ability to be passed to various core functions
* as 'anonymous' classes.
-*/
+*/
class CoreExport classbase
{
public:
virtual ~classbase() { }
};
-/** class Extensible is the parent class of many classes such as userrec and chanrec.
+/** class Extensible is the parent class of many classes such as User and Channel.
* class Extensible implements a system which allows modules to 'extend' the class by attaching data within
* a map associated with the object. In this way modules can store their own custom information within user
* objects, channel objects and server objects, without breaking other modules (this is more sensible than using
* Holds all extensible metadata for the class.
*/
ExtensibleStore Extension_Items;
-
+
public:
/** Extend an Extensible class.
* @return Returns true on success.
*/
bool Shrink(const std::string &key);
-
+
/** Get an extension item.
*
* @param key The key parameter is an arbitary string which identifies the extension data
return false;
}
}
-
+
/** Get an extension item.
*
* @param key The key parameter is an arbitary string which identifies the extension data
* @return Returns true if the item was found and false if it was not.
- *
+ *
* This single-parameter version only checks if the key exists, it does nothing with
* the 'data' field and is probably only useful in conjunction with the single-parameter
* version of Extend().
/** OR two BoolSets together
*/
BoolSet operator|(BoolSet other);
-
+
/** AND two BoolSets together
*/
BoolSet operator&(BoolSet other);