From: Roland Haeder Date: Tue, 24 Mar 2015 20:13:55 +0000 (+0100) Subject: Also moved this interface. X-Git-Url: https://git.mxchange.org/?p=core.git;a=commitdiff_plain;h=d5d8de21b351bddbf8b453c150c6eb8ee489ddeb Also moved this interface. Signed-off-by: Roland Häder --- diff --git a/inc/classes/interfaces/handler/task/.htaccess b/inc/classes/interfaces/handler/task/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/interfaces/handler/task/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/interfaces/handler/task/class_HandleableTask.php b/inc/classes/interfaces/handler/task/class_HandleableTask.php new file mode 100644 index 00000000..67969ac9 --- /dev/null +++ b/inc/classes/interfaces/handler/task/class_HandleableTask.php @@ -0,0 +1,70 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.shipsimu.org + * @todo HandleableDataSet looks strange here + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +interface HandleableTask extends HandleableDataSet { + /** + * Searches a task by given instance + * + * @param $taskInstanc An instanceof a Taskable class + * @return $taskName Name of the task as used while registration + */ + function searchTask (Taskable $taskInstance); + + /** + * Registers a task with a task handler. + * + * @param $taskName A task name to register the task on + * @param $taskInstance The instance we should register as a task + * @return void + */ + function registerTask ($taskName, Visitable $taskInstance); + + /** + * Checks whether tasks are left including idle task + * + * @return $tasksLeft Whether there are tasks left to handle + */ + function hasTasksLeft (); + + /** + * Handles all tasks by checking if they should startup or if it is their + * turn to run. You should use this method in a while() loop in conjuntion + * with hasTasksLeft() so you can e.g. shutdown by adding a ShutdownTask + * which will attempt to remove all tasks from the task handler. + * + * @return void + */ + function handleTasks (); + + /** + * Shuts down all tasks and the task handler itself. This method should be + * called from a corresponding filter class. + * + * @return void + */ + function doShutdown (); +} + +// [EOF] +?>