* @version 0.0.0 * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Hub Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.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 HubMcryptCruncher extends BaseHubCruncher implements CruncherHelper, Registerable { /** * Protected constructor * * @return void */ protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); // Set version number $this->setVersion('0.0.0'); } /** * Creates an instance of this hub-cruncher class * * @param $requestInstance An instance of a Requestable class * @return $cruncherInstance An instance of this hub-cruncher class */ public final static function createHubMcryptCruncher (Requestable $requestInstance) { // Get a new instance $cruncherInstance = new HubMcryptCruncher(); // Set the request instance $cruncherInstance->setRequestInstance($requestInstance); // Return the instance return $cruncherInstance; } /** * Method to "bootstrap" the cruncher. This step does also apply provided * command-line arguments stored in the request instance. No buffer queue * will be initialized here, we do only "general" things here. * * @return void * @todo Implement this method */ public function doBootstrapping () { $this->partialStub('Please implement this method.'); } /** * This method determines if the in-buffer is going to depleted and if so, * it fetches more WUs from the network. If no WU can be fetched from the * network and if enabled, a random test WU is being generated. * * @return void */ public function doFetchWorkUnits () { // Simply check if we have enough WUs left in the in-buffer queue (a FIFO) if (!$this->isInBufferQueueFilled()) { // The in-buffer queue needs filling, so head out and get some work $this->fillInBufferQueueWithWorkUnits(); // Is the buffer still not filled and are test-packages allowed? if ((!$this->isInBufferQueueFilled()) && ($this->getConfigInstance()->getConfigEntry('cruncher_allow_test_units') == 'Y')) { // Then fill the in-buffer with (one) test-unit(s) $this->fillInBufferQueueWithTestUnits(); } // END - if } // END - if } /** * Outputs the console teaser. This should only be executed on startup or * full restarts. This method generates some space around the teaser. * * @return void */ public function outputConsoleTeaser () { // Output all lines $this->debugOutput(' '); $this->debugOutput('MCrypt Cruncher v' . $this->getVersion() . ' is starting ...'); $this->debugOutput('Copyright (c) 2011 MCrypt Cruncher Developer Team'); $this->debugOutput(' '); $this->debugOutput('This program comes with ABSOLUTELY NO WARRANTY; for details see docs/COPYING.'); $this->debugOutput('This is free software, and you are welcome to redistribute it under certain'); $this->debugOutput('conditions; see docs/COPYING for details.'); $this->debugOutput(' '); } /** * Add some cruncher-specific filters * * @param $controllerInstance An object of a Controller instance * @param $responseInstance An object of a Responseable instance * @return void * @todo 0% done */ public function addExtraFilters (Controller $controllerInstance, Responseable $responseInstance) { // Add some filters here $this->partialStub('Please add some cruncher-specific filters, if required.'); } } // [EOF] ?>