]> git.mxchange.org Git - hub.git/commitdiff
Refacturing to pass a ProtocolHandler instance instead of the direct name. This
authorRoland Haeder <roland@mxchange.org>
Wed, 8 Oct 2014 21:44:04 +0000 (23:44 +0200)
committerRoland Haeder <roland@mxchange.org>
Fri, 17 Oct 2014 22:44:35 +0000 (00:44 +0200)
makes the code more flexible to other protocol handlers including FAX
"connections" and many fancy stuff more.

This refacuring is not complete.

Signed-off-by: Roland Haeder <roland@mxchange.org>
33 files changed:
application/hub/interfaces/helper/connections/class_ConnectionHelper.php
application/hub/interfaces/package/class_Deliverable.php
application/hub/interfaces/protocol/class_ProtocolHandler.php
application/hub/interfaces/tags/class_Tagable.php
application/hub/main/class_BaseHubSystem.php
application/hub/main/discovery/class_BaseNodeDiscovery.php
application/hub/main/factories/socket/class_SocketFactory.php
application/hub/main/helper/class_
application/hub/main/helper/connection/class_
application/hub/main/helper/connection/class_BaseConnectionHelper.php
application/hub/main/helper/connection/tcp/class_TcpConnectionHelper.php
application/hub/main/helper/connection/udp/class_UdpConnectionHelper.php
application/hub/main/helper/dht/class_DhtBootstrapHelper.php
application/hub/main/helper/dht/class_DhtPublishEntryHelper.php
application/hub/main/helper/node/announcement/class_NodeAnnouncementHelper.php
application/hub/main/helper/node/answer/announcement/class_NodeAnnouncementMessageAnswerHelper.php
application/hub/main/helper/node/answer/dht/class_NodeDhtBootstrapMessageAnswerHelper.php
application/hub/main/helper/node/answer/requests/class_NodeRequestNodeListMessageAnswerHelper.php
application/hub/main/helper/node/class_
application/hub/main/helper/node/connection/class_NodeSelfConnectHelper.php
application/hub/main/helper/node/requests/class_NodeRequestNodeListHelper.php
application/hub/main/listener/class_BaseListener.php
application/hub/main/listener/class_BaseListenerDecorator.php
application/hub/main/listener/tcp/class_TcpListener.php
application/hub/main/listener/udp/class_UdpListener.php
application/hub/main/package/class_NetworkPackage.php
application/hub/main/pools/listener/class_DefaultListenerPool.php
application/hub/main/registry/connection/class_ConnectionRegistry.php
application/hub/main/registry/socket/class_SocketRegistry.php
application/hub/main/source/urls/class_CrawlerUploadedListUrlSource.php
application/hub/main/statistics/connection/class_ConnectionStatisticsHelper.php
application/hub/main/tags/package/class_PackageTags.php
core

index f6530d87b5c096ebfed0c8263e786edd5b11dd6f..3c088407fcaf6f09c3250d139e7cdb1239db10ee 100644 (file)
@@ -48,13 +48,6 @@ interface ConnectionHelper extends Helper {
         */
        function getPort ();
 
-       /**
-        * Getter for protocol
-        *
-        * @return      $protocol       Used protocol
-        */
-       function getProtocol ();
-
        /**
         * Getter for IP address
         *
index 292209360af3c0346d37422f77dae5632f713f89..2d859f2fe1cdc8062af5c8a8693283f39bf7662d 100644 (file)
@@ -28,10 +28,9 @@ interface Deliverable extends FrameworkInterface {
         * stack.
         *
         * @param       $helperInstance         An instance of a Helper class
-        * @param       $protocol                       Name of used protocol (TCP/UDP)
         * @return      void
         */
-       function enqueueRawDataFromTemplate (Helper $helperInstance, $protocol);
+       function enqueueRawDataFromTemplate (Helper $helperInstance);
 
        /**
         * Checks whether a package has been enqueued for delivery.
index d8e818865cedfdd8cc4a69232c1d3b2f106bf0ed..9e45f14cc938d0c46510a9297cdf0c50bf370a67 100644 (file)
@@ -30,11 +30,11 @@ interface ProtocolHandler extends FrameworkInterface {
        function getPort ();
 
        /**
-        * Getter for protocol
+        * Getter for protocol name
         *
-        * @return      $protocol       Used protocol
+        * @return      $protocol       Name of used protocol
         */
-       function getProtocol ();
+       function getProtocolName ();
 }
 
 // [EOF]
index 98000f5c7944fbf7fc3acbc04834a6ef509fd267..237c5cec7310f17d85eb741a20895e64931293e9 100644 (file)
@@ -26,7 +26,7 @@ interface Tagable extends FrameworkInterface {
         * Chooses the right protocol from given package data
         *
         * @param       $packageData    Raw package data
-        * @return      $protocolName   Name of the choosen procotol
+        * @return      $protocolInstance       An instance of a ProtocolHandler class
         */
        function chooseProtocolFromPackageData (array $packageData);
 
index ad83f7de251cfed72af6a9b0b9c7315a655c4111..dbc12da1e5d73dda169d6875a69a3990e7831497 100644 (file)
@@ -108,6 +108,11 @@ class BaseHubSystem extends BaseFrameworkSystem {
         */
        private $assemblerInstance = NULL;
 
+       /**
+        * Name of used protocol
+        */
+       private $protocolName = 'invalid';
+
        /**
         * Protected constructor
         *
@@ -679,6 +684,25 @@ class BaseHubSystem extends BaseFrameworkSystem {
                // Return result
                return $stateName;
        }
+
+       /**
+        * Getter for protocol name
+        *
+        * @return      $protocolName   Name of used protocol
+        */
+       public final function getProtocolName () {
+               return $this->protocolName;
+       }
+
+       /**
+        * Setter for protocol name
+        *
+        * @param       $protocolName   Name of used protocol
+        * @return      void
+        */
+       protected final function setProtocolName ($protocolName) {
+               $this->protocolName = $protocolName;
+       }
 }
 
 // [EOF]
index a608b7b07b16bbd6b84e0634e7b1a5fc46bbde26..110d2e5c4d69f8c9d55250a7b855f69f2036b105 100644 (file)
@@ -43,8 +43,8 @@ class BaseNodeDiscovery extends BaseDiscovery implements Discoverable {
        /**
         * Determines the protoctol name
         *
-        * @param       $packageData    Valid package data
-        * @return      $protocolName   Name of used protocol (TCP/UDP/etc.)
+        * @param       $packageData            Valid package data
+        * @return      $protocolInstance       An instance of a ProtocolHandler class
         */
        protected function determineProtocolByPackageData (array $packageData) {
                // First we need a tags instance
@@ -57,10 +57,10 @@ class BaseNodeDiscovery extends BaseDiscovery implements Discoverable {
                 * 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);
+               $protocolInstance = $tagsInstance->chooseProtocolFromPackageData($packageData);
 
                // Return it
-               return $protocolName;
+               return $protocolInstance;
        }
 
        /**
index c319eefeab703ecfc536af537d0ffa6b091c836f..8d7fa986678e5bdedf290a607b6c6b70d241bd55 100644 (file)
@@ -37,15 +37,15 @@ class SocketFactory extends ObjectFactory {
         * Creates a valid socket resource from given packae data and protocol
         *
         * @param       $packageData            Raw package data
-        * @param       $protocolName           Protocol name (TCP/UDP)
+        * @param       $protocolInstance       An instance of a ProtocolHandler class
         * @return      $socketResource         Socket resource
         */
-       public static function createSocketFromPackageData (array $packageData, $protocolName) {
+       public static function createSocketFromPackageData (array $packageData, ProtocolHandler $protocolInstance) {
                // Get an instance
                $factoryInstance = new SocketFactory();
 
                // Construct registry key
-               $registryKey = 'socket_' . $protocolName . '_' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT];
+               $registryKey = 'socket_' . $protocolInstance->getProtocolName() . '_' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT];
 
                // Debug message
                //*NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY[' . __METHOD__ . ':' . __LINE__ . ']: Trying to find a socket with registryKey=' . $registryKey);
@@ -62,7 +62,7 @@ class SocketFactory extends ObjectFactory {
                        //*NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY[' . __METHOD__ . ':' . __LINE__ . ']: 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');
+                       $className = FrameworkConfiguration::getSelfInstance()->getConfigEntry($protocolInstance->getProtocolName() . '_connection_helper_class');
 
                        // Debug message
                        //*NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-FACTORY[' . __METHOD__ . ':' . __LINE__ . ']: Going to use class ' . $className . ' for creating a socket resource ...');
index d3888ea4559f45494dc3bd58875b1691fcd86a2f..6f0dc6b205120d5aef3e29eb35625c595c203d62 100644 (file)
@@ -78,7 +78,7 @@ class !!!???Helper extends BaseHubSystemHelper implements Helpable!!! {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index 10696dc8cfd5cc05ebec8b5fff1fe3597042eca5..a25a662dca7028a810ed5513ca4676794f942cad 100644 (file)
@@ -33,7 +33,7 @@ class ???ConnectionHelper extends BaseConnectionHelper implements ConnectionHelp
                parent::__construct(__CLASS__);
 
                // Set protocol
-               $this->setProtocol('!!!');
+               $this->setProtocolName('!!!');
        }
 
        /**
index eede0f8f3a9800eb0104794bd47849be2254d15c..328eb03309277a1adede873b7f338d38d10c3a1d 100644 (file)
@@ -40,11 +40,6 @@ class BaseConnectionHelper extends BaseHubSystemHelper implements Registerable,
         */
        const CONNECTION_TYPE_SERVER   = 'server';
 
-       /**
-        * Protocol used
-        */
-       private $protocol = 'invalid';
-
        /**
         * Port number used
         */
@@ -147,25 +142,6 @@ class BaseConnectionHelper extends BaseHubSystemHelper implements Registerable,
                $this->port = $port;
        }
 
-       /**
-        * Getter for protocol
-        *
-        * @return      $protocol       Used protocol
-        */
-       public final function getProtocol () {
-               return $this->protocol;
-       }
-
-       /**
-        * Setter for protocol
-        *
-        * @param       $protocol       Used protocol
-        * @return      void
-        */
-       protected final function setProtocol ($protocol) {
-               $this->protocol = $protocol;
-       }
-
        /**
         * Getter for IP address
         *
@@ -413,7 +389,7 @@ class BaseConnectionHelper extends BaseHubSystemHelper implements Registerable,
                assert(strlen($rawData) > 0);
 
                // Calculate buffer size
-               $bufferSize = $this->getConfigInstance()->getConfigEntry($this->getProtocol() . '_buffer_length');
+               $bufferSize = $this->getConfigInstance()->getConfigEntry($this->getProtocolName() . '_buffer_length');
 
                // Encode the raw data with our output-stream
                $encodedData = $this->getOutputStreamInstance()->streamData($rawData);
index 4c7a6ab4ee3e6e6c69f4314038d1434f8515a19b..c898473f5a813571e5b189fbb014519d26ab63eb 100644 (file)
@@ -33,7 +33,7 @@ class TcpConnectionHelper extends BaseConnectionHelper implements ConnectionHelp
                parent::__construct(__CLASS__);
 
                // Set protocol
-               $this->setProtocol('tcp');
+               $this->setProtocolName('tcp');
        }
 
        /**
index 9b238379318d3047546ad60e4c257383be5779a0..944eacc915c421a462a2bee24cf3ae8083e93d71 100644 (file)
@@ -33,7 +33,7 @@ class UdpConnectionHelper extends BaseConnectionHelper implements ConnectionHelp
                parent::__construct(__CLASS__);
 
                // Set protocol
-               $this->setProtocol('udp');
+               $this->setProtocolName('udp');
        }
 
        /**
index bc5fcafccdd0fe1c4dedbac5f9009f6f689fcf06..b55c0338b074f07d1afbe4768603784c62cff61b 100644 (file)
@@ -98,7 +98,7 @@ class DhtBootstrapHelper extends BaseHubSystemHelper implements HelpableDht {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
 
                // Debug message
                /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('HELPER[' . __METHOD__ . ':' . __LINE__ . ']: EXIT!');
index 0e00a83f43faf9d59a1f9bf2cd1324db82e93ccd..8c7167e26f4661bcb8b6a3e6de58b7667d84743c 100644 (file)
@@ -91,7 +91,7 @@ class DhtPublishEntryHelper extends BaseHubSystemHelper implements HelpableDht {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index d76523988269a1d40388c3c15a798631df731397..17d4888f78b169eba0caa303b0a0235f086d4d50 100644 (file)
@@ -96,7 +96,7 @@ class NodeAnnouncementHelper extends BaseNodeHelper implements HelpableNode {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index 7c15681b5f15b7a4f8430c90d2893820c919be58..35378be8902ad8634161303f162497e7555e1d61 100644 (file)
@@ -96,7 +96,7 @@ class NodeAnnouncementMessageAnswerHelper extends BaseHubAnswerHelper implements
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index eebebd4ca9def4560bff5857f7f65c1ff9f4cef5..0fffc920f94c704c43f0003130fcd172d9a4465d 100644 (file)
@@ -96,7 +96,7 @@ class NodeDhtBootstrapMessageAnswerHelper extends BaseHubAnswerHelper implements
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index aa653358a01b38bd70c327a4d938ff1fc6ddf311..f397b8ecf62c4ca4bef355e1f0fa10abacc01dea 100644 (file)
@@ -102,7 +102,7 @@ class NodeRequestNodeListMessageAnswerHelper extends BaseHubAnswerHelper impleme
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index 5e5e493eb6718afebf397372937f452bf4fbefed..f110a04485a1a7d4a220c6aae152eee746eaa2fa 100644 (file)
@@ -75,7 +75,7 @@ class Node???Helper extends BaseNodeHelper implements HelpableNode {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_|||);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index 97c7c551a62225507219ee82d52842dbc23f0f0d..36ea314052dca90c62dbe08725866c63bb8e9407 100644 (file)
@@ -92,7 +92,7 @@ class NodeSelfConnectHelper extends BaseNodeHelper implements HelpableNode {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index 4429e58cb50c34ad7c0575577f75af02b2ac3702..37ee996ab1a3fb0bab55e303d467d4540829c38f 100644 (file)
@@ -92,7 +92,7 @@ class NodeRequestNodeListHelper extends BaseNodeHelper implements HelpableNode {
                $packageInstance = NetworkPackageFactory::createNetworkPackageInstance();
 
                // Next, feed the content in. The network package class is a pipe-through class.
-               $packageInstance->enqueueRawDataFromTemplate($this, NetworkPackage::PROTOCOL_TCP);
+               $packageInstance->enqueueRawDataFromTemplate($this);
        }
 }
 
index 2ee21895d569d7f40a04749153130e9e5e84b3dd..3cb9701bd89dba32d20cf69f5e9c8142890dc30d 100644 (file)
@@ -33,11 +33,6 @@ class BaseListener extends BaseHubSystem implements Visitable {
        const EXCEPTION_FINAL_CHUNK_VERIFICATION         = 0xa07;
        const EXCEPTION_INVALID_DATA_CHECKSUM            = 0xa08;
 
-       /**
-        * Used protocol (Default: invalid, which is indeed invalid...)
-        */
-       private $protocol = 'invalid';
-
        /**
         * Address (IP mostly) we shall listen on
         */
@@ -160,25 +155,6 @@ class BaseListener extends BaseHubSystem implements Visitable {
                $this->setListenPort($this->getConfigInstance()->getConfigEntry($configEntry));
        }
 
-       /**
-        * Setter for protocol
-        *
-        * @param       $protocol       Used protocol
-        * @return      void
-        */
-       protected final function setProtocol ($protocol) {
-               $this->protocol = (string) $protocol;
-       }
-
-       /**
-        * Getter for protocol
-        *
-        * @return      $protocol       Used protocol
-        */
-       public final function getProtocol () {
-               return $this->protocol;
-       }
-
        /**
         * Setter for blocking-mode
         *
@@ -272,7 +248,7 @@ class BaseListener extends BaseHubSystem implements Visitable {
         */
        public function accept (Visitor $visitorInstance) {
                // Debug message
-               //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($this->getProtocol()) . '-LISTENER[' . __METHOD__ . ':' . __LINE__ . ']: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - START');
+               //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($this->getProtocolName()) . '-LISTENER[' . __METHOD__ . ':' . __LINE__ . ']: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - START');
 
                // Visit this listener
                $visitorInstance->visitListener($this);
@@ -283,7 +259,7 @@ class BaseListener extends BaseHubSystem implements Visitable {
                } // END - if
 
                // Debug message
-               //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($this->getProtocol()) . '-LISTENER[' . __METHOD__ . ':' . __LINE__ . ']: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - FINISHED');
+               //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput(strtoupper($this->getProtocolName()) . '-LISTENER[' . __METHOD__ . ':' . __LINE__ . ']: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - FINISHED');
        }
 
        /**
index 758ae306df739d3ea731c08ec241c72f97cd9a1e..3a234cd8adc18a82f24616970d79d2f8f2c00e36 100644 (file)
@@ -65,15 +65,6 @@ class BaseListenerDecorator extends BaseDecorator implements Visitable {
                return $this->getListenerInstance()->getPort();
        }
 
-       /**
-        * Getter for protocol
-        *
-        * @return      $protocol       The used protocol
-        */
-       public final function getProtocol () {
-               return $this->getListenerInstance()->getProtocol();
-       }
-
        /**
         * Accepts the visitor to process the visit "request"
         *
index 473db762f57bf0ee09ed8e2a8ee5f3a47ba20a43..d6a87b27df5d44633e9c80b6b33b63ace2713dd3 100644 (file)
@@ -32,7 +32,7 @@ class TcpListener extends BaseListener implements Listenable {
                parent::__construct(__CLASS__);
 
                // Set the protocol to TCP
-               $this->setProtocol('tcp');
+               $this->setProtocolName('tcp');
        }
 
        /**
@@ -286,7 +286,7 @@ class TcpListener extends BaseListener implements Listenable {
                        $packageData = array(
                                NetworkPackage::PACKAGE_DATA_SENDER    => $peerName . ':0',
                                NetworkPackage::PACKAGE_DATA_RECIPIENT => $this->getSessionId(),
-                               NetworkPackage::PACKAGE_DATA_PROTOCOL  => $this->getProtocol(),
+                               NetworkPackage::PACKAGE_DATA_PROTOCOL  => $this->getProtocolName(),
                                NetworkPackage::PACKAGE_DATA_STATUS    => NetworkPackage::PACKAGE_STATUS_FAKED
                        );
 
index 3e27edafd77e9b3c338974fefd553e6a52e866d7..e267162f389d8560297bb6ad6a2974b5ca2d1d6a 100644 (file)
@@ -32,7 +32,7 @@ class UdpListener extends BaseListener implements Listenable {
                parent::__construct(__CLASS__);
 
                // Set the protocol to UDP
-               $this->setProtocol('udp');
+               $this->setProtocolName('udp');
        }
 
        /**
index 7d396a866993c2e7f3d9daf195ae6d0330f17d7a..0d1895047c500b738720f574d3c013ce8306b753 100644 (file)
@@ -625,10 +625,12 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
         * stack.
         *
         * @param       $helperInstance         An instance of a Helper class
-        * @param       $protocol                       Name of used protocol (TCP/UDP)
         * @return      void
         */
-       public function enqueueRawDataFromTemplate (Helper $helperInstance, $protocolName) {
+       public function enqueueRawDataFromTemplate (Helper $helperInstance) {
+               // Get protocol instance for recipient
+               $protocolInstance = ProtocolHandlerFactory::createProtocolFromRecipientHelper($helperInstance);
+
                // Get the raw content ...
                $content = $helperInstance->getTemplateInstance()->getRawTemplateData();
                //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('content(' . strlen($content) . ')=' . $content);
@@ -658,7 +660,7 @@ class NetworkPackage extends BaseHubSystem implements Deliverable, Receivable, R
                $this->getStackInstance()->pushNamed(self::STACKER_NAME_UNDECLARED, array(
                        self::PACKAGE_DATA_SENDER    => $this->getSessionId(),
                        self::PACKAGE_DATA_RECIPIENT => $helperInstance->getRecipientType(),
-                       self::PACKAGE_DATA_PROTOCOL  => $protocolName,
+                       self::PACKAGE_DATA_PROTOCOL  => $protocolInstance->getProtocolName(),
                        self::PACKAGE_DATA_CONTENT   => $packageContent,
                        self::PACKAGE_DATA_STATUS    => self::PACKAGE_STATUS_NEW,
                        self::PACKAGE_DATA_SIGNATURE => $this->generatePackageSignature($packageContent, $this->getSessionId())
index ead076ddaba5e02dc9ad03fd0402187f26dd1859..14a13e2e4228b68f5b1de7536644a8b6e9a6a382 100644 (file)
@@ -57,7 +57,7 @@ class DefaultListenerPool extends BasePool implements PoolableListener {
         */
        public function addListener (Listenable $listenerInstance) {
                // Add this listener instance to the instance list
-               parent::addInstance($listenerInstance->getProtocol(), 'listener', $listenerInstance);
+               parent::addInstance($listenerInstance->getProtocolName(), 'listener', $listenerInstance);
 
                // Debug message
                self::createDebugInstance(__CLASS__)->debugOutput(
index 92d66a03b4a69f7f16639ad116caeffe77b5a25b..32b4382023239d7069ca9460c75cfadf891116f0 100644 (file)
@@ -67,7 +67,7 @@ class ConnectionRegistry extends BaseRegistry implements Register, RegisterableC
                // Get protocol and port number and add both together
                $key = sprintf("%s:%s:%s",
                        $connectionInstance->__toString(),
-                       $connectionInstance->getProtocol(),
+                       $connectionInstance->getProtocolName(),
                        $connectionInstance->getPort()
                );
 
@@ -83,7 +83,7 @@ class ConnectionRegistry extends BaseRegistry implements Register, RegisterableC
         */
        private function getRegistryKeyFromProtocol (ConnectionHelper $connectionInstance) {
                // Get the key
-               $key = $connectionInstance->getProtocol();
+               $key = $connectionInstance->getProtocolName();
 
                // Return resulting key
                return $key;
index 96ea11e9d926810667cfec922bdcc677b8b96feb..71a84d1768cb83da6d7788e87f467be93bd188ea 100644 (file)
@@ -81,9 +81,9 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
                }
 
                // Get protocol and port number and add both together
-               $key = sprintf("%s:%s:%s:%s",
+               $key = sprintf('%s:%s:%s:%s',
                        $protocolInstance->__toString(),
-                       $protocolInstance->getProtocol(),
+                       $protocolInstance->getProtocolName(),
                        $address,
                        $protocolInstance->getPort()
                );
@@ -100,7 +100,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
         */
        private function getRegistryKeyFromProtocol (ProtocolHandler $protocolInstance) {
                // Get the key
-               $key = $protocolInstance->getProtocol();
+               $key = $protocolInstance->getProtocolName();
 
                // Return resulting key
                return $key;
@@ -114,7 +114,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
         */
        private function isProtocolRegistered (ProtocolHandler $protocolInstance) {
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ' - ENTERED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ' - ENTERED!');
 
                // Get the key
                $key = $this->getRegistryKeyFromProtocol($protocolInstance);
@@ -123,7 +123,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
                $isRegistered = $this->instanceExists($key);
 
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ',isRegistered=' . intval($isRegistered) . ' - EXIT!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ',isRegistered=' . intval($isRegistered) . ' - EXIT!');
 
                // Return result
                return $isRegistered;
@@ -139,7 +139,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
         */
        public function isSocketRegistered (ProtocolHandler $protocolInstance, $socketResource) {
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ' - ENTERED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ' - ENTERED!');
 
                // Default is not registered
                $isRegistered = FALSE;
@@ -150,7 +150,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
                        $key = $this->getRegistryKeyFromProtocol($protocolInstance);
 
                        // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']: protocol=' . $protocolInstance->getProtocol() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ',key=' . $key . ' - Trying to get instance ...');
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']: protocol=' . $protocolInstance->getProtocolName() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ',key=' . $key . ' - Trying to get instance ...');
 
                        // Get the registry
                        $registryInstance = $this->getInstance($key);
@@ -159,7 +159,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
                        $socketKey = $this->getSubRegistryKey($protocolInstance);
 
                        // Debug message
-                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']: protocol=' . $protocolInstance->getProtocol() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ',key=' . $key . ',socketKey=' . $socketKey . ' - Checking existence ...');
+                       //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']: protocol=' . $protocolInstance->getProtocolName() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ',key=' . $key . ',socketKey=' . $socketKey . ' - Checking existence ...');
 
                        // Is it there?
                        if ($registryInstance->instanceExists($socketKey)) {
@@ -178,7 +178,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
                } // END - if
 
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ',isRegistered=' . intval($isRegistered) . ' - EXIT!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ',isRegistered=' . intval($isRegistered) . ' - EXIT!');
 
                // Return the result
                return $isRegistered;
@@ -195,7 +195,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
         */
        public function registerSocket (ProtocolHandler $protocolInstance, $socketResource, array $packageData = array()) {
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ' - ENTERED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ' - ENTERED!');
 
                // Is the socket already registered?
                if ($this->isSocketRegistered($protocolInstance, $socketResource)) {
@@ -235,7 +235,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
         */
        public function getRegisteredSocketResource (ProtocolHandler $protocolInstance) {
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ' - ENTERED!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ' - ENTERED!');
 
                // The socket must be registered before we can return it
                if (!$this->isProtocolRegistered($protocolInstance)) {
@@ -256,7 +256,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke
                $socketResource = $registryInstance->getInstance($socketKey)->getSocketResource();
 
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocol() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ' - EXIT!');
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('SOCKET-REGISTRY[' . __METHOD__ . ':' . __LINE__ . ']:protocol=' . $protocolInstance->getProtocolName() . ',socketResource[' . gettype($socketResource) . ']=' . $socketResource . ' - EXIT!');
 
                // Return the resource
                return $socketResource;
index 605478d6059419ab3a1420bc6713aab9f2d87c5a..41fe3d7d7e2ea07b97b5f2b0f212ad7f6a187424 100644 (file)
@@ -44,7 +44,8 @@ class CrawlerUploadedListUrlSource extends BaseUrlSource implements UrlSource, R
                // Init source
                $sourceInstance->initSource('crawler', 'uploaded_list');
 
-               // Get a 
+               // Get a ??? @TODO
+
                // Return the prepared instance
                return $sourceInstance;
        }
index 29e5df2d1395fe4780e4b747c3eb335bc25e822a..c0d5be35c883cd37e41f3e277f68b7923dd575db 100644 (file)
@@ -59,14 +59,14 @@ class ConnectionStatisticsHelper extends BaseHubSystem {
        public static function isConnectRetryExhausted (ConnectionHelper $helperInstance) {
                //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-STATISTICS[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - ENTERED!');
                // Construct config entry
-               $configEntry = $helperInstance->getProtocol() . '_connect_retry_max';
+               $configEntry = $helperInstance->getProtocolName() . '_connect_retry_max';
 
                // Check it out
                $isExhausted = (
                        (
-                               isset(self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count'])
+                               isset(self::$connectionStatistics[$helperInstance->getProtocolName()][$helperInstance->__toString()]['retry_count'])
                        ) && (
-                               self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count'] >= $helperInstance->getConfigInstance()->getConfigEntry($configEntry)
+                               self::$connectionStatistics[$helperInstance->getProtocolName()][$helperInstance->__toString()]['retry_count'] >= $helperInstance->getConfigInstance()->getConfigEntry($configEntry)
                        )
                );
 
@@ -84,19 +84,19 @@ class ConnectionStatisticsHelper extends BaseHubSystem {
        public static function increaseConnectRetry (ConnectionHelper $helperInstance) {
                //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-STATISTICS[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - ENTERED!');
                // Is the counter there
-               if (!isset(self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count'])) {
+               if (!isset(self::$connectionStatistics[$helperInstance->getProtocolName()][$helperInstance->__toString()]['retry_count'])) {
                        // First attempt
                        //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-STATISTICS[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - FIRST!');
-                       self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count'] = 1;
+                       self::$connectionStatistics[$helperInstance->getProtocolName()][$helperInstance->__toString()]['retry_count'] = 1;
                } else {
                        // Next attempt
                        //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CONNECTION-STATISTICS[' . __METHOD__ . ':' . __LINE__ . ']: helperInstance=' . $helperInstance->__toString() . ' - INCREMENT!');
-                       self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['retry_count']++;
+                       self::$connectionStatistics[$helperInstance->getProtocolName()][$helperInstance->__toString()]['retry_count']++;
                }
 
                // Create/update 'last_update' for purging
                // @TODO last_update is not being used at the moment
-               self::$connectionStatistics[$helperInstance->getProtocol()][$helperInstance->__toString()]['last_update'] = time();
+               self::$connectionStatistics[$helperInstance->getProtocolName()][$helperInstance->__toString()]['last_update'] = time();
        }
 }
 
index 7fe9930859437b0e8d5822159b350c83d3853b6a..10de133b2112800acd80a7e26adfa64a739eb6d6 100644 (file)
@@ -26,9 +26,9 @@ class PackageTags extends BaseTags implements Tagable {
        const EXCEPTION_INVALID_TAG = 0x160;
 
        /**
-        * Last found protocol
+        * Last found protocol instance
         */
-       private $lastProtocol = 'invalid';
+       private $lastProtocol = NULL;
 
        /**
         * Last found recipient type
@@ -135,7 +135,7 @@ class PackageTags extends BaseTags implements Tagable {
                        } // END - if
 
                        // Now save the last discovered protocol/recipient type
-                       $this->lastProtocol      = $entry[XmlObjectRegistryTemplateEngine::OBJECT_TYPE_DATA_PROTOCOL];
+                       $this->lastProtocol      = ProtocolHandlerFactory::createProtocolHandlerFromArray($entry);
                        $this->lastRecipientType = $entry[XmlObjectRegistryTemplateEngine::OBJECT_TYPE_DATA_RECIPIENT_TYPE];
                } // END - foreach
        }
@@ -144,7 +144,7 @@ class PackageTags extends BaseTags implements Tagable {
         * Chooses the right protocol from given package data
         *
         * @param       $packageData    Raw package data
-        * @return      $protocolName   Name of the choosen procotol
+        * @return      $lastProtocol   An instance of the last used ProtocolHandler class
         */
        public function chooseProtocolFromPackageData (array $packageData) {
                // Extract the tags
@@ -153,11 +153,8 @@ class PackageTags extends BaseTags implements Tagable {
                // Now we need to verify every single tag
                $this->verifyAllTags();
 
-               // Use the last found protocol for transmission
-               $protocolName = $this->lastProtocol;
-
                // Return it
-               return $protocolName;
+               return $this->lastProtocol;
        }
 
        /**
diff --git a/core b/core
index 80d808f788a6b4712bc7a33abcfcc8bb432cbdf9..68bd2250d706545928c5882c34265ceae3e2f03f 160000 (submodule)
--- a/core
+++ b/core
@@ -1 +1 @@
-Subproject commit 80d808f788a6b4712bc7a33abcfcc8bb432cbdf9
+Subproject commit 68bd2250d706545928c5882c34265ceae3e2f03f