]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/states/node/active/class_NodeActiveState.php
Updated copyright year as this software has been changed in this year.
[hub.git] / application / hub / main / states / node / active / class_NodeActiveState.php
index 6dd80ce50a6d7772ab1a0f91c6736aab3f8e3513..646e9fe68fef89b603d9ca02334976aedee72144 100644 (file)
@@ -1,12 +1,12 @@
 <?php
 /**
- * A Active node state class
+ * An active node state class
  *
- * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @author             Roland Haeder <webmaster@shipsimu.org>
  * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Hub Developer Team
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Hub Developer Team
  * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.ship-simu.org
+ * @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
@@ -21,7 +21,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-class NodeActiveState extends BaseState implements NodeStateable {
+class NodeActiveState extends BaseNodeState implements Stateable {
        /**
         * Protected constructor
         *
@@ -39,14 +39,14 @@ class NodeActiveState extends BaseState implements NodeStateable {
         * Creates an instance of this class
         *
         * @param       $nodeInstance   An instance of a NodeHelper class
-        * @return      $stateInstance  An instance of a NodeStateable class
+        * @return      $stateInstance  An instance of a Stateable class
         */
-       public final static function createNodeActiveState (NodeHelper $nodeInstance) {
+       public static final function createNodeActiveState (NodeHelper $nodeInstance) {
                // Get new instance
                $stateInstance = new NodeActiveState();
 
-               // 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);
@@ -54,6 +54,30 @@ class NodeActiveState extends BaseState implements NodeStateable {
                // Return the prepared instance
                return $stateInstance;
        }
+
+       /**
+        * State change for if the node got announced to it's upper hubs
+        *
+        * @return      void
+        */
+       public function nodeAnnouncingToUpperHubs () {
+               // Create the new state instance
+               NodeStateFactory::createNodeStateInstanceByName('announcing', $this->getNodeInstance());
+       }
+
+       /**
+        * State change for if the node has just connected to itself and
+        * node/session id are both equal. The self-connect means that
+        * the node possibly reachable from outside. This may require
+        * confirmation by other peers.
+        *
+        * @return      void
+        * @todo        We might want to move some calls to this method to fill it with life
+        */
+       public function nodeHasSelfConnected () {
+               // Create the new state instance
+               NodeStateFactory::createNodeStateInstanceByName('reachable', $this->getNodeInstance());
+       }
 }
 
 // [EOF]