/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2013-2014 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2013, 2017 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2009 Uli Schlachter <psychon@inspircd.org>
+ * Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
* Copyright (C) 2007-2008 Robin Burchell <robin+git@viroteck.net>
* Copyright (C) 2007 Dennis Friis <peavey@inspircd.org>
- * Copyright (C) 2006-2007 Craig Edwards <craigedwards@brainbox.cc>
+ * Copyright (C) 2006-2007, 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
public:
/** Default constructor, initializes the triggering time
* @param secs_from_now The number of seconds from now to trigger the timer
- * @param now The time now
* @param repeating Repeat this timer every secs_from_now seconds if set to true
*/
- Timer(unsigned int secs_from_now, time_t now, bool repeating = false)
- {
- trigger = now + secs_from_now;
- secs = secs_from_now;
- repeat = repeating;
- }
+ Timer(unsigned int secs_from_now, bool repeating = false);
/** Default destructor, removes the timer from the timer manager
*/
/** Sets the interval between two ticks.
*/
- void SetInterval(time_t interval);
+ void SetInterval(unsigned int interval);
/** Called when the timer ticks.
* You should override this method with some useful code to
* handle the tick event.
+ * @param TIME The current time.
+ * @return True if the Timer object is still valid, false if it was destructed.
*/
virtual bool Tick(time_t TIME) = 0;
}
};
-typedef std::multimap<time_t, Timer*> TimerMap;
-
/** This class manages sets of Timers, and triggers them at their defined times.
* This will ensure timers are not missed, as well as removing timers that have
* expired and allowing the addition of new ones.
*/
class CoreExport TimerManager
{
+ typedef std::multimap<time_t, Timer*> TimerMap;
+
/** A list of all pending timers
*/
TimerMap Timers;