diff options
Diffstat (limited to 'phpBB/includes/cron/task.php')
-rw-r--r-- | phpBB/includes/cron/task.php | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/phpBB/includes/cron/task.php b/phpBB/includes/cron/task.php new file mode 100644 index 0000000000..46eacff517 --- /dev/null +++ b/phpBB/includes/cron/task.php @@ -0,0 +1,80 @@ +<?php +/** +* +* @package phpBB3 +* @version $Id$ +* @copyright (c) 2010 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +/** +* @ignore +*/ +if (!defined('IN_PHPBB')) +{ + exit; +} + +/** +* Cron task interface +* @package phpBB3 +*/ +interface cron_task +{ + /** + * Runs this cron task. + */ + public function run(); + + /** + * Returns whether this cron task can run, given current board configuration. + * + * For example, a cron task that prunes forums can only run when + * forum pruning is enabled. + */ + public function is_runnable(); + + /** + * Returns whether this cron task should run now, because enough time + * has passed since it was last run. + */ + public function should_run(); + + /** + * Returns whether this cron task can be run in shutdown function. + */ + public function is_shutdown_function_safe(); +} + +/** +* Parametrized cron task interface. +* +* Parametrized cron tasks are somewhat of a cross between regular cron tasks and +* delayed jobs. Whereas regular cron tasks perform some action globally, +* parametrized cron tasks perform actions on a particular object (or objects). +* Parametrized cron tasks do not make sense and are not usable without +* specifying these objects. +* +* @package phpBB3 +*/ +interface parametrized_cron_task extends cron_task +{ + /** + * Returns parameters of this cron task as an array. + * + * The array must map string keys to string values. + */ + public function get_parameters(); + + /** + * Parses parameters found in $params, which is an array. + * + * $params contains user input and must not be trusted. + * In normal operation $params contains the same data that was returned by + * get_parameters method. However, a malicious user can supply arbitrary + * data in $params. + * Cron task must validate all keys and values in $params before using them. + */ + public function parse_parameters($params); +} |