* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
- * E-mail:
- * <brain@chatspike.net>
- * <Craig@chatspike.net>
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
*
- * Written by Craig Edwards, Craig McLure, and others.
* This program is free but copyrighted software; see
* the file COPYING for details.
*
#ifndef __CULLLIST_H__
#define __CULLLIST_H__
-// include the common header files
-
-#include <typeinfo>
-#include <iostream>
-#include <string>
-#include <deque>
-#include <sstream>
-#include <vector>
-#include "users.h"
-#include "channels.h"
-
-class CullItem
+/**
+ * The CullList class is used to delete objects at the end of the main loop to
+ * avoid problems with references to deleted pointers if an object were deleted
+ * during execution.
+ */
+class CoreExport CullList : public classbase
{
private:
- userrec* user;
- std::string reason;
+ std::vector<classbase*> list;
+
public:
- CullItem(userrec* u, std::string r);
- userrec* GetUser();
- std::string GetReason();
-};
+ CullList() {}
+ /** Adds an item to the cull list
+ */
+ void AddItem(classbase* item) { list.push_back(item); }
-class CullList
-{
- private:
- std::vector<CullItem> list;
- char exempt[65535];
- public:
- CullList();
- void AddItem(userrec* user, std::string reason);
- int Apply();
+ /** Applies the cull list (deletes the contents)
+ */
+ void Apply();
};
#endif
+