Added very basic implementation of updateDhtData()
authorRoland Häder <roland@mxchange.org>
Thu, 14 Feb 2013 22:46:09 +0000 (22:46 +0000)
committerRoland Häder <roland@mxchange.org>
Thu, 14 Feb 2013 22:46:09 +0000 (22:46 +0000)
.gitattributes
application/hub/config.php
application/hub/interfaces/distributable/class_Distributable.php
application/hub/main/dht/class_BaseDht.php
application/hub/main/states/dht/.htaccess [new file with mode: 0644]
application/hub/main/states/dht/class_ [new file with mode: 0644]
application/hub/main/states/dht/class_BaseDhtState.php [new file with mode: 0644]
application/hub/main/states/dht/init/.htaccess [new file with mode: 0644]
application/hub/main/states/dht/init/class_DhtInitState.php [new file with mode: 0644]
application/hub/main/states/dht/virgin/.htaccess [new file with mode: 0644]
application/hub/main/states/dht/virgin/class_DhtVirginState.php [new file with mode: 0644]

index e74efdf522f8e6f72236ebd4be81ba65c7b0582c..a071e24ddc75182708d59a84f70c7e64eed9cdf5 100644 (file)
@@ -577,6 +577,13 @@ application/hub/main/states/cruncher/init/.htaccess svneol=native#text/plain
 application/hub/main/states/cruncher/init/class_CruncherInitState.php svneol=native#text/plain
 application/hub/main/states/cruncher/virgin/.htaccess svneol=native#text/plain
 application/hub/main/states/cruncher/virgin/class_CruncherVirginState.php svneol=native#text/plain
+application/hub/main/states/dht/.htaccess -text svneol=unset#text/plain
+application/hub/main/states/dht/class_ svneol=native#text/plain
+application/hub/main/states/dht/class_BaseDhtState.php svneol=native#text/plain
+application/hub/main/states/dht/init/.htaccess -text svneol=unset#text/plain
+application/hub/main/states/dht/init/class_DhtInitState.php svneol=native#text/plain
+application/hub/main/states/dht/virgin/.htaccess -text svneol=unset#text/plain
+application/hub/main/states/dht/virgin/class_DhtVirginState.php svneol=native#text/plain
 application/hub/main/states/generic/.htaccess -text svneol=unset#text/plain
 application/hub/main/states/hub/.htaccess -text svneol=unset#text/plain
 application/hub/main/states/node/.htaccess -text svneol=unset#text/plain
index bdfcb0835c2d0c3ddf19c0af92b15b464884f3a1..7de51c2a65bbf6547b35b6549a0a9b6d5e525eab 100644 (file)
@@ -633,6 +633,12 @@ $cfg->setConfigEntry('node_reachable_state_class', 'NodeReachableState');
 // CFG: NODE-ANNOUNCEMENT-COMPLETED-STATE-CLASS
 $cfg->setConfigEntry('node_announcement_completed_state_class', 'NodeAnnouncementCompletedState');
 
+// CFG: DHT-INIT-STATE-CLASS
+$cfg->setConfigEntry('dht_init_state_class', 'DhtInitState');
+
+// CFG: DHT-VIRGIN-STATE-CLASS
+$cfg->setConfigEntry('dht_virgin_state_class', 'DhtVirginState');
+
 // CFG: NETWORK-PACKAGE-CLASS
 $cfg->setConfigEntry('network_package_class', 'NetworkPackage');
 
index acd099dd6bc95a59f3676366aee99d781069d24d..dc828071d27f532228fd2e62c3b5f46b1c61f95d 100644 (file)
@@ -83,6 +83,13 @@ interface Distributable extends FrameworkInterface {
         * @return      void
         */
        function insertNodeList (array $nodeList);
+
+       /**
+        * Updates/refreshes DHT data (e.g. status).
+        *
+        * @return      void
+        */
+       function updateDhtData ();
 }
 
 // [EOF]
index a71c2f3050164dd87e2ca94f016c02c933a576b2..597cc209ae649e3b7a2da49be79f9632fd44a6c2 100644 (file)
@@ -38,6 +38,17 @@ class BaseDht extends BaseHubSystem {
                 */
                DhtStateFactory::createDhtStateInstanceByName('init', $this);
        }
+
+       /**
+        * Updates/refreshes DHT data (e.g. status).
+        *
+        * @return      void
+        * @todo        Find more to do here
+        */
+       public function updateDhtData () {
+               // Set some dummy configuration entries, e.g. dht_status
+               $this->getConfigInstance()->setConfigEntry('dht_status', $this->getStateInstance()->getStateName());
+       }
 }
 
 // [EOF]
diff --git a/application/hub/main/states/dht/.htaccess b/application/hub/main/states/dht/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/hub/main/states/dht/class_ b/application/hub/main/states/dht/class_
new file mode 100644 (file)
index 0000000..0c4d1a0
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * A ??? dht state class
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 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 <http://www.gnu.org/licenses/>.
+ */
+class Dht???State extends BaseDhtState implements Stateable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+
+               // Set state name
+               $this->setStateName('!!!');
+       }
+
+       /**
+        * Creates an instance of this class
+        *
+        * @param       $dhtInstance    An instance of a Distributable class
+        * @return      $stateInstance  An instance of a Stateable class
+        */
+       public final static function createDht???State (Distributable $dhtInstance) {
+               // Get new instance
+               $stateInstance = new Dht???State();
+
+               // Debug message
+               self::createDebugInstance(__CLASS__)->debugOutput('DHT-STATE: Has changed from ' . $dhtInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+
+               // Set the dht instance
+               $stateInstance->setDhtInstance($dhtInstance);
+
+               // Return the prepared instance
+               return $stateInstance;
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/hub/main/states/dht/class_BaseDhtState.php b/application/hub/main/states/dht/class_BaseDhtState.php
new file mode 100644 (file)
index 0000000..e70151c
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * A general DHT state class
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 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 <http://www.gnu.org/licenses/>.
+ */
+class BaseDhtState extends BaseState {
+       /**
+        * Protected constructor
+        *
+        * @param       $className      Name of the class
+        * @return      void
+        */
+       protected function __construct ($className) {
+               // Call parent constructor
+               parent::__construct($className);
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/hub/main/states/dht/init/.htaccess b/application/hub/main/states/dht/init/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/hub/main/states/dht/init/class_DhtInitState.php b/application/hub/main/states/dht/init/class_DhtInitState.php
new file mode 100644 (file)
index 0000000..bc2ad15
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/**
+ * A Init dht state class
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 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 <http://www.gnu.org/licenses/>.
+ */
+class DhtInitState extends BaseDhtState implements Stateable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+
+               // Set state name
+               $this->setStateName('init');
+       }
+
+       /**
+        * Creates an instance of this class
+        *
+        * @param       $dhtInstance    An instance of a Distributable class
+        * @return      $stateInstance  An instance of a Stateable class
+        */
+       public final static function createDhtInitState (Distributable $dhtInstance) {
+               // Get new instance
+               $stateInstance = new DhtInitState();
+
+               // Debug message
+               self::createDebugInstance(__CLASS__)->debugOutput('DHT-STATE: Has changed from ' . $dhtInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+
+               // Set the dht instance
+               $stateInstance->setDhtInstance($dhtInstance);
+
+               // Return the prepared instance
+               return $stateInstance;
+       }
+
+       /**
+        * The DHT has been initialized. This means that the state can be changed
+        * to the next one: virgin.
+        *
+        * @return      void
+        */
+       public function dhtHasInitialized () {
+               // Create a new instance
+               DhtStateFactory::createDhtStateInstanceByName('virgin', $this->getDhtInstance());
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/hub/main/states/dht/virgin/.htaccess b/application/hub/main/states/dht/virgin/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/hub/main/states/dht/virgin/class_DhtVirginState.php b/application/hub/main/states/dht/virgin/class_DhtVirginState.php
new file mode 100644 (file)
index 0000000..ff461d5
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * A Virgin dht state class
+ *
+ * @author             Roland Haeder <webmaster@ship-simu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 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 <http://www.gnu.org/licenses/>.
+ */
+class DhtVirginState extends BaseDhtState implements Stateable {
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+
+               // Set state name
+               $this->setStateName('virgin');
+       }
+
+       /**
+        * Creates an instance of this class
+        *
+        * @param       $dhtInstance    An instance of a Distributable class
+        * @return      $stateInstance  An instance of a Stateable class
+        */
+       public final static function createDhtVirginState (Distributable $dhtInstance) {
+               // Get new instance
+               $stateInstance = new DhtVirginState();
+
+               // Debug message
+               self::createDebugInstance(__CLASS__)->debugOutput('DHT-STATE: Has changed from ' . $dhtInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+
+               // Set the dht instance
+               $stateInstance->setDhtInstance($dhtInstance);
+
+               // Return the prepared instance
+               return $stateInstance;
+       }
+}
+
+// [EOF]
+?>