/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2013, 2017 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2011 jackmcbarn <jackmcbarn@inspircd.org>
* Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
- * Copyright (C) 2008 Robin Burchell <robin+git@viroteck.net>
* Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- * Copyright (C) 2005, 2007 Craig Edwards <craigedwards@brainbox.cc>
+ * Copyright (C) 2005, 2010 Craig Edwards <brain@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
* redistribute it and/or modify it under the terms of the GNU General Public
*/
-#ifndef CULL_LIST_H
-#define CULL_LIST_H
+#pragma once
/**
* The CullList class is used to delete objects at the end of the main loop to
void Apply();
};
+/** Represents an action which is executable by an action list */
+class CoreExport ActionBase : public classbase
+{
+ public:
+ /** Executes this action. */
+ virtual void Call() = 0;
+};
+
class CoreExport ActionList
{
- std::vector<HandlerBase0<void>*> list;
+ std::vector<ActionBase*> list;
public:
/** Adds an item to the list
*/
- void AddAction(HandlerBase0<void>* item) { list.push_back(item); }
+ void AddAction(ActionBase* item) { list.push_back(item); }
/** Runs the items
*/
void Run();
};
-
-#endif
-