]> git.mxchange.org Git - hub.git/commitdiff
Rewritten remaining (old) debug calls:
authorRoland Häder <roland@mxchange.org>
Wed, 13 Feb 2013 20:48:05 +0000 (20:48 +0000)
committerRoland Häder <roland@mxchange.org>
Wed, 13 Feb 2013 20:48:05 +0000 (20:48 +0000)
- Used self::createDebugInstance(__CLASS__)->debugOutput() instead of
  $fooInstance->debugOutput() as this is the newer approach
- Added method bootstrapDht() but still unimplemented

14 files changed:
application/hub/interfaces/distributable/class_Distributable.php
application/hub/main/dht/node/class_NodeDhtFacade.php
application/hub/main/discovery/package/class_PackageRecipientDiscovery.php
application/hub/main/discovery/socket/class_PackageSocketDiscovery.php
application/hub/main/factories/socket/class_SocketFactory.php
application/hub/main/factories/states/node/class_NodeStateFactory.php
application/hub/main/factories/states/peer/class_PeerStateFactory.php
application/hub/main/handler/tasks/class_TaskHandler.php
application/hub/main/helper/connection/tcp/class_TcpConnectionHelper.php
application/hub/main/states/cruncher/class_
application/hub/main/states/node/class_
application/hub/main/states/node/seniors/class_NodeReachableState.php
application/hub/main/statistics/connection/class_ConnectionStatisticsHelper.php
application/hub/main/tasks/node/dht/class_NodeDhtBootstrapTask.php

index ea20f871aab0de5fb065c788630577d7c495daec..acd099dd6bc95a59f3676366aee99d781069d24d 100644 (file)
@@ -29,11 +29,20 @@ interface Distributable extends FrameworkInterface {
         */
        function initDht ();
 
+       /**
+        * Bootstraps the DHT by sending out a message to all available nodes
+        * (including itself). This step helps the node to get to know more nodes
+        * which can be queried later for object distribution.
+        *
+        * @return      void
+        */
+       function bootstrapDht ();
+
        /**
         * Finds a node locally by given session id
         *
         * @param       $sessionId      Session id to lookup
-        * @return      $nodeData       Node data array
+        * @return      $nodeData       Node-data array
         */
        function findNodeLocalBySessionId ($sessionId);
 
index 5572d0b22633c070e9ea7b6a02053b85ffbf31aa..56c69efe21efe1a255ea3160444ba090be31dab8 100644 (file)
@@ -55,7 +55,6 @@ class NodeDhtFacade extends BaseDht implements Distributable, Registerable {
         * Initializes the distributed hash table (DHT)
         *
         * @return      void
-        * @todo        Please implement this method
         */
        public function initDht () {
                // Is the local node registered?
@@ -68,22 +67,38 @@ class NodeDhtFacade extends BaseDht implements Distributable, Registerable {
                }
        }
 
+       /**
+        * Bootstraps the DHT by sending out a message to all available nodes
+        * (including itself). This step helps the node to get to know more nodes
+        * which can be queried later for object distribution.
+        *
+        * @return      void
+        */
+       public function bootstrapDht () {
+       }
+
        /**
         * Finds a node locally by given session id
         *
         * @param       $sessionId      Session id to lookup
-        * @return      $nodeData       Node data array
+        * @return      $nodeData       Node-data array
         */
        public function findNodeLocalBySessionId ($sessionId) {
                // Default is empty data array
                $nodeData = array();
 
-               // Call the wrapper to do the job and get back a result instance
+               /*
+                * Call the wrapper to do the job and get back a result instance. There
+                * will come back zero or one entry from the wrapper.
+                */
                $resultInstance = $this->getWrapperInstance()->findNodeLocalBySessionId($sessionId);
 
                // Is the next entry valid?
                if ($resultInstance->next()) {
-                       // Then load the entry
+                       /*
+                        * Then load the first entry (more entries are being ignored and
+                        * should not happen).
+                        */
                        $nodeData = $resultInstance->current();
                } // END - if
 
@@ -212,9 +227,12 @@ class NodeDhtFacade extends BaseDht implements Distributable, Registerable {
         * @return      void
         */
        public function insertNodeList (array $nodeList) {
-               // If no node is given, skip this method silently
+               // If no node is in the list (array), skip the rest of this method silently
                if (count($nodeList) == 0) {
-                       // Skip it silently
+                       // Debug message
+                       self::createDebugInstance(__CLASS__)->debugOutput('DHT-FACADE: No node record has been returned.');
+
+                       // Abort here
                        return;
                } // END - if
 
index 6d6c3d490c7ec1766b96cfd085e8523e4b084d1b..f862936b69b52518664e7286d4d3c2f6b244a4c6 100644 (file)
@@ -46,7 +46,7 @@ class PackageRecipientDiscovery extends BaseHubDiscovery implements Discoverable
                $discoveryInstance->setListInstance($listInstance);
 
                // Output debug message
-               $discoveryInstance->debugOutput('RECIPIENT-DISCOVERY: Initialized.');
+               self::createDebugInstance(__CLASS__)->debugOutput('RECIPIENT-DISCOVERY: Initialized.');
 
                // Return the prepared instance
                return $discoveryInstance;
index 981f98326306ea3ae07cf88b38829b0904e34bef..ca5f47c674dca3b609846cadef573dd51574581d 100644 (file)
@@ -42,7 +42,7 @@ class PackageSocketDiscovery extends BaseHubDiscovery implements DiscoverableSoc
                $discoveryInstance = new PackageSocketDiscovery();
 
                // Output debug message
-               $discoveryInstance->debugOutput('SOCKET-DISCOVERY: Initialized.');
+               self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-DISCOVERY: Initialized.');
 
                // Return the prepared instance
                return $discoveryInstance;
index da88141c4ad9814f8c9d5923de405daab22807d7..1d484264efb49e58a976073071e53e06f6ee6edd 100644 (file)
@@ -48,7 +48,7 @@ class SocketFactory extends BaseHubHelper {
                $registryKey = 'socket_' . $protocolName . '_' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT];
 
                // Debug message
-               $factoryInstance->debugOutput('SOCKET-FACTORY: Trying to find a socket with registryKey=' . $registryKey);
+               self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY: Trying to find a socket with registryKey=' . $registryKey);
 
                // Is the key there?
                if (Registry::getRegistry()->instanceExists($registryKey)) {
@@ -59,19 +59,19 @@ class SocketFactory extends BaseHubHelper {
                        $socketResource = $containerInstance->getSocketResource();
 
                        // Debug message
-                       $factoryInstance->debugOutput('SOCKET-FACTORY: Using socket ' . $socketResource . '(' . gettype($socketResource) . ') from registry.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY: Using socket ' . $socketResource . '(' . gettype($socketResource) . ') from registry.');
                } else {
                        // Construct configuration entry for object factory and get it
                        $className = FrameworkConfiguration::getSelfInstance()->getConfigEntry($protocolName . '_connection_helper_class');
 
                        // Debug message
-                       $factoryInstance->debugOutput('SOCKET-FACTORY: Going to use class ' . $className . ' for creating a socket resource ...');
+                       self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY: Going to use class ' . $className . ' for creating a socket resource ...');
 
                        // And call the static method
                        $socketResource = call_user_func($className . '::createConnectionFromPackageData', $packageData);
 
                        // Debug message
-                       $factoryInstance->debugOutput('SOCKET-FACTORY: Created socket ' . $socketResource . '(' . gettype($socketResource) . ') from class ' . $className . '.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY: Created socket ' . $socketResource . '(' . gettype($socketResource) . ') from class ' . $className . '.');
 
                        // Construct container class, this won't be reached if an exception is thrown
                        $containerInstance = ObjectFactory::CreateObjectByConfiguredName('socket_container_class', array($socketResource, NULL, $packageData));
@@ -80,7 +80,7 @@ class SocketFactory extends BaseHubHelper {
                        Registry::getRegistry()->addInstance($registryKey, $containerInstance);
 
                        // Debug message
-                       $factoryInstance->debugOutput('SOCKET-FACTORY: Socket is now registered in registry.');
+                       self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY: Socket is now registered in registry.');
                }
 
                // Return the resource
index 5909cad06525e9b9ddbd07152ccd0f1be39faebb..223ff5dcc8d44f032eeac08fdfc3bc41bd774c1e 100644 (file)
@@ -48,7 +48,7 @@ class NodeStateFactory extends ObjectFactory {
                $stateInstance = self::createObjectByConfiguredName($className, array($nodeInstance));
 
                // Debug message
-               $stateInstance->debugOutput('NODE-STATE-FACTORY[' . __LINE__ . ']: Node state has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE-STATE-FACTORY[' . __LINE__ . ']: Node state has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
 
                // Once we have that state, set it in the node instance
                $nodeInstance->setStateInstance($stateInstance);
index 67fb24c3f9f02a1125e928faaee593aff957ac39..6510559c63b14afb6561b0a533674eb061a3bb26 100644 (file)
@@ -81,13 +81,13 @@ class PeerStateFactory extends ObjectFactory {
                        $tableInstance->purgeOldEntriesBySocketResource($socketResource);
                } catch (InvalidSocketException $e) {
                        // Just log all errors
-                       //* NOISY-DEBUG: */ $tableInstance->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Purging of old entries failed. Message from exception: ' . $e->getMessage());
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Purging of old entries failed. Message from exception: ' . $e->getMessage());
                }
 
                // Do we have an entry?
                if ($tableInstance->isSenderNewPeer($packageData)) {
                        // Debug output
-                       //* NOISY-DEBUG: */ $tableInstance->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] errorCode=' . $errorCode);
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] errorCode=' . $errorCode);
 
                        // Register the new peer with its session id
                        $tableInstance->registerPeerByPackageData($packageData, $socketResource);
@@ -102,7 +102,7 @@ class PeerStateFactory extends ObjectFactory {
                        $tableInstance->registerPeerState($stateInstance, $packageData);
                } elseif ($tableInstance->isSamePeerState($helperInstance, $packageData)) {
                        // Debug output
-                       //* NOISY-DEBUG: */ $tableInstance->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Peer state unchanged, re-generating old state ...');
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Peer state unchanged, re-generating old state ...');
 
                        /*
                         * The peer's state has noot changed, still we have to return a
@@ -111,7 +111,7 @@ class PeerStateFactory extends ObjectFactory {
                        $stateInstance = self::createPeerStateInstanceByName($helperInstance->getPrintableState(), $helperInstance);
                } else {
                        // Debug output
-                       //* NOISY-DEBUG: */ $tableInstance->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Updating peer state ...');
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Updating peer state ...');
 
                        /*
                         * It is an already known peer but with a changed state. So first
@@ -124,7 +124,7 @@ class PeerStateFactory extends ObjectFactory {
                }
 
                // Debug message
-               //* NOISY-DEBUG: */ $stateInstance->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Peer state has changed from ' . $helperInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . ' (' . $stateInstance->__toString() . ').');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Peer state has changed from ' . $helperInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . ' (' . $stateInstance->__toString() . ').');
 
                // Set the state in the helper
                $helperInstance->setStateInstance($stateInstance);
@@ -146,7 +146,7 @@ class PeerStateFactory extends ObjectFactory {
                $stateInstance = self::createObjectByConfiguredName('peer_' . $stateName . '_state_class', array($helperInstance));
 
                // Debug message
-               //* NOISY-DEBUG: */ $stateInstance->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Peer state has changed from ' . $helperInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . ' (' . $stateInstance->__toString() . ').');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('PEER-STATE-FACTORY[' . __LINE__ . ':] Peer state has changed from ' . $helperInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . ' (' . $stateInstance->__toString() . ').');
 
                // Once we have that state, set it in the peer instance
                $helperInstance->setStateInstance($stateInstance);
index 15ebd60a19cd47903f8e2cebc021675c8afdd860..398a21f1d890303840c473c75bf4523fd724724f 100644 (file)
@@ -48,7 +48,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                $handlerInstance = new TaskHandler();
 
                // Output debug message
-               $handlerInstance->debugOutput('TASK-HANDLER: Initializing task handler.');
+               self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER: Initializing task handler.');
 
                // Init the task list
                $handlerInstance->setListInstance(ObjectFactory::createObjectByConfiguredName('task_list_class'));
@@ -64,7 +64,7 @@ class TaskHandler extends BaseHandler implements Registerable, HandleableTask {
                $handlerInstance->registerTask('idle_loop', $taskInstance);
 
                // Output debug message
-               $handlerInstance->debugOutput('TASK-HANDLER: Task handler initialized.');
+               self::createDebugInstance(__CLASS__)->debugOutput('TASK-HANDLER: Task handler initialized.');
 
                // Return the prepared instance
                return $handlerInstance;
index b6ee583d07f68f800d24126ce80f2a346cb8e19d..c8f63c9dec84c3ac050f71500cf425135b27b78b 100644 (file)
@@ -93,7 +93,7 @@ class TcpConnectionHelper extends BaseConnectionHelper implements ConnectionHelp
                        $recipientData = explode(':', HubTools::resolveSessionId($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT]));
                } catch (NoValidHostnameException $e) {
                        // Debug message
-                       $helperInstance->debugOutput('CONNECTION-HELPER: Failed to resolve ' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT] . ':' . $e->getMessage());
+                       self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-HELPER: Failed to resolve ' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT] . ':' . $e->getMessage());
 
                        // Is the recipient equal as configured IP
                        if (substr($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT], 0, strlen($helperInstance->getConfigInstance()->getConfigEntry('external_ip'))) == $helperInstance->getConfigInstance()->getConfigEntry('external_ip')) {
index 1bed676a7000ea638f6c5d0b1ebb6bd0087c0393..bd5ad3beff579143b63422aab6406de3c76559c4 100644 (file)
@@ -46,7 +46,7 @@ class Cruncher???State extends BaseCruncherState implements Stateable {
                $stateInstance = new Cruncher???State();
 
                // Debug message
-               $stateInstance->debugOutput('CRUNCHER-STATE: Has changed from ' . $cruncherInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+               self::createDebugInstance(__CLASS__)->debugOutput('CRUNCHER-STATE: Has changed from ' . $cruncherInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
 
                // Set the cruncher instance
                $stateInstance->setCruncherInstance($cruncherInstance);
index 4a5299b5476572fc993681275288af78235a5ffa..af34a86de5c1ef5816d81add61c251d88575e213 100644 (file)
@@ -46,7 +46,7 @@ class Node???State extends BaseNodeState implements Stateable {
                $stateInstance = new Node???State();
 
                // Debug message
-               $stateInstance->debugOutput('NODE-STATE: Has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE-STATE: Has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
 
                // Set the node instance
                $stateInstance->setNodeInstance($nodeInstance);
index a0cdba1f8894b9b6243aa99757f92e73625b369d..2cf121ec4955af2e526541454e0811b7c7b47fe9 100644 (file)
@@ -46,7 +46,7 @@ class NodeReachableState extends BaseNodeState implements Stateable {
                $stateInstance = new NodeReachableState();
 
                // Debug message
-               $stateInstance->debugOutput('NODE-STATE: Has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE-STATE: Has changed from ' . $nodeInstance->getPrintableState() . ' to ' . $stateInstance->getStateName() . '.');
 
                // Set the node instance
                $stateInstance->setNodeInstance($nodeInstance);
index e098e26480b144ed6458bdc4e2f3fe311d6ffa2e..0261235feb8e3981d403afa37799063c0b3a95fd 100644 (file)
@@ -57,7 +57,7 @@ class ConnectionStatisticsHelper extends BaseHubSystem {
         * @return      $isExhausted            Whether the retry count has been reached
         */
        public static function isConnectRetryExhausted (ConnectionHelper $helperInstance) {
-               //* NOISY-DEBUG: */ $helperInstance->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - ENTERED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - ENTERED!');
                // Construct config entry
                $configEntry = $helperInstance->getProtocol() . '_connect_retry_max';
 
@@ -71,7 +71,7 @@ class ConnectionStatisticsHelper extends BaseHubSystem {
                );
 
                // Return it
-               //* NOISY-DEBUG: */ $helperInstance->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ',isExhausted=' . intval($isExhausted) . ' - EXIT!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ',isExhausted=' . intval($isExhausted) . ' - EXIT!');
                return $isExhausted;
        }
 
@@ -82,15 +82,15 @@ class ConnectionStatisticsHelper extends BaseHubSystem {
         * @return      void
         */
        public static function increaseConnectRetry (ConnectionHelper $helperInstance) {
-               //* NOISY-DEBUG: */ $helperInstance->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - ENTERED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - ENTERED!');
                // Is the counter there
                if (!isset(self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count'])) {
                        // First attempt
-                       //* NOISY-DEBUG: */ $helperInstance->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - FIRST!');
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - FIRST!');
                        self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count'] = 1;
                } else {
                        // Next attempt
-                       //* NOISY-DEBUG: */ $helperInstance->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - INCREMENT!');
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - INCREMENT!');
                        self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count']++;
                }
 
index 117b0205b52c5dd6021e6a71e500b82307f5cd45..7ca6ff7c5aa4c548a1564df55f93711f74246de0 100644 (file)
@@ -66,11 +66,10 @@ class NodeDhtBootstrapTask extends BaseTask implements Taskable, Visitable {
         * Executes the task
         *
         * @return      void
-        * @todo        0% done
         */
        public function executeTask () {
-               // "Cache" the DHT instance
-               $dhtInstance = $this->getDhtInstance();
+               // Let the DHT class do the work for us
+               $this->getDhtInstance()->bootstrapDht();
        }
 }