]> git.mxchange.org Git - hub.git/commitdiff
Some improvements:
authorRoland Haeder <roland@mxchange.org>
Sat, 15 Feb 2014 12:09:55 +0000 (13:09 +0100)
committerRoland Haeder <roland@mxchange.org>
Sat, 15 Feb 2014 12:09:55 +0000 (13:09 +0100)
- renamed BaseHubDiscovery -> BaseNodeDiscovery
- moved list-related code to BaseNodeDiscovery as this is more generic code
- Updated interface Discoverable with a missing public method from
  PackageRecipientDiscovery
- Other minor improvements

Signed-off-by: Roland Haeder <roland@mxchange.org>
application/hub/interfaces/discovery/class_Discoverable.php
application/hub/main/discovery/class_BaseHubDiscovery.php [deleted file]
application/hub/main/discovery/class_BaseNodeDiscovery.php [new file with mode: 0644]
application/hub/main/discovery/dht/class_DhtRecipientDiscovery.php
application/hub/main/discovery/package/class_PackageRecipientDiscovery.php
application/hub/main/discovery/socket/class_PackageSocketDiscovery.php

index aa582a616066c017960eea2d908b26f7ff61b89c..b10b10dc2cc7c00106317dd47e619a5d49ca7479 100644 (file)
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 interface Discoverable extends FrameworkInterface {
+       /**
+        * "Getter" for recipient iterator
+        *
+        * @return      $iteratorInstance       An instance of a Iterateable object
+        */
+       function getIterator ();
+
+       /**
+        * Clears all recipients for e.g. another package to deliver
+        *
+        * @return      void
+        */
+       function clearRecipients ();
+
+       /**
+        * Checks whether the recipient list is empty
+        *
+        * @return      $isEmpty        Whether the recipient list is empty
+        */
+       function isRecipientListEmpty ();
 }
 
 // [EOF]
diff --git a/application/hub/main/discovery/class_BaseHubDiscovery.php b/application/hub/main/discovery/class_BaseHubDiscovery.php
deleted file mode 100644 (file)
index 90b5386..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-/**
- * A PackageRecipient discovery class
- *
- * @author             Roland Haeder <webmaster@shipsimu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @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
- * 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 BaseHubDiscovery extends BaseDiscovery implements Discoverable {
-       /**
-        * Protected constructor
-        *
-        * @param       $className      Real class name
-        * @return      void
-        */
-       protected function __construct ($className) {
-               // Call parent constructor
-               parent::__construct($className);
-       }
-
-       /**
-        * Determines the protoctol name
-        *
-        * @param       $packageData    Valid package data
-        * @return      $protocolName   Name of used protocol (TCP/UDP/etc.)
-        */
-       protected function determineProtocolByPackageData (array $packageData) {
-               // First we need a tags instance
-               $tagsInstance = PackageTagsFactory::createPackageTagsInstance();
-
-               /*
-                * We need to decide here which socket (TCP or UDP) should be used for
-                * the actual data transmission. In this process we will find out if
-                * the recipient of this package has already a known (registered) socket
-                * and if so we can re-use it. If there is no socket registered, we try
-                * to make a new connection (TCP or UDP) to the given IP:port.
-                */
-               $protocolName = $tagsInstance->chooseProtocolFromPackageData($packageData);
-
-               // Return it
-               return $protocolName;
-       }
-}
-
-// [EOF]
-?>
diff --git a/application/hub/main/discovery/class_BaseNodeDiscovery.php b/application/hub/main/discovery/class_BaseNodeDiscovery.php
new file mode 100644 (file)
index 0000000..a608b7b
--- /dev/null
@@ -0,0 +1,105 @@
+<?php
+/**
+ * A PackageRecipient discovery class
+ *
+ * @author             Roland Haeder <webmaster@shipsimu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2012 Core Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @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
+ * 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 BaseNodeDiscovery extends BaseDiscovery implements Discoverable {
+       /**
+        * Protected constructor
+        *
+        * @param       $className      Real class name
+        * @return      void
+        */
+       protected function __construct ($className) {
+               // Call parent constructor
+               parent::__construct($className);
+
+               /*
+                * Get recipients list instance and set it here for all discovery
+                * implementations.
+                */
+               $listInstance = RecipientListFactory::createRecipientListInstance();
+               $this->setListInstance($listInstance);
+       }
+
+       /**
+        * Determines the protoctol name
+        *
+        * @param       $packageData    Valid package data
+        * @return      $protocolName   Name of used protocol (TCP/UDP/etc.)
+        */
+       protected function determineProtocolByPackageData (array $packageData) {
+               // First we need a tags instance
+               $tagsInstance = PackageTagsFactory::createPackageTagsInstance();
+
+               /*
+                * We need to decide here which socket (TCP or UDP) should be used for
+                * the actual data transmission. In this process we will find out if
+                * the recipient of this package has already a known (registered) socket
+                * and if so we can re-use it. If there is no socket registered, we try
+                * to make a new connection (TCP or UDP) to the given IP:port.
+                */
+               $protocolName = $tagsInstance->chooseProtocolFromPackageData($packageData);
+
+               // Return it
+               return $protocolName;
+       }
+
+       /**
+        * "Getter" for recipient iterator
+        *
+        * @return$iteratorInstance An instance of a Iterateable object
+        */
+       public final function getIterator () {
+               // Get iterator from it
+               $iteratorInstance = $this->getListInstance()->getIterator();
+
+               // Return it
+               return $iteratorInstance;
+       }
+
+       /**
+        * Clears all recipients for e.g. another package to deliver. This method
+        * simply clears the inner list instance.
+        *
+        * @return      void
+        */
+       public final function clearRecipients () {
+               // Clear the list
+               $this->getListInstance()->clearList();
+       }
+
+       /**
+        * Checks whether the recipient list is empty
+        *
+        * @return      $isEmpty        Whether the recipient list is empty
+        */
+       public final function isRecipientListEmpty () {
+               // Check it ...
+               $isEmpty = ($this->getListInstance()->count() == 0);
+
+               // Return it
+               return $isEmpty;
+       }
+}
+
+// [EOF]
+?>
index c9726c48a029fd614ef7ceed4ece08f2ba26df98..3ca916f909549eb201e2114fddc311a23b81b0e6 100644 (file)
@@ -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 DhtRecipientDiscovery extends BaseHubDiscovery implements DiscoverableDhtRecipient, Registerable {
+class DhtRecipientDiscovery extends BaseNodeDiscovery implements DiscoverableDhtRecipient, Registerable {
        /**
         * Protected constructor
         *
index d775e9995ac831fc5c40f5d51365b0df3d07db21..bfbde19d85082d32a24f60791214024feb149235 100644 (file)
@@ -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 PackageRecipientDiscovery extends BaseHubDiscovery implements DiscoverableNodeRecipient, Registerable {
+class PackageRecipientDiscovery extends BaseNodeDiscovery implements DiscoverableNodeRecipient, Registerable {
        /**
         * Protected constructor
         *
@@ -41,13 +41,6 @@ class PackageRecipientDiscovery extends BaseHubDiscovery implements Discoverable
                // Get an instance of this class
                $discoveryInstance = new PackageRecipientDiscovery();
 
-               // Get recipients list instance and set it
-               $listInstance = RecipientListFactory::createRecipientListInstance();
-               $discoveryInstance->setListInstance($listInstance);
-
-               // Output debug message
-               self::createDebugInstance(__CLASS__)->debugOutput('RECIPIENT-DISCOVERY[' . __LINE__ . ']: Initialized.');
-
                // Return the prepared instance
                return $discoveryInstance;
        }
@@ -121,43 +114,6 @@ class PackageRecipientDiscovery extends BaseHubDiscovery implements Discoverable
                        $this->getListInstance()->addEntry('ip_port', $decodedData[NetworkPackage::PACKAGE_DATA_RECIPIENT]);
                }
        }
-
-       /**
-        * "Getter" for recipient iterator
-        *
-        * @return      $iteratorInstance       An instance of a Iterateable object
-        */
-       public function getIterator () {
-               // Get iterator from it
-               $iteratorInstance = $this->getListInstance()->getIterator();
-
-               // Return it
-               return $iteratorInstance;
-       }
-
-       /**
-        * Checks whether the recipient list is empty
-        *
-        * @return      $isEmpty        Whether the recipient list is empty
-        */
-       public function isRecipientListEmpty () {
-               // Check it ...
-               $isEmpty = ($this->getListInstance()->count() == 0);
-
-               // Return it
-               return $isEmpty;
-       }
-
-       /**
-        * Clears all recipients for e.g. another package to deliver. This method
-        * simply clears the inner list instance.
-        *
-        * @return      void
-        */
-       public function clearRecipients () {
-               // Clear the list
-               $this->getListInstance()->clearList();
-       }
 }
 
 // [EOF]
index 1872ab64ff2f375e24a540040a997002ad1af248..26972e2da30d8ac89ae59bd775202e4019ca0510 100644 (file)
@@ -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 PackageSocketDiscovery extends BaseHubDiscovery implements DiscoverableSocket, Registerable {
+class PackageSocketDiscovery extends BaseNodeDiscovery implements DiscoverableSocket, Registerable {
        /**
         * Protected constructor
         *