X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=framework%2Fmain%2Fclasses%2Ftasks%2Fidle%2Fclass_IdleLoopTask.php;fp=framework%2Fmain%2Fclasses%2Ftasks%2Fidle%2Fclass_IdleLoopTask.php;h=a8bba3544ff03ede4835cb1bb03953d0ae9ee927;hp=0000000000000000000000000000000000000000;hb=78a010fef84895720e796842208f01dfb619c332;hpb=7629f2314d517561d4301ddfb068a797b6ed8700 diff --git a/framework/main/classes/tasks/idle/class_IdleLoopTask.php b/framework/main/classes/tasks/idle/class_IdleLoopTask.php new file mode 100644 index 00000000..a8bba354 --- /dev/null +++ b/framework/main/classes/tasks/idle/class_IdleLoopTask.php @@ -0,0 +1,90 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2017 Core Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.shipsimu.org + * + * 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 . + */ +class IdleLoopTask extends BaseTask implements Taskable, Visitable { + /** + * Idle loop time + */ + private $idleTime = 0; + + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + + // Init idle loop time from config ("cache" it here) + $this->idleTime = $this->getConfigInstance()->getConfigEntry('idle_loop_time'); + } + + /** + * Creates an instance of this class + * + * @return $taskInstance An instance of a Taskable/Visitable class + */ + public static final function createIdleLoopTask () { + // Get new instance + $taskInstance = new IdleLoopTask(); + + // Return the prepared instance + return $taskInstance; + } + + /** + * Accepts the visitor to process the visitor + * + * @param $visitorInstance An instance of a Visitor class + * @return void + */ + public function accept (Visitor $visitorInstance) { + // Visit this task + $visitorInstance->visitTask($this); + } + + /** + * Executes the task + * + * @return void + */ + public function executeTask () { + // Idle here a little + $this->idle($this->idleTime); + } + + /** + * Shutdown this task, this does nothing here, just supply the method. + * + * @return void + */ + public function doShutdown () { + // Debug message + self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('TASK[' . __METHOD__ . ':' . __LINE__ . ']: Shutting down...'); + } + +}