]> git.mxchange.org Git - hub.git/commitdiff
Check wether the hub is active simplified (may also improve speed)
authorRoland Häder <roland@mxchange.org>
Sat, 27 Mar 2010 04:07:17 +0000 (04:07 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 27 Mar 2010 04:07:17 +0000 (04:07 +0000)
application/hub/main/commands/console/class_HubConsoleMainCommand.php
application/hub/main/nodes/class_BaseHubNode.php
application/hub/main/states/node/active/class_NodeActiveState.php

index c2c4a65a72a8481d0d726ef01917ac803283df90..fcbc20254dd7e11839b3a1d99a301d20d9ac8612 100644 (file)
@@ -90,7 +90,7 @@ class HubConsoleMainCommand extends BaseCommand implements Commandable {
                // This is the main loop. Queried calls should come back here very fast
                // so the whole application runs on nice speed. This while-loop goes
                // until the hub is no longer active or all tasks are killed.
-               while (($nodeInstance->determineIfHubIsActive()) && ($handlerInstance->hasTasksLeft())) {
+               while (($nodeInstance->getIsActive()) && ($handlerInstance->hasTasksLeft())) {
                        // Handle all tasks here
                        $handlerInstance->handleTasks();
                } // END - while
index f9d1cdf9c6425fe44b6d21b902650faf98457242..64c84080a0586f4a69c57e9bfc9462ff5cbb0b4d 100644 (file)
@@ -51,6 +51,11 @@ class BaseHubNode extends BaseHubSystem implements Updateable {
         */
        private $stateInstance = null;
 
+       /**
+        * Wether this hub is active
+        */
+       private $isActive = false;
+
        /**
         * Protected constructor
         *
@@ -486,7 +491,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable {
        public function activateHub (Requestable $requestInstance, Responseable $responseInstance) {
                // Checks wether a listener is still active and shuts it down if one
                // is still listening.
-               if (($this->determineIfListenerIsActive()) && ($this->determineIfHubIsActive())) {
+               if (($this->determineIfListenerIsActive()) && ($this->getIsActive())) {
                        // Shutdown them down before they can hurt anything
                        $this->shutdownListenerPool();
                } // END - if
@@ -602,17 +607,22 @@ class BaseHubNode extends BaseHubSystem implements Updateable {
        }
 
        /**
-        * Determines wether the hub is active by checking its current state
+        * Getter for isActive attribute
         *
         * @return      $isActive       Wether the hub is active
         */
-       public function determineIfHubIsActive () {
-               // Check the state
-               // @TODO Add more states e.g. 'firewalled', 'senior'
-               $isActive = ($this->getStateInstance() instanceof NodeActiveState);
+       public final function getIsActive () {
+               return $this->isActive;
+       }
 
-               // Return value
-               return $isActive;
+       /**
+        * Enables (default) or disables isActive flag
+        *
+        * @param       $isActive       Wether the hub is active
+        * @return      void
+        */
+       public final function enableIsActive ($isActive = true) {
+               $this->isActive = (bool) $isActive;
        }
 }
 
index c6c58771c4e055c19502ed24822296e75c0b7ab1..9f1a42ce19ce5e32eb3d2fa5d1448f3d61eaed6f 100644 (file)
@@ -48,6 +48,9 @@ class NodeActiveState extends BaseNodeState implements Stateable {
                // Debug message
                $stateInstance->debugOutput('NODE-STATE: Has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
 
+               // Enable isActive flag in node instance
+               $nodeInstance->enableIsActive();
+
                // Set the node instance
                $stateInstance->setNodeInstance($nodeInstance);