]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/nodes/class_BaseHubNode.php
Opps, wrong name :(
[hub.git] / application / hub / main / nodes / class_BaseHubNode.php
index 3a70b2959f1af7d264f005807cc71579ff87b5c2..1b052c5b909073397a5c4135d050f209078b1522 100644 (file)
@@ -55,17 +55,17 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         * Whether this node is anncounced (KEEP ON false!)
         * @deprecated
         */
-       private $hubIsAnnounced = false;
+       private $hubIsAnnounced = FALSE;
 
        /**
         * Whether this hub is active (default: false)
         */
-       private $isActive = false;
+       private $isActive = FALSE;
 
        /**
         * Whether this node accepts announcements (default: false)
         */
-       private $acceptAnnouncements = false;
+       private $acceptAnnouncements = FALSE;
 
        /**
         * Protected constructor
@@ -135,8 +135,11 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         * @return void
         */
        private function generatePrivateKeyAndHash (LocalSearchCriteria $searchInstance) {
+               // Get an RNG instance
+               $rngInstance = ObjectFactory::createObjectByConfiguredName('rng_class');
+
                // Generate a pseudo-random string
-               $randomString = $this->generateRandomString(255);
+               $randomString = $rngInstance->randomString(255);
 
                // Hash and encrypt the string so we become a node id (also documented as "hub id")
                $this->setPrivateKey($this->getCryptoInstance()->encryptString($randomString));
@@ -204,7 +207,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        protected function ifAddressMatchesBootstrappingNodes ($remoteAddr) {
                // By default nothing is found
-               $isFound = false;
+               $isFound = FALSE;
 
                // Run through all configured IPs
                foreach (explode(BaseHubSystem::BOOTSTRAP_NODES_SEPARATOR, $this->getConfigInstance()->getConfigEntry('hub_bootstrap_nodes')) as $ipPort) {
@@ -214,7 +217,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                        // Does it match?
                        if ($ipPortArray[0] == $remoteAddr) {
                                // Found it!
-                               $isFound = true;
+                               $isFound = TRUE;
 
                                // Remember the port number
                                $this->bootIpPort = $ipPort;
@@ -229,7 +232,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                                 * IP matches listen address. At this point we really don't care
                                 * if we can really listen on that address
                                 */
-                               $isFound = true;
+                               $isFound = TRUE;
 
                                // Remember the port number
                                $this->bootIpPort = $ipPort;
@@ -285,8 +288,11 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                        // Output message
                        self::createDebugInstance(__CLASS__)->debugOutput('BOOTSTRAP: Re-using found node-id: ' . $this->getNodeId() . '');
                } else {
+                       // Get an RNG instance
+                       $rngInstance = ObjectFactory::createObjectByConfiguredName('rng_class');
+
                        // Generate a pseudo-random string
-                       $randomString = $this->generateRandomString(255);
+                       $randomString = $rngInstance->randomString(255);
 
                        // Hash and encrypt the string so we become a node id (also documented as "hub id")
                        $this->setNodeId($this->getCryptoInstance()->hashString($this->getCryptoInstance()->encryptString($randomString)));
@@ -309,10 +315,14 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class');
 
                // Search for the node number one which is hard-coded the default
-               $searchInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_NR, 1);
-               $searchInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_TYPE, $this->getRequestInstance()->getRequestElement('mode'));
+               $searchInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_NR  , 1);
+               $searchInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_MODE, $this->getRequestInstance()->getRequestElement('mode'));
+               $searchInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_ID  , $this->getNodeId());
                $searchInstance->setLimit(1);
 
+               // Remember it for later usage
+               $this->setSearchInstance($searchInstance);
+
                // Get a random string
                $randomString = $this->generateRamdomString(255);
 
@@ -344,7 +354,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                                 * "tables". This allows a smooth update for the underlaying
                                 * database table.
                                 */
-                               $this->generatePrivateKeyAndHash($searchInstance);
+                               $this->generatePrivateKeyAndHash($this->getSearchInstance());
                        } else {
                                // Get the node id from result and set it
                                $this->setPrivateKey(base64_decode($this->getField(NodeInformationDatabaseWrapper::DB_COLUMN_PRIVATE_KEY)));
@@ -358,7 +368,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                         * Generate it in a private method (no confusion with 'private
                         * method access' and 'private key' here! ;-)).
                         */
-                       $this->generatePrivateKeyAndHash($searchInstance);
+                       $this->generatePrivateKeyAndHash($this->getSearchInstance());
                }
        }
 
@@ -374,8 +384,8 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                assert($requestInstance instanceof Requestable);
 
                // Add node number and type
-               $criteriaInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_NR, 1);
-               $criteriaInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_TYPE, $requestInstance->getRequestElement('mode'));
+               $criteriaInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_NR  , 1);
+               $criteriaInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_MODE, $requestInstance->getRequestElement('mode'));
 
                // Add the node id
                $criteriaInstance->addCriteria(NodeInformationDatabaseWrapper::DB_COLUMN_NODE_ID, $this->getNodeId());
@@ -443,7 +453,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        public function announceToUpperNodes (Taskable $taskInstance) {
                // Is this hub node announced?
-               if ($this->hubIsAnnounced === true) {
+               if ($this->hubIsAnnounced === TRUE) {
                        // Already announced!
                        throw new NodeAlreadyAnnouncedException($this, self::EXCEPTION_HUB_ALREADY_ANNOUNCED);
                } // END - if
@@ -480,7 +490,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        public function doSelfConnection (Taskable $taskInstance) {
                // Debug output
-               self::createDebugInstance(__CLASS__)->debugOutput('HUB: Self Connection: START (taskInstance=' . $taskInstance->__toString(). ')');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: Self Connection: START (taskInstance=' . $taskInstance->__toString(). ')');
 
                // Get a helper instance
                $helperInstance = ObjectFactory::createObjectByConfiguredName('node_self_connect_helper_class', array($this));
@@ -495,7 +505,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                $helperInstance->sendPackage($this);
 
                // Debug output
-               self::createDebugInstance(__CLASS__)->debugOutput('HUB: Self Connection: FINISHED');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: Self Connection: FINISHED');
        }
 
        /**
@@ -533,7 +543,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        public function initializeListenerPool () {
                // Debug output
-               self::createDebugInstance(__CLASS__)->debugOutput('HUB: Initialize listener: START');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: Initialize listener: START');
 
                // Get a new pool instance
                $this->setListenerPoolInstance(ObjectFactory::createObjectByConfiguredName('listener_pool_class', array($this)));
@@ -593,7 +603,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
                $this->getListenerPoolInstance()->addListener($decoratorInstance);
 
                // Debug output
-               self::createDebugInstance(__CLASS__)->debugOutput('HUB: Initialize listener: FINISHED.');
+               self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: Initialize listener: FINISHED.');
        }
 
        /**
@@ -611,7 +621,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         * @param       $isActive       Whether the hub is active
         * @return      void
         */
-       public final function enableIsActive ($isActive = true) {
+       public final function enableIsActive ($isActive = TRUE) {
                $this->isActive = (bool) $isActive;
        }
 
@@ -622,7 +632,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        public final function isAcceptingAnnouncements () {
                // Check it (this node must be active and not shutdown!)
-               $acceptAnnouncements = (($this->acceptAnnouncements === true) && ($this->isNodeActive()));
+               $acceptAnnouncements = (($this->acceptAnnouncements === TRUE) && ($this->isNodeActive()));
 
                // Return it
                return $acceptAnnouncements;
@@ -636,13 +646,13 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        public function ifNodeHasAnnounced () {
                // Debug message
-               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE: ifNodeHasAnnounced(): state=' . $this->getStateInstance()->getStateName());
+               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: ifNodeHasAnnounced(): state=' . $this->getStateInstance()->getStateName());
 
                // Simply check the state of this node
                $hasAnnounced = ($this->getStateInstance() instanceof NodeAnnouncedState);
 
                // Debug message
-               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE: ifNodeHasAnnounced(): hasAnnounced=' . intval($hasAnnounced));
+               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: ifNodeHasAnnounced(): hasAnnounced=' . intval($hasAnnounced));
 
                // Return it
                return $hasAnnounced;
@@ -656,13 +666,13 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         */
        public function ifNodeHasAnnouncementCompleted () {
                // Debug message
-               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE: ifNodeHasAnnouncementCompleted(): state=' . $this->getStateInstance()->getStateName());
+               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: ifNodeHasAnnouncementCompleted(): state=' . $this->getStateInstance()->getStateName());
 
                // Simply check the state of this node
                $hasAnnouncementCompleted = ($this->getStateInstance() instanceof NodeAnnouncementCompletedState);
 
                // Debug message
-               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE: ifNodeHasAnnouncementCompleted(): hasAnnouncementCompleted=' . intval($hasAnnouncementCompleted));
+               /* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('NODE[' . __LINE__ . ']: ifNodeHasAnnouncementCompleted(): hasAnnouncementCompleted=' . intval($hasAnnouncementCompleted));
 
                // Return it
                return $hasAnnouncementCompleted;
@@ -674,7 +684,7 @@ class BaseHubNode extends BaseHubSystem implements Updateable, AddableCriteria {
         * @param       $acceptAnnouncements    Whether this node accepts announcements (default: true)
         * @return      void
         */
-       protected final function enableAcceptingAnnouncements ($acceptAnnouncements = true) {
+       protected final function enableAcceptingAnnouncements ($acceptAnnouncements = TRUE) {
                $this->acceptAnnouncements = $acceptAnnouncements;
        }