From ebb8b87adb267a0cbc38372939914d03738d9dd7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 25 Feb 2023 13:47:36 +0100 Subject: [PATCH] Continued: - fixed handling of sockets in socket registry - also fixed key spaces for object registries - updated 'core' framework --- .../class_HubConsoleAptProxyCommand.php | 2 +- .../console/class_HubConsoleChatCommand.php | 2 +- .../class_HubConsoleCrawlerCommand.php | 2 +- .../console/class_HubConsoleMinerCommand.php | 2 +- .../classes/crawler/class_BaseNodeCrawler.php | 2 +- .../node/class_NodeObjectFactory.php | 18 +- .../factories/socket/class_SocketFactory.php | 18 +- .../url/class_UrlSourceObjectFactory.php | 2 +- .../class_AptProxyInitializationFilter.php | 2 +- .../class_AptProxyWelcomeTeaserFilter.php | 2 +- .../apt-proxy/class_AptProxyBootstrap | 2 +- ...ProxyBootstrapExtraBootstrappingFilter.php | 2 +- ...tProxyBootstrapGenericActivationFilter.php | 2 +- .../filter/bootstrap/chat/class_ChatBootstrap | 2 +- ..._ChatBootstrapExtraBootstrappingFilter.php | 2 +- ...s_ChatBootstrapGenericActivationFilter.php | 2 +- .../bootstrap/crawler/class_CrawlerBootstrap | 2 +- ...awlerBootstrapExtraBootstrappingFilter.php | 2 +- ...rawlerBootstrapGenericActivationFilter.php | 2 +- .../bootstrap/miner/class_MinerBootstrap | 2 +- ...rBootstrapBufferQueueInitializerFilter.php | 2 +- ...MinerBootstrapExtraBootstrappingFilter.php | 2 +- ..._MinerBootstrapGenericActivationFilter.php | 2 +- .../chat/class_ChatInitializationFilter.php | 2 +- .../chat/class_ChatWelcomeTeaserFilter.php | 2 +- .../class_CrawlerWelcomeTeaserFilter.php | 2 +- .../miner/class_MinerWelcomeTeaserFilter.php | 2 +- .../class_AptProxyShutdownFilter.php | 2 +- .../chat/class_ChatShutdownFilter.php | 2 +- .../crawler/class_CrawlerShutdownFilter.php | 2 +- .../miner/class_MinerShutdownFilter.php | 2 +- ...s_AptProxyTaskHandlerInitializerFilter.php | 2 +- ...class_ChatTaskHandlerInitializerFilter.php | 2 +- .../task/class_BaseCrawlerTaskFilter.php | 2 +- ...lass_MinerTaskHandlerInitializerFilter.php | 2 +- .../classes/listener/class_BaseListener.php | 76 ++++---- .../hub/classes/miner/class_BaseHubMiner.php | 2 +- .../hub/classes/nodes/class_BaseHubNode.php | 4 +- .../miner/class_BaseMinerProducer.php | 2 +- .../registry/socket/class_SocketRegistry.php | 181 +++++++++--------- .../class_CrawlerNodeCommunicatorTask.php | 2 +- .../class_MinerBlockFetcherTask.php | 2 +- ...lass_MinerRealGenesisBlockProducerTask.php | 2 +- ...lass_MinerTestGenesisBlockProducerTask.php | 2 +- core | 2 +- 45 files changed, 192 insertions(+), 185 deletions(-) diff --git a/application/hub/classes/commands/console/class_HubConsoleAptProxyCommand.php b/application/hub/classes/commands/console/class_HubConsoleAptProxyCommand.php index 83254c90e..e55719a14 100644 --- a/application/hub/classes/commands/console/class_HubConsoleAptProxyCommand.php +++ b/application/hub/classes/commands/console/class_HubConsoleAptProxyCommand.php @@ -86,7 +86,7 @@ class HubConsoleAptProxyCommand extends BaseCommand implements Commandable { self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BOOTSTRAP: Bootstrap finished.'); // Get apt-proxy instance - $proxyInstance = ObjectRegistry::getRegistry('hub')->getInstance('apt_proxy'); + $proxyInstance = ObjectRegistry::getRegistry('factory')->getInstance('apt_proxy'); // Add some apt-proxy-specific filters $proxyInstance->addExtraAptProxyFilters(); diff --git a/application/hub/classes/commands/console/class_HubConsoleChatCommand.php b/application/hub/classes/commands/console/class_HubConsoleChatCommand.php index 94db02e03..5901b612b 100644 --- a/application/hub/classes/commands/console/class_HubConsoleChatCommand.php +++ b/application/hub/classes/commands/console/class_HubConsoleChatCommand.php @@ -86,7 +86,7 @@ class HubConsoleChatCommand extends BaseCommand implements Commandable { self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BOOTSTRAP: Bootstrap finished.'); // Get chat instance - $chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + $chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Add some chat-specific filters $chatInstance->addExtraChatFilters(); diff --git a/application/hub/classes/commands/console/class_HubConsoleCrawlerCommand.php b/application/hub/classes/commands/console/class_HubConsoleCrawlerCommand.php index 911910a9f..f97620097 100644 --- a/application/hub/classes/commands/console/class_HubConsoleCrawlerCommand.php +++ b/application/hub/classes/commands/console/class_HubConsoleCrawlerCommand.php @@ -86,7 +86,7 @@ class HubConsoleCrawlerCommand extends BaseCommand implements Commandable { self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BOOTSTRAP: Bootstrap finished.'); // Get crawler instance - $crawlerInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler'); + $crawlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler'); // Add some crawler-specific filters $crawlerInstance->addExtraCrawlerFilters(); diff --git a/application/hub/classes/commands/console/class_HubConsoleMinerCommand.php b/application/hub/classes/commands/console/class_HubConsoleMinerCommand.php index a286be8ce..90d3591eb 100644 --- a/application/hub/classes/commands/console/class_HubConsoleMinerCommand.php +++ b/application/hub/classes/commands/console/class_HubConsoleMinerCommand.php @@ -86,7 +86,7 @@ class HubConsoleMinerCommand extends BaseCommand implements Commandable { self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('BOOTSTRAP: Bootstrap finished.'); // Get miner instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Add some miner-specific filters $minerInstance->addExtraMinerFilters(); diff --git a/application/hub/classes/crawler/class_BaseNodeCrawler.php b/application/hub/classes/crawler/class_BaseNodeCrawler.php index fc887d097..221cedba0 100644 --- a/application/hub/classes/crawler/class_BaseNodeCrawler.php +++ b/application/hub/classes/crawler/class_BaseNodeCrawler.php @@ -54,7 +54,7 @@ abstract class BaseNodeCrawler extends BaseHubSystem { parent::__construct($className); // Set this crawler instance in registry - ObjectRegistry::getRegistry('hub')->addInstance('crawler', $this); + ObjectRegistry::getRegistry('factory')->addInstance('crawler', $this); // Init state which sets the state to 'init' $this->initState(); diff --git a/application/hub/classes/factories/node/class_NodeObjectFactory.php b/application/hub/classes/factories/node/class_NodeObjectFactory.php index c92ec5fb9..7e0cb377f 100644 --- a/application/hub/classes/factories/node/class_NodeObjectFactory.php +++ b/application/hub/classes/factories/node/class_NodeObjectFactory.php @@ -58,26 +58,26 @@ class NodeObjectFactory extends BaseFactory { */ public static final function createNodeInstance (Requestable $requestInstance = NULL, Responseable $responseInstance = NULL) { // Get new factory instance - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: requestInstance[]=%s,responseInstance[]=%s - CALLED!', gettype($requestInstance), gettype($responseInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: requestInstance[]=%s,responseInstance[]=%s - CALLED!', gettype($requestInstance), gettype($responseInstance))); $factoryInstance = new NodeObjectFactory(); // If there is no handler? if (ObjectRegistry::getRegistry('factory')->instanceExists('node')) { // Get handler from registry - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('NODE-FACTORY: Getting node instance from registry ...'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('NODE-FACTORY: Getting node instance from registry ...'); $nodeInstance = ObjectRegistry::getRegistry('factory')->getInstance('node'); } elseif (($requestInstance instanceof Requestable) && ($responseInstance instanceof Responseable)) { // The default node-mode is from our configuration - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('NODE-FACTORY: requestInstance and responseInstance are both set.'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('NODE-FACTORY: requestInstance and responseInstance are both set.'); $nodeMode = FrameworkBootstrap::getConfigurationInstance()->getConfigEntry('node_default_mode'); // Is the node 'mode' parameter set? - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: nodeMode=%s - from CONFIG', $nodeMode)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: nodeMode=%s - from CONFIG', $nodeMode)); if ($requestInstance->isRequestElementSet('mode')) { // Then use this which overrides the config entry temporarily $nodeMode = $requestInstance->getRequestElement('mode'); - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: nodeMode=%s - from REQUEST', $nodeMode)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: nodeMode=%s - from REQUEST', $nodeMode)); } else { // Set it for easier re-usage $requestInstance->setRequestElement('mode', $nodeMode); @@ -91,18 +91,18 @@ class NodeObjectFactory extends BaseFactory { ); // Get the node instance - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: Loading class with className=%s ...', $className)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: Loading class with className=%s ...', $className)); $nodeInstance = ObjectFactory::createObjectByName($className); // Get a registry $applicationInstance = ApplicationHelper::getSelfInstance(); // Add node-specific filters - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: Registering node-specific filters, responseInstance[]=%s', gettype($responseInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: Registering node-specific filters, responseInstance[]=%s', gettype($responseInstance))); $nodeInstance->addExtraFilters($applicationInstance->getControllerInstance(), $responseInstance); // Add it to the registry - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: Adding nodeInstance=%s to registry ...', $nodeInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: Adding nodeInstance=%s to registry ...', $nodeInstance->__toString())); ObjectRegistry::getRegistry('factory')->addInstance('node', $nodeInstance); } else { // Throw an exception here @@ -110,7 +110,7 @@ class NodeObjectFactory extends BaseFactory { } // Return the instance - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: nodeInstance=%s - EXIT!', $nodeInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('NODE-FACTORY: nodeInstance=%s - EXIT!', $nodeInstance->__toString())); return $nodeInstance; } diff --git a/application/hub/classes/factories/socket/class_SocketFactory.php b/application/hub/classes/factories/socket/class_SocketFactory.php index cafb1e9e0..3863ff4af 100644 --- a/application/hub/classes/factories/socket/class_SocketFactory.php +++ b/application/hub/classes/factories/socket/class_SocketFactory.php @@ -337,10 +337,8 @@ class SocketFactory extends BaseFactory { * @throws InvalidSocketException Thrown if the socket could not be initialized */ public static function createListenUdpSocket (Listenable $listenerInstance) { - // Trace message - //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: listenerInstance=%s - CALLED!', $listenerInstance->__toString())); - // Create a streaming socket, of type UDP + //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: listenerInstance=%s - CALLED!', $listenerInstance->__toString())); $socketResource = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); // Init fake package instance @@ -394,10 +392,8 @@ class SocketFactory extends BaseFactory { $socketInstance->handleSocketError(__METHOD__, __LINE__); } - // Trace message - //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: socketInstance=%s - EXIT!', $socketInstance->__toString())); - // Return prepepared socket + //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: socketInstance=%s - EXIT!', $socketInstance->__toString())); return $socketInstance; } @@ -412,10 +408,8 @@ class SocketFactory extends BaseFactory { * @throws LogicException If the current instance is not valid */ public static final function createNextAcceptedSocketFromPool (Poolable $poolInstance, StorableSocket $socketInstance) { - // Trace message - //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: poolInstance=%s,socketInstance->socketResource=%s - CALLED!', $poolInstance->__toString(), $socketInstance->getSocketResource())); - // Get socket protocol + //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-FACTORY: poolInstance=%s,socketInstance->socketResource=%s - CALLED!', $poolInstance->__toString(), $socketInstance->getSocketResource())); $socketProtocol = $socketInstance->getSocketProtocol(); // Is the an iterator instance? @@ -458,7 +452,7 @@ class SocketFactory extends BaseFactory { $acceptedSocketInstance = $current[Poolable::SOCKET_ARRAY_INSTANCE]->acceptNewIncomingSocket(); // Return found socket instance - //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: acceptedSocketInstance[]=%s - EXIT!', gettype($acceptedSocketInstance))); + //* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-FACTORY: acceptedSocketInstance[]=%s - EXIT!', gettype($acceptedSocketInstance))); return $acceptedSocketInstance; } @@ -472,7 +466,7 @@ class SocketFactory extends BaseFactory { */ public static final function createIncomingSocketInstance ($socketResource, string $socketProtocol) { // Validate parameter - /* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: socketResource[%s]=%s,socketProtocol=%s - CALLED!', gettype($socketResource), $socketResource, $socketProtocol)); + /* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-FACTORY: socketResource[%s]=%s,socketProtocol=%s - CALLED!', gettype($socketResource), $socketResource, $socketProtocol)); if (!is_resource($socketResource)) { // Throw exception throw new InvalidArgumentException(sprintf('socketResource[]=%s is not valid', gettype($socketResource))); @@ -527,7 +521,7 @@ class SocketFactory extends BaseFactory { } // Return found socket instance - /* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-FACTORY: socketInstance=%s - EXIT!', $socketInstance->__toString())); + /* NOISY-DEBUG */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-FACTORY: socketInstance=%s - EXIT!', $socketInstance->__toString())); return $socketInstance; } } diff --git a/application/hub/classes/factories/source/url/class_UrlSourceObjectFactory.php b/application/hub/classes/factories/source/url/class_UrlSourceObjectFactory.php index c3c136bb2..48c017a35 100644 --- a/application/hub/classes/factories/source/url/class_UrlSourceObjectFactory.php +++ b/application/hub/classes/factories/source/url/class_UrlSourceObjectFactory.php @@ -52,7 +52,7 @@ class UrlSourceObjectFactory extends BaseFactory { $factoryInstance = new UrlSourceObjectFactory(); // Get task handler instance - $handlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('task_handler'); + $handlerInstance = ObjectRegistry::getRegistry('generic')->getInstance('task_handler'); // Get source type by looking for given task instance in task handler $sourceType = $handlerInstance->searchTask($taskInstance); diff --git a/application/hub/classes/filter/apt-proxy/class_AptProxyInitializationFilter.php b/application/hub/classes/filter/apt-proxy/class_AptProxyInitializationFilter.php index af7c0f8ed..5db7f861c 100644 --- a/application/hub/classes/filter/apt-proxy/class_AptProxyInitializationFilter.php +++ b/application/hub/classes/filter/apt-proxy/class_AptProxyInitializationFilter.php @@ -78,7 +78,7 @@ class AptProxyInitializationFilter extends BaseAptProxyFilter implements Filtera $proxyInstance->addExtraFilters($applicationInstance->getControllerInstance(), $responseInstance); // Set the apt_proxy instance in registry - ObjectRegistry::getRegistry('hub')->addInstance('apt_proxy', $proxyInstance); + ObjectRegistry::getRegistry('factory')->addInstance('apt_proxy', $proxyInstance); } } diff --git a/application/hub/classes/filter/apt-proxy/class_AptProxyWelcomeTeaserFilter.php b/application/hub/classes/filter/apt-proxy/class_AptProxyWelcomeTeaserFilter.php index e3af90ce9..f2f9a5b10 100644 --- a/application/hub/classes/filter/apt-proxy/class_AptProxyWelcomeTeaserFilter.php +++ b/application/hub/classes/filter/apt-proxy/class_AptProxyWelcomeTeaserFilter.php @@ -68,7 +68,7 @@ class AptProxyWelcomeTeaserFilter extends BaseAptProxyFilter implements Filterab */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $proxyInstance = ObjectRegistry::getRegistry('hub')->getInstance('apt_proxy'); + $proxyInstance = ObjectRegistry::getRegistry('factory')->getInstance('apt_proxy'); // Now output the teaser $proxyInstance->outputConsoleTeaser(); diff --git a/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrap b/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrap index f8388a394..592cc6267 100644 --- a/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrap +++ b/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrap @@ -65,7 +65,7 @@ class AptProxyBootstrap???Filter extends BaseAptProxyFilter implements Filterabl */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get apt-proxy instance - $proxyInstance = ObjectRegistry::getRegistry('hub')->getInstance('apt_proxy'); + $proxyInstance = ObjectRegistry::getRegistry('factory')->getInstance('apt_proxy'); // Now do something DebugMiddleware::getSelfInstance()->partialStub('Please implement this step.'); diff --git a/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapExtraBootstrappingFilter.php b/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapExtraBootstrappingFilter.php index aab49d44f..9658479f1 100644 --- a/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapExtraBootstrappingFilter.php +++ b/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapExtraBootstrappingFilter.php @@ -67,7 +67,7 @@ class AptProxyBootstrapExtraBootstrappingFilter extends BaseAptProxyFilter imple */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get apt-proxy instance - $proxyInstance = ObjectRegistry::getRegistry('hub')->getInstance('apt_proxy'); + $proxyInstance = ObjectRegistry::getRegistry('factory')->getInstance('apt_proxy'); // Do some extra bootstrapping steps $proxyInstance->doBootstrapping(); diff --git a/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapGenericActivationFilter.php b/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapGenericActivationFilter.php index 46fedc320..e075e9494 100644 --- a/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapGenericActivationFilter.php +++ b/application/hub/classes/filter/bootstrap/apt-proxy/class_AptProxyBootstrapGenericActivationFilter.php @@ -67,7 +67,7 @@ class AptProxyBootstrapGenericActivationFilter extends BaseAptProxyFilter implem */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get a apt-proxy instance - $proxyInstance = ObjectRegistry::getRegistry('hub')->getInstance('apt_proxy'); + $proxyInstance = ObjectRegistry::getRegistry('factory')->getInstance('apt_proxy'); // Set the flag $proxyInstance->enableIsActive(); diff --git a/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrap b/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrap index a0a2161f6..caf94d406 100644 --- a/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrap +++ b/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrap @@ -65,7 +65,7 @@ class ChatBootstrap???Filter extends BaseChatFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get chat instance - $chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + $chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Now do something DebugMiddleware::getSelfInstance()->partialStub('Please implement this step.'); diff --git a/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapExtraBootstrappingFilter.php b/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapExtraBootstrappingFilter.php index 5da5bd443..0d3cf7c1c 100644 --- a/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapExtraBootstrappingFilter.php +++ b/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapExtraBootstrappingFilter.php @@ -67,7 +67,7 @@ class ChatBootstrapExtraBootstrappingFilter extends BaseChatFilter implements Fi */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get chat instance - $chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + $chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Do some extra bootstrapping steps $chatInstance->doBootstrapping(); diff --git a/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapGenericActivationFilter.php b/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapGenericActivationFilter.php index d845a3bd1..21be0588b 100644 --- a/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapGenericActivationFilter.php +++ b/application/hub/classes/filter/bootstrap/chat/class_ChatBootstrapGenericActivationFilter.php @@ -67,7 +67,7 @@ class ChatBootstrapGenericActivationFilter extends BaseChatFilter implements Fil */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get a chat instance - $chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + $chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Set the flag $chatInstance->enableIsActive(); diff --git a/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrap b/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrap index e47057004..eaf906032 100644 --- a/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrap +++ b/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrap @@ -65,7 +65,7 @@ class CrawlerBootstrap???Filter extends BaseCrawlerFilter implements Filterable */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get crawler instance - $crawlerInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler'); + $crawlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler'); // Now do something DebugMiddleware::getSelfInstance()->partialStub('Please implement this step.'); diff --git a/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapExtraBootstrappingFilter.php b/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapExtraBootstrappingFilter.php index 4aec418be..5a82fa2f9 100644 --- a/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapExtraBootstrappingFilter.php +++ b/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapExtraBootstrappingFilter.php @@ -67,7 +67,7 @@ class CrawlerBootstrapExtraBootstrappingFilter extends BaseCrawlerFilter impleme */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get crawler instance - $crawlerInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler'); + $crawlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler'); // Do some extra bootstrapping steps $crawlerInstance->doBootstrapping(); diff --git a/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapGenericActivationFilter.php b/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapGenericActivationFilter.php index daef9b109..93116a976 100644 --- a/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapGenericActivationFilter.php +++ b/application/hub/classes/filter/bootstrap/crawler/class_CrawlerBootstrapGenericActivationFilter.php @@ -67,7 +67,7 @@ class CrawlerBootstrapGenericActivationFilter extends BaseCrawlerFilter implemen */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get a crawler instance - $crawlerInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler'); + $crawlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler'); // Set the flag $crawlerInstance->enableIsActive(); diff --git a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrap b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrap index 800f2a1e4..7666961b7 100644 --- a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrap +++ b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrap @@ -68,7 +68,7 @@ class MinerBootstrap???Filter extends BaseMinerFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get miner instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Now do something DebugMiddleware::getSelfInstance()->partialStub('Please implement this step.'); diff --git a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapBufferQueueInitializerFilter.php b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapBufferQueueInitializerFilter.php index e2424e9a7..da5a50745 100644 --- a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapBufferQueueInitializerFilter.php +++ b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapBufferQueueInitializerFilter.php @@ -67,7 +67,7 @@ class MinerBootstrapBufferQueueInitializerFilter extends BaseMinerFilter impleme */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get miner instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Init all buffer queues $minerInstance->initBufferQueues(); diff --git a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapExtraBootstrappingFilter.php b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapExtraBootstrappingFilter.php index 599f534fa..91409fba2 100644 --- a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapExtraBootstrappingFilter.php +++ b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapExtraBootstrappingFilter.php @@ -67,7 +67,7 @@ class MinerBootstrapExtraBootstrappingFilter extends BaseMinerFilter implements */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get miner instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Do some extra bootstrapping steps $minerInstance->doBootstrapping(); diff --git a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapGenericActivationFilter.php b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapGenericActivationFilter.php index ac78b7742..5880ec70a 100644 --- a/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapGenericActivationFilter.php +++ b/application/hub/classes/filter/bootstrap/miner/class_MinerBootstrapGenericActivationFilter.php @@ -67,7 +67,7 @@ class MinerBootstrapGenericActivationFilter extends BaseMinerFilter implements F */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get a miner instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Set the flag $minerInstance->enableIsActive(); diff --git a/application/hub/classes/filter/chat/class_ChatInitializationFilter.php b/application/hub/classes/filter/chat/class_ChatInitializationFilter.php index 6f03a23ce..cfc331bfc 100644 --- a/application/hub/classes/filter/chat/class_ChatInitializationFilter.php +++ b/application/hub/classes/filter/chat/class_ChatInitializationFilter.php @@ -78,7 +78,7 @@ class ChatInitializationFilter extends BaseChatFilter implements Filterable { $chatInstance->addExtraFilters($applicationInstance->getControllerInstance(), $responseInstance); // Set the chat instance in registry - ObjectRegistry::getRegistry('hub')->addInstance('chat', $chatInstance); + ObjectRegistry::getRegistry('factory')->addInstance('chat', $chatInstance); } } diff --git a/application/hub/classes/filter/chat/class_ChatWelcomeTeaserFilter.php b/application/hub/classes/filter/chat/class_ChatWelcomeTeaserFilter.php index 27e8bf917..834c1212f 100644 --- a/application/hub/classes/filter/chat/class_ChatWelcomeTeaserFilter.php +++ b/application/hub/classes/filter/chat/class_ChatWelcomeTeaserFilter.php @@ -68,7 +68,7 @@ class ChatWelcomeTeaserFilter extends BaseChatFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + $chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Now output the teaser $chatInstance->outputConsoleTeaser(); diff --git a/application/hub/classes/filter/crawler/class_CrawlerWelcomeTeaserFilter.php b/application/hub/classes/filter/crawler/class_CrawlerWelcomeTeaserFilter.php index 59bec3866..e28d56e10 100644 --- a/application/hub/classes/filter/crawler/class_CrawlerWelcomeTeaserFilter.php +++ b/application/hub/classes/filter/crawler/class_CrawlerWelcomeTeaserFilter.php @@ -68,7 +68,7 @@ class CrawlerWelcomeTeaserFilter extends BaseCrawlerFilter implements Filterable */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $crawlerInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler'); + $crawlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler'); // Now output the teaser $crawlerInstance->outputConsoleTeaser(); diff --git a/application/hub/classes/filter/miner/class_MinerWelcomeTeaserFilter.php b/application/hub/classes/filter/miner/class_MinerWelcomeTeaserFilter.php index 54b3c6bdf..0d5359682 100644 --- a/application/hub/classes/filter/miner/class_MinerWelcomeTeaserFilter.php +++ b/application/hub/classes/filter/miner/class_MinerWelcomeTeaserFilter.php @@ -68,7 +68,7 @@ class MinerWelcomeTeaserFilter extends BaseMinerFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Now output the teaser $minerInstance->outputConsoleTeaser(); diff --git a/application/hub/classes/filter/shutdown/apt-proxy/class_AptProxyShutdownFilter.php b/application/hub/classes/filter/shutdown/apt-proxy/class_AptProxyShutdownFilter.php index c4f0da349..092548b7f 100644 --- a/application/hub/classes/filter/shutdown/apt-proxy/class_AptProxyShutdownFilter.php +++ b/application/hub/classes/filter/shutdown/apt-proxy/class_AptProxyShutdownFilter.php @@ -69,7 +69,7 @@ class AptProxyShutdownFilter extends BaseAptProxyFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $proxyInstance = ObjectRegistry::getRegistry('hub')->getInstance('apt_proxy'); + $proxyInstance = ObjectRegistry::getRegistry('factory')->getInstance('apt_proxy'); // Shutdown the apt-proxy. This should be the last line $proxyInstance->doShutdown(); diff --git a/application/hub/classes/filter/shutdown/chat/class_ChatShutdownFilter.php b/application/hub/classes/filter/shutdown/chat/class_ChatShutdownFilter.php index 2b8587f07..69e2fa47c 100644 --- a/application/hub/classes/filter/shutdown/chat/class_ChatShutdownFilter.php +++ b/application/hub/classes/filter/shutdown/chat/class_ChatShutdownFilter.php @@ -69,7 +69,7 @@ class ChatShutdownFilter extends BaseChatFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + $chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Shutdown the chat. This should be the last line $chatInstance->doShutdown(); diff --git a/application/hub/classes/filter/shutdown/crawler/class_CrawlerShutdownFilter.php b/application/hub/classes/filter/shutdown/crawler/class_CrawlerShutdownFilter.php index cee9f5ab4..9cc8a01a8 100644 --- a/application/hub/classes/filter/shutdown/crawler/class_CrawlerShutdownFilter.php +++ b/application/hub/classes/filter/shutdown/crawler/class_CrawlerShutdownFilter.php @@ -69,7 +69,7 @@ class CrawlerShutdownFilter extends BaseCrawlerFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $crawlerInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler'); + $crawlerInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler'); // Shutdown the crawler. This should be the last line $crawlerInstance->doShutdown(); diff --git a/application/hub/classes/filter/shutdown/miner/class_MinerShutdownFilter.php b/application/hub/classes/filter/shutdown/miner/class_MinerShutdownFilter.php index 483f37e04..777cf448a 100644 --- a/application/hub/classes/filter/shutdown/miner/class_MinerShutdownFilter.php +++ b/application/hub/classes/filter/shutdown/miner/class_MinerShutdownFilter.php @@ -69,7 +69,7 @@ class MinerShutdownFilter extends BaseMinerFilter implements Filterable { */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get node instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Shutdown the miner. This should be the last line $minerInstance->doShutdown(); diff --git a/application/hub/classes/filter/task/apt-proxy/class_AptProxyTaskHandlerInitializerFilter.php b/application/hub/classes/filter/task/apt-proxy/class_AptProxyTaskHandlerInitializerFilter.php index 3963a731d..286d0bd15 100644 --- a/application/hub/classes/filter/task/apt-proxy/class_AptProxyTaskHandlerInitializerFilter.php +++ b/application/hub/classes/filter/task/apt-proxy/class_AptProxyTaskHandlerInitializerFilter.php @@ -69,7 +69,7 @@ class AptProxyTaskHandlerInitializerFilter extends BaseAptProxyFilter implements */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get apt-proxy instance - //$chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + //$chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Get a new task handler instance $handlerInstance = ObjectFactory::createObjectByConfiguredName('task_handler_class'); diff --git a/application/hub/classes/filter/task/chat/class_ChatTaskHandlerInitializerFilter.php b/application/hub/classes/filter/task/chat/class_ChatTaskHandlerInitializerFilter.php index 35ec83c67..984ece317 100644 --- a/application/hub/classes/filter/task/chat/class_ChatTaskHandlerInitializerFilter.php +++ b/application/hub/classes/filter/task/chat/class_ChatTaskHandlerInitializerFilter.php @@ -69,7 +69,7 @@ class ChatTaskHandlerInitializerFilter extends BaseChatFilter implements Filtera */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get chat instance - //$chatInstance = ObjectRegistry::getRegistry('hub')->getInstance('chat'); + //$chatInstance = ObjectRegistry::getRegistry('factory')->getInstance('chat'); // Get a new task handler instance $handlerInstance = ObjectFactory::createObjectByConfiguredName('task_handler_class'); diff --git a/application/hub/classes/filter/task/class_BaseCrawlerTaskFilter.php b/application/hub/classes/filter/task/class_BaseCrawlerTaskFilter.php index 989e231b0..538823da7 100644 --- a/application/hub/classes/filter/task/class_BaseCrawlerTaskFilter.php +++ b/application/hub/classes/filter/task/class_BaseCrawlerTaskFilter.php @@ -79,7 +79,7 @@ abstract class BaseCrawlerTaskFilter extends BaseCrawlerFilter { $handlerInstance->registerTask('crawler_snippet_extractor', $taskInstance); // Add handler instance to registry - ObjectRegistry::getRegistry('hub')->addInstance('task_handler', $handlerInstance); + ObjectRegistry::getRegistry('generic')->addInstance('task_handler', $handlerInstance); } } diff --git a/application/hub/classes/filter/task/miner/class_MinerTaskHandlerInitializerFilter.php b/application/hub/classes/filter/task/miner/class_MinerTaskHandlerInitializerFilter.php index 204c33220..0c3920a0a 100644 --- a/application/hub/classes/filter/task/miner/class_MinerTaskHandlerInitializerFilter.php +++ b/application/hub/classes/filter/task/miner/class_MinerTaskHandlerInitializerFilter.php @@ -69,7 +69,7 @@ class MinerTaskHandlerInitializerFilter extends BaseMinerFilter implements Filte */ public function execute (Requestable $requestInstance, Responseable $responseInstance) { // Get miner instance - //$minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + //$minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Get a new task handler instance $handlerInstance = ObjectFactory::createObjectByConfiguredName('task_handler_class'); diff --git a/application/hub/classes/listener/class_BaseListener.php b/application/hub/classes/listener/class_BaseListener.php index 689bc3837..a1136abeb 100644 --- a/application/hub/classes/listener/class_BaseListener.php +++ b/application/hub/classes/listener/class_BaseListener.php @@ -114,11 +114,11 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ private function handleIncomingSocket (StorableSocket $socketInstance) { // Handle it here, if not main server socket - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); $this->getHandlerInstance()->processRawDataFromSocketInstance($socketInstance); // Trace message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); } /** @@ -229,7 +229,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ protected function registerServerSocketInstance (StorableSocket $socketInstance) { // First check if it is valid - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); if ($this->isServerSocketRegistered($socketInstance)) { // Already registered throw new SocketAlreadyRegisteredException(array($this, $socketInstance->getSocketResource()), self::EXCEPTION_SOCKET_ALREADY_REGISTERED); @@ -248,15 +248,15 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $infoInstance->fillWithListenerInformation($this); // Register the socket - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource(), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource(), $socketInstance->getSocketType())); $this->getRegistryInstance()->registerSocketInstance($infoInstance, $socketInstance); // And set it here - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Setting socketInstance=%s (socketResource=%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString(), $socketInstance->getSocketResource())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Setting socketInstance=%s (socketResource=%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString(), $socketInstance->getSocketResource())); $this->setSocketInstance($socketInstance); // Trace message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); } /** @@ -268,11 +268,11 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ protected function isServerSocketRegistered (StorableSocket $socketInstance) { // Get a connection info instance - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $socketInstance->__toString())); $infoInstance = ConnectionInfoFactory::createConnectionInfoInstance($this->getProtocolName(), StorableSocket::CONNECTION_TYPE_SERVER); // Is the instance set? - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: infoInstance[]=%s', strtoupper($this->getProtocolName()), gettype($infoInstance))); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: infoInstance[]=%s', strtoupper($this->getProtocolName()), gettype($infoInstance))); if (!($infoInstance instanceof ShareableInfo)) { // Should not happen throw new LogicException(sprintf('infoInstance[]=%s does not implement ShareableInfo', gettype($infoInstance))); @@ -282,11 +282,11 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $infoInstance->fillWithListenerInformation($this); // Check it - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Checking socketInstance ... (socketResource=%s)', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource())); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Checking socketInstance ... (socketResource=%s)', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource())); $isRegistered = $this->getRegistryInstance()->isSocketRegistered($infoInstance, $socketInstance); // Return result - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: isRegistered=%d - EXIT!', strtoupper($this->getProtocolName()), intval($isRegistered))); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: isRegistered=%d - EXIT!', strtoupper($this->getProtocolName()), intval($isRegistered))); return $isRegistered; } @@ -298,7 +298,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ public function accept (Visitor $visitorInstance) { // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($this->getProtocolName()) . '-LISTENER: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - CALLED!'); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(strtoupper($this->getProtocolName()) . '-LISTENER: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - CALLED!'); // Visit this listener $visitorInstance->visitListener($this); @@ -310,7 +310,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { } // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(strtoupper($this->getProtocolName()) . '-LISTENER: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - EXIT!'); + //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(strtoupper($this->getProtocolName()) . '-LISTENER: ' . $visitorInstance->__toString() . ' has visited ' . $this->__toString() . ' - EXIT!'); } /** @@ -321,10 +321,10 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ public function monitorIncomingRawData () { // Check if an incoming socket is registered - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: CALLED!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: CALLED!', strtoupper($this->getProtocolName()))); if (!$this->getRegistryInstance()->isIncomingSocketRegistered($this)) { // Skip further processing - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: No socket of type "%s" registered. - EXIT!', strtoupper($this->getProtocolName()), StorableSocket::CONNECTION_TYPE_INCOMING)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: No socket of type "%s" registered. - EXIT!', strtoupper($this->getProtocolName()), StorableSocket::CONNECTION_TYPE_INCOMING)); return; } @@ -333,35 +333,43 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $iteratorInstance = $this->getRegistryInstance()->getIterator([$this->getProtocolName()]); // Should be valid instance - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: iteratorInstance[]=%s', strtoupper($this->getProtocolName()), gettype($iteratorInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: iteratorInstance[]=%s', strtoupper($this->getProtocolName()), gettype($iteratorInstance))); if (is_null($iteratorInstance)) { // Throw NPE throw new NullPointerException($this, self::EXCEPTION_IS_NULL_POINTER); } // Is it valid? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: iteratorInstance->valid()=%d', strtoupper($this->getProtocolName()), intval($iteratorInstance->valid()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: iteratorInstance->valid()=%d', strtoupper($this->getProtocolName()), intval($iteratorInstance->valid()))); if (!$iteratorInstance->valid()) { // Then rewind it - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Rewinding iterator ...', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Rewinding iterator ...', strtoupper($this->getProtocolName()))); $iteratorInstance->rewind(); + + // Is it still not valid? + if (!$iteratorInstance->valid()) { + // Then the list is empty maybe, skip below code + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance->socketType=%s has no entries,iteratorInstance->count()=%d - EXIT!', strtoupper($this->getProtocolName()), $socketInstance->getSocketType(), $iteratorInstance->count())); + return; + } } // Get current instance + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: Invoking iteratorInstance->current() ...', strtoupper($this->getProtocolName()))); $socketInstance = $iteratorInstance->current(); // Is NULL returned? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance[]=%s', strtoupper($this->getProtocolName()), gettype($socketInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: socketInstance[]=%s', strtoupper($this->getProtocolName()), gettype($socketInstance))); if (!($socketInstance instanceof StorableSocket)) { // Then abort here - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance=NULL - EXIT!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance=NULL - EXIT!', strtoupper($this->getProtocolName()))); return; } elseif ($socketInstance->getSocketType() != StorableSocket::CONNECTION_TYPE_INCOMING) { // Advance to next $iteratorInstance->next(); // Socket is not incoming socket, may happen in current iterator implementation - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance->socketType=%s is not wanted - EXIT!', strtoupper($this->getProtocolName()), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: socketInstance->socketType=%s is not wanted - EXIT!', strtoupper($this->getProtocolName()), $socketInstance->getSocketType())); return; } @@ -373,7 +381,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $iteratorInstance->next(); // Trace message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); } /** @@ -384,7 +392,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ protected function doListenSocketSelect () { // Validate parameter and socket instance - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: CALLED!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: CALLED!', strtoupper($this->getProtocolName()))); if(!$this->getSocketInstance()->isValidSocket()) { // Invalid socket throw new LogicException(sprintf('this->socketInstance->socketResource=%s is not valid', $this->getSocketInstance()->getSocketResource())); @@ -394,26 +402,26 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $socketInstance = SocketFactory::createNextAcceptedSocketFromPool($this->getPoolInstance(), $this->getSocketInstance()); // Is socket instance set? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: socketInstance[]=%s accepted.', strtoupper($this->getProtocolName()), gettype($socketInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: socketInstance[]=%s accepted.', strtoupper($this->getProtocolName()), gettype($socketInstance))); if (!($socketInstance instanceof StorableSocket)) { // Nothing has changed on the listener - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: No new connection on listener ... - EXIT!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: No new connection on listener ... - EXIT!', strtoupper($this->getProtocolName()))); return; } // Get a connection info instance - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Creating infoInstance for connection type %s ...', strtoupper($this->getProtocolName()), StorableSocket::CONNECTION_TYPE_INCOMING)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Creating infoInstance for connection type %s ...', strtoupper($this->getProtocolName()), StorableSocket::CONNECTION_TYPE_INCOMING)); $infoInstance = ConnectionInfoFactory::createConnectionInfoInstance($this->getProtocolName(), StorableSocket::CONNECTION_TYPE_INCOMING); // Is the instance set? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: infoInstance[]=%s', strtoupper($this->getProtocolName()), gettype($infoInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: infoInstance[]=%s', strtoupper($this->getProtocolName()), gettype($infoInstance))); if (!($infoInstance instanceof ShareableInfo)) { // Should not happen throw new LogicException(sprintf('infoInstance[]=%s does not implement ShareableInfo', gettype($infoInstance))); } // Will the info instance with listener data - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Invoking infoInstance->fillWithSocketPeerInformation(%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Invoking infoInstance->fillWithSocketPeerInformation(%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString())); $infoInstance->fillWithSocketPeerInformation($socketInstance); // Init peer address/port @@ -428,20 +436,20 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { // Set all required data //* DEBUG-DIE: */ $infoInstance->debugInstance(); - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: peerAddress=%s,peerPort=%d', strtoupper($this->getProtocolName()), $peerAddress, $peerPort)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: peerAddress=%s,peerPort=%d', strtoupper($this->getProtocolName()), $peerAddress, $peerPort)); $socketInstance->setSenderAddress($peerAddress); $socketInstance->setSenderPort($peerPort); // Register the socket with the registry and with the faked array - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource(), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Registering socketInstance->socketResource=%s,socketType=%s ...', strtoupper($this->getProtocolName()), $socketInstance->getSocketResource(), $socketInstance->getSocketType())); $this->getRegistryInstance()->registerSocketInstance($infoInstance, $socketInstance); // Invoke private method - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: Invoking this->handleIncomingSocket(%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: Invoking this->handleIncomingSocket(%s) ...', strtoupper($this->getProtocolName()), $socketInstance->__toString())); $this->handleIncomingSocket($socketInstance); // Trace message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: EXIT!', strtoupper($this->getProtocolName()))); } /** @@ -452,7 +460,7 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { */ public function ifListenerAcceptsPackageData (DeliverablePackage $packageInstance) { // Check if same socket protocol - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: packageInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $packageInstance)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: packageInstance=%s - CALLED!', strtoupper($this->getProtocolName()), $packageInstance)); $socketProtocol = $this->getSocketInstance()->getSocketProtocol(); // Get UNL instance @@ -462,11 +470,11 @@ abstract class BaseListener extends BaseHubSystem implements Visitable { $unlProtocol = $locatorInstance->getUnlProtocol(); // Is same protocol? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: locatorInstance->unlProtocol=%s,socketProtocol=%s', strtoupper($this->getProtocolName()), $unlProtocol, $socketProtocol)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('%s-LISTENER: locatorInstance->unlProtocol=%s,socketProtocol=%s', strtoupper($this->getProtocolName()), $unlProtocol, $socketProtocol)); $accepts = ($unlProtocol == $socketProtocol); // Return the result - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('%s-LISTENER: accepts=%d - EXIT!', strtoupper($this->getProtocolName()), $accepts)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('%s-LISTENER: accepts=%d - EXIT!', strtoupper($this->getProtocolName()), $accepts)); return $accepts; } diff --git a/application/hub/classes/miner/class_BaseHubMiner.php b/application/hub/classes/miner/class_BaseHubMiner.php index fb7660871..c34a17047 100644 --- a/application/hub/classes/miner/class_BaseHubMiner.php +++ b/application/hub/classes/miner/class_BaseHubMiner.php @@ -98,7 +98,7 @@ abstract class BaseHubMiner extends BaseHubSystem implements Updateable { */ private function initMiner () { // Add own instance to registry - ObjectRegistry::getRegistry('hub')->addInstance('miner', $this); + ObjectRegistry::getRegistry('factory')->addInstance('miner', $this); // Init the state MinerStateFactory::createMinerStateInstanceByName('init'); diff --git a/application/hub/classes/nodes/class_BaseHubNode.php b/application/hub/classes/nodes/class_BaseHubNode.php index 706e2b5e5..2f12486c3 100644 --- a/application/hub/classes/nodes/class_BaseHubNode.php +++ b/application/hub/classes/nodes/class_BaseHubNode.php @@ -157,7 +157,7 @@ abstract class BaseHubNode extends BaseHubSystem implements Updateable, AddableC $this->setCryptoInstance($cryptoInstance); // Set the node instance in registry - ObjectRegistry::getRegistry('hub')->addInstance('node', $this); + ObjectRegistry::getRegistry('factory')->addInstance('node', $this); // Init state which sets the state to 'init' $this->initState(); @@ -640,7 +640,7 @@ abstract class BaseHubNode extends BaseHubSystem implements Updateable, AddableC } // Get the controller here - $controllerInstance = ObjectRegistry::getRegistry('hub')->getInstance('controller'); + $controllerInstance = ObjectRegistry::getRegistry('generic')->getInstance('controller'); // Run all filters for the hub activation $controllerInstance->executeActivationFilters($requestInstance, $responseInstance); diff --git a/application/hub/classes/producer/miner/class_BaseMinerProducer.php b/application/hub/classes/producer/miner/class_BaseMinerProducer.php index 2e74165db..30ed322aa 100644 --- a/application/hub/classes/producer/miner/class_BaseMinerProducer.php +++ b/application/hub/classes/producer/miner/class_BaseMinerProducer.php @@ -49,7 +49,7 @@ abstract class BaseMinerProducer extends BaseProducer { parent::__construct($className); // Get miner instance - $minerInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner'); + $minerInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner'); // Change state to next state $minerInstance->blockProducerHasInitialized($this); diff --git a/application/hub/classes/registry/socket/class_SocketRegistry.php b/application/hub/classes/registry/socket/class_SocketRegistry.php index 19c5980c4..c86eb9134 100644 --- a/application/hub/classes/registry/socket/class_SocketRegistry.php +++ b/application/hub/classes/registry/socket/class_SocketRegistry.php @@ -17,8 +17,8 @@ use Org\Mxchange\CoreFramework\EntryPoint\ApplicationEntryPoint; use Org\Mxchange\CoreFramework\Factory\Object\ObjectFactory; use Org\Mxchange\CoreFramework\Generic\FrameworkInterface; use Org\Mxchange\CoreFramework\Registry\BaseRegistry; +use Org\Mxchange\CoreFramework\Registry\Object\ObjectRegistry; use Org\Mxchange\CoreFramework\Registry\Register; -use Org\Mxchange\CoreFramework\Registry\Sub\SubRegistry; use Org\Mxchange\CoreFramework\Socket\SocketAlreadyRegisteredException; /** @@ -48,9 +48,21 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke const EXCEPTION_SOCKET_NOT_REGISTERED = 0xd200; /** - * Instance of this class + * An instance of this class */ - private static $registryInstance = NULL; + private static $selfInstance = NULL; + + /** + * All instances of this class + */ + private static $registryInstances = [ + // TCP socket registry + StorableSocket::SOCKET_PROTOCOL_TCP => NULL, + // UDP socket registry + StorableSocket::SOCKET_PROTOCOL_UDP => NULL, + // file socket registry + StorableSocket::SOCKET_PROTOCOL_FILE => NULL, + ]; /** * Protected constructor @@ -59,7 +71,18 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke */ private function __construct () { // Call parent constructor + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: CONSTRUCTED!'); parent::__construct(__CLASS__); + + // Init all instances + foreach (array_keys($this->getInstanceRegistry()) as $registryKey) { + // Initialize this instance + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: Initializing registryKey=%s ...', $registryKey)); + self::$registryInstances[$registryKey] = ObjectRegistry::getRegistry('sockets'); + } + + // Trace message + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: CONSTRUCTED!'); } /** @@ -68,14 +91,25 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke * @return $registryInstance An instance of this class */ public static final function createSocketRegistry () { - // Is an instance there? - if (is_null(self::$registryInstance)) { - // Not yet, so create one - self::$registryInstance = new SocketRegistry(); + // Is there an instance? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: self::selfInstance[]=%s - CALLED!', gettype(self::$selfInstance))); + if (is_null(self::$selfInstance)) { + // Get instance + self::$selfInstance = new SocketRegistry(); } // Return the instance - return self::$registryInstance; + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: self::selfInstance=%s - EXIT!', self::$selfInstance->__toString())); + return self::$selfInstance; + } + + /** + * Getter for all registry instances + * + * @return $registryInstances An array with all registry instances + */ + public final function getInstanceRegistry () { + return self::$registryInstances; } /** @@ -85,9 +119,9 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke * @param $infoInstance An instance of a ShareableInfo class * @return $key A string representation of the socket for the registry */ - private function generateSubRegistryKeyFromInfoInstance (ShareableInfo $infoInstance) { + private function generateObjectRegistryKeyFromInfoInstance (ShareableInfo $infoInstance) { // Get connection type and port number and add both together - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: infoInstance=%s - CALLED!', $infoInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: infoInstance=%s - CALLED!', $infoInstance->__toString())); $key = sprintf('%s:%s:%s:%s:%s', $infoInstance->__toString(), $infoInstance->getProtocolName(), @@ -97,7 +131,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke ); // Return resulting key - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s - EXIT!', $key)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: key=%s - EXIT!', $key)); return $key; } @@ -108,16 +142,12 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke * @return $key A string representation of the listener for the registry */ private function getRegistryKeyFromInfo (ShareableInfo $infoInstance) { - // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: ,infoInstance=' . $infoInstance->__toString() . ' - CALLED!'); - // Get the key + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: infoInstance=%s - CALLED!', $infoInstance->__toString())); $key = $infoInstance->getProtocolName(); - // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: key=' . $key . ' - EXIT!'); - // Return resulting key + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: key=%s - EXIT!', $key)); return $key; } @@ -128,19 +158,15 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke * @return $isRegistered Whether the listener is registered */ private function isInfoRegistered (ShareableInfo $infoInstance) { - // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ' - CALLED!'); - // Get the key - $key = $this->getRegistryKeyFromInfo($infoInstance); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ' - CALLED!'); + $key = $this->generateObjectRegistryKeyFromInfoInstance($infoInstance); // Determine it - $isRegistered = $this->instanceExists($key); - - // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',isRegistered=' . intval($isRegistered) . ' - EXIT!'); + $isRegistered = self::$registryInstances[$infoInstance->getProtocolName()]->instanceExists($key); // Return result + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',isRegistered=' . intval($isRegistered) . ' - EXIT!'); return $isRegistered; } @@ -154,42 +180,38 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke */ public function isSocketRegistered (ShareableInfo $infoInstance, StorableSocket $socketInstance) { // Default is not registered - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ' - CALLED!'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ' - CALLED!'); $isRegistered = FALSE; // First, check for the instance, there can be only once if ($this->isInfoRegistered($infoInstance)) { // That one is found so "get" a registry key from it - $key = $this->getRegistryKeyFromInfo($infoInstance); + $key = $this->generateObjectRegistryKeyFromInfoInstance($infoInstance); // Get the registry - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ',key=' . $key . ' - Trying to get instance ...'); - $registryInstance = $this->getInstance($key); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ',key=' . $key . ' - Trying to get instance ...'); + $registryInstance = self::$registryInstances[$infoInstance->getProtocolName()]->getInstance($key); // "Get" a key for the socket - $socketKey = $this->generateSubRegistryKeyFromInfoInstance($infoInstance); - - // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ',key=' . $key . ',socketKey=' . $socketKey . ' - Checking existence ...'); + $socketKey = $this->generateObjectRegistryKeyFromInfoInstance($infoInstance); // Is it there? + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ',key=' . $key . ',socketKey=' . $socketKey . ' - Checking existence ...'); if ($registryInstance->instanceExists($socketKey)) { - // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: Found instance for socketKey=' . $socketKey . ':' . $registryInstance->getInstance($socketKey)); - // Get the instance + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage('SOCKET-REGISTRY: Found instance for socketKey=' . $socketKey . ':' . $registryInstance->getInstance($socketKey)); $registeredInstance = $registryInstance->getInstance($socketKey); // Is it StorableSocket and same socket? $isRegistered = (($registeredInstance instanceof StorableSocket) && ($registeredInstance->equals($socketInstance))); // Debug message - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: Final result: isRegistered(' . $socketInstance->getSocketResource() . ')=' . intval($isRegistered)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage('SOCKET-REGISTRY: Final result: isRegistered(' . $socketInstance->getSocketResource() . ')=' . intval($isRegistered)); } } // Return the result - //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ',isRegistered=' . intval($isRegistered) . ' - EXIT!'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: protocolName=' . $infoInstance->getProtocolName() . ',socketResource[' . gettype($socketInstance->getSocketResource()) . ']=' . $socketInstance->getSocketResource() . ',isRegistered=' . intval($isRegistered) . ' - EXIT!'); return $isRegistered; } @@ -203,39 +225,29 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke */ public function registerSocketInstance (ShareableInfo $infoInstance, StorableSocket $socketInstance) { // Is the socket already registered? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: infoInstance->protocolName=%s,infoInstance->socketResource[%s]=%s - CALLED!', $infoInstance->getProtocolName(), gettype($socketInstance->getSocketResource()), $socketInstance->getSocketResource())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: infoInstance->protocolName=%s,infoInstance->socketResource[%s]=%s - CALLED!', $infoInstance->getProtocolName(), gettype($socketInstance->getSocketResource()), $socketInstance->getSocketResource())); if ($this->isSocketRegistered($infoInstance, $socketInstance)) { // Throw the exception throw new SocketAlreadyRegisteredException(array($infoInstance, $socketInstance->getSocketResource()), BaseListener::EXCEPTION_SOCKET_ALREADY_REGISTERED); } + // Create registry key + $socketKey = $this->generateObjectRegistryKeyFromInfoInstance($infoInstance); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: socketKey=%s', $socketKey)); + // Does the instance exist? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: Checking if infoInstance=%s is registered ...', $infoInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: Checking if infoInstance=%s is registered ...', $infoInstance->__toString())); if (!$this->isInfoRegistered($infoInstance)) { - // No, not found so we create a sub registry (not needed to configure!) - $registryInstance = SubRegistry::createSubRegistry(); - // Now we can create the sub-registry for this info - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: Adding infoInstance=%s to registry ...', $infoInstance->__toString())); - $this->addInstance($this->getRegistryKeyFromInfo($infoInstance), $registryInstance); - } else { - // Get the sub-registry back - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: Getting sub-registry from infoInstance=%s ...', $infoInstance->__toString())); - $registryInstance = $this->getInstance($this->getRegistryKeyFromInfo($infoInstance)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: Adding socketInstance=%s to registry ...', $socketInstance->__toString())); + self::$registryInstances[$socketInstance->getSocketProtocol()]->addInstance($socketKey, $socketInstance); } - // Get a key for sub-registries - $socketKey = $this->generateSubRegistryKeyFromInfoInstance($infoInstance); - - // We have a sub-registry, the socket key and the socket, now we need to put all together - /* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: socketKey=%s,socketResource[%s]=%s - adding socket container instance ...', $socketKey, gettype($socketInstance->getSocketResource()), $socketInstance->getSocketResource())); - $registryInstance->addInstance($socketKey, $socketInstance); - // Also register all instances from info instance in socket $socketInstance->registerInfoInstance($infoInstance); // Trace message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: EXIT!'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage('SOCKET-REGISTRY: EXIT!'); } /** @@ -247,28 +259,21 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke */ public function getRegisteredSocketResource (Listenable $listenerInstance) { // The socket must be registered before we can return it - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: listenerInstance=%s - CALLED!', $listenerInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: listenerInstance=%s - CALLED!', $listenerInstance->__toString())); if (!$this->isInfoRegistered($listenerInstance)) { // Throw the exception throw new NoSocketRegisteredException ($listenerInstance, self::EXCEPTION_SOCKET_NOT_REGISTERED); } - // Now get the key from the listener - $registryKey = $this->getRegistryKeyFromInfo($listenerInstance); - // Get a socket key - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: registryKey=%s', $registryKey)); - $socketKey = $this->generateSubRegistryKeyFromInfoInstance($listenerInstance); - - // Get the registry - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: socketKey=%s', $socketKey)); - $registryInstance = $this->getInstance($registryKey); + $socketKey = $this->generateObjectRegistryKeyFromInfoInstance($listenerInstance); - // And the final socket resource - $socketInstance = $registryInstance->getInstance($socketKey); + // Get socket resource + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: socketKey=%s', $socketKey)); + $socketInstance = self::$registryInstances[$listenerInstance->getProtocolName()]->getInstance($socketKey); // Return the resource - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: listenerInstance=%s,socketInstance[]=%s - EXIT!', $listenerInstance->__toString(), gettype($socketInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: listenerInstance=%s,socketInstance[]=%s - EXIT!', $listenerInstance->__toString(), gettype($socketInstance))); return $socketInstance; } @@ -280,42 +285,42 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke */ public function determineInfoInstanceByPackageInstance (DeliverablePackage $packageInstance) { // Init info instance - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: packageInstance=%s - CALLED!', $packageInstance)); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: packageInstance=%s - CALLED!', $packageInstance)); $infoInstance = NULL; //* DEBUG-DIE: */ die(__METHOD__ . ':packageInstance=' . print_r($packageInstance, TRUE)); // Get all keys and check them - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: this->instanceRegistry()=%d', count($this->getInstanceRegistry()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: this->instanceRegistry()=%d', count($this->getInstanceRegistry()))); foreach ($this->getInstanceRegistry() as $key => $registryInstance) { // This is always a SubRegistry instance - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,registryInstance=%s', $key, $registryInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,registryInstance=%s', $key, $registryInstance->__toString())); foreach ($registryInstance->getInstanceRegistry() as $subKey => $socketInstance) { // Is this a StorableSocket instance and is the address the same? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s,socketInstance=%s', $key, $subKey, $socketInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s,socketInstance=%s', $key, $subKey, $socketInstance->__toString())); if (($socketInstance instanceof StorableSocket) && ($socketInstance->ifAddressMatches($packageInstance->getRecipientUnl()))) { // Get listener and helper instances - /* NOSY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s, calling socketInstance->getListenerInstance() ...', $key, $subKey)); + /* NOSY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s, calling socketInstance->getListenerInstance() ...', $key, $subKey)); //* DEBUG-DIE: */ die(__METHOD__ . ': socketInstance=' . print_r($socketInstance, TRUE)); $listenerInstance = $socketInstance->getListenerInstance(); $helperInstance = $socketInstance->getHelperInstance(); // Is a listener or helper set? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s,listenerInstance[]=%s,helperInstance[]=%s', $key, $subKey, gettype($listenerInstance), gettype($helperInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s,listenerInstance[]=%s,helperInstance[]=%s', $key, $subKey, gettype($listenerInstance), gettype($helperInstance))); if ($listenerInstance instanceof Listenable) { // Found a listener, so get the info instance first - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Getting infoInstance for listenerInstance->protocolName=%s ...', $key, $subKey, $listenerInstance->getProtocolName())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Getting infoInstance for listenerInstance->protocolName=%s ...', $key, $subKey, $listenerInstance->getProtocolName())); $infoInstance = ConnectionInfoFactory::createConnectionInfoInstance($listenerInstance->getProtocolName(), 'helper'); // Fill info instance with listener data - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Invoking infoInstance->fillWithListenerInformation(%s) ...', $key, $subKey, $listenerInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Invoking infoInstance->fillWithListenerInformation(%s) ...', $key, $subKey, $listenerInstance->__toString())); $infoInstance->fillWithListenerInformation($listenerInstance); } elseif ($helperInstance instanceof ConnectionHelper) { // Found a helper, so get the info instance first - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Getting infoInstance for helperInstance->protocolName=%s ...', $key, $subKey, $helperInstance->getProtocolName())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Getting infoInstance for helperInstance->protocolName=%s ...', $key, $subKey, $helperInstance->getProtocolName())); $infoInstance = ConnectionInfoFactory::createConnectionInfoInstance($helperInstance->getProtocolName(), 'helper'); // Helper is found - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Invoking infoInstance->fillWithHelperInformation(%s) ...', $key, $subKey, $helperInstance->__toString())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s: Invoking infoInstance->fillWithHelperInformation(%s) ...', $key, $subKey, $helperInstance->__toString())); $infoInstance->fillWithConnectionHelperInformation($helperInstance); } else { // Not supported state! @@ -323,22 +328,22 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke } // Debug message - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s,infoInstance[%s]=%s with protocol %s - FOUND!', $key, $subKey, gettype($infoInstance), $infoInstance->__toString(), $infoInstance->getProtocolName())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: key=%s,subKey=%s,infoInstance[%s]=%s with protocol %s - FOUND!', $key, $subKey, gettype($infoInstance), $infoInstance->__toString(), $infoInstance->getProtocolName())); break; } } // Is no longer NULL set? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: infoInstance[]=%s', gettype($infoInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: infoInstance[]=%s', gettype($infoInstance))); if (!is_null($infoInstance)) { // Then skip here, too - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('SOCKET-REGISTRY: BREAK!'); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage('SOCKET-REGISTRY: BREAK!'); break; } } // Return the info instance - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: infoInstance[]=%s - EXIT!', gettype($infoInstance))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: infoInstance[]=%s - EXIT!', gettype($infoInstance))); return $infoInstance; } @@ -351,18 +356,18 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke */ public function isIncomingSocketRegistered (Listenable $listenerInstance) { // Default is not found - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: listenerInstance=%s (protocol: %s) - CALLED!', $listenerInstance->__toString(), strtoupper($listenerInstance->getProtocolName()))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: listenerInstance=%s (protocol: %s) - CALLED!', $listenerInstance->__toString(), strtoupper($listenerInstance->getProtocolName()))); //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: this=%s', __METHOD__, __LINE__, print_r($this, TRUE))); $isRegistered = FALSE; // Search listener's socket sub-registry - $registryInstance = $this->getInstance($listenerInstance->getProtocolName()); + $registryInstance = self::$registryInstances[$listenerInstance->getProtocolName()]; //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: listenerInstance->protocolName=%s,registryInstance=%s', __METHOD__, __LINE__, $listenerInstance->getProtocolName(), print_r($registryInstance, TRUE))); // Get all sockets from it foreach ($registryInstance->getInstanceRegistry() as $instanceKey => $socketInstance) { // Is this socket as requested? - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: instanceKey=%s,socketInstance=%s,socketType=%s', $instanceKey, $socketInstance->__toString(), $socketInstance->getSocketType())); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugMessage(sprintf('SOCKET-REGISTRY: instanceKey=%s,socketInstance=%s,socketType=%s', $instanceKey, $socketInstance->__toString(), $socketInstance->getSocketType())); //* DEBUG-DIE: */ ApplicationEntryPoint::exitApplication(sprintf('[%s:%d]: socketInstance=%s', __METHOD__, __LINE__, print_r($socketInstance, TRUE))); if ($socketInstance->getSocketType() == StorableSocket::CONNECTION_TYPE_INCOMING) { // Is found! @@ -372,7 +377,7 @@ class SocketRegistry extends BaseRegistry implements Register, RegisterableSocke } // Return status - /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput(sprintf('SOCKET-REGISTRY: isRegistered=%d - EXIT!', intval($isRegistered))); + /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->traceMessage(sprintf('SOCKET-REGISTRY: isRegistered=%d - EXIT!', intval($isRegistered))); return $isRegistered; } diff --git a/application/hub/classes/tasks/crawler/communicator/class_CrawlerNodeCommunicatorTask.php b/application/hub/classes/tasks/crawler/communicator/class_CrawlerNodeCommunicatorTask.php index bc16f337a..22c4d9628 100644 --- a/application/hub/classes/tasks/crawler/communicator/class_CrawlerNodeCommunicatorTask.php +++ b/application/hub/classes/tasks/crawler/communicator/class_CrawlerNodeCommunicatorTask.php @@ -81,7 +81,7 @@ class CrawlerNodeCommunicatorTask extends BaseHubTask implements Taskable, Visit $communicatorInstance = CommunicatorFactory::createCommunicatorInstance('crawler_node_communicator_class', 'node'); // Get the current crawler state from registry - $stateInstance = ObjectRegistry::getRegistry('hub')->getInstance('crawler')->getStateInstance(); + $stateInstance = ObjectRegistry::getRegistry('factory')->getInstance('crawler')->getStateInstance(); // Debug message /* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('CRAWLER-NODE-COMMUNICATOR-TASK: Executing stateInstance=' . $stateInstance->__toString()); diff --git a/application/hub/classes/tasks/miner/block_fetcher/class_MinerBlockFetcherTask.php b/application/hub/classes/tasks/miner/block_fetcher/class_MinerBlockFetcherTask.php index bf48d45c7..3cba4fa19 100644 --- a/application/hub/classes/tasks/miner/block_fetcher/class_MinerBlockFetcherTask.php +++ b/application/hub/classes/tasks/miner/block_fetcher/class_MinerBlockFetcherTask.php @@ -85,7 +85,7 @@ class MinerBlockFetcherTask extends BaseHubTask implements Taskable, Visitable { * * Please report any bugs you encounter to me. */ - ObjectRegistry::getRegistry('hub')->getInstance('miner')->doSearchForBlocks(); + ObjectRegistry::getRegistry('factory')->getInstance('miner')->doSearchForBlocks(); } /** diff --git a/application/hub/classes/tasks/miner/block_producer/class_MinerRealGenesisBlockProducerTask.php b/application/hub/classes/tasks/miner/block_producer/class_MinerRealGenesisBlockProducerTask.php index d32342991..7412f9cd7 100644 --- a/application/hub/classes/tasks/miner/block_producer/class_MinerRealGenesisBlockProducerTask.php +++ b/application/hub/classes/tasks/miner/block_producer/class_MinerRealGenesisBlockProducerTask.php @@ -80,7 +80,7 @@ class MinerRealGenesisBlockProducerTask extends BaseHubTask implements Taskable, $producerInstance = ProducerFactory::createProducerInstance('miner_real_genesis_block_producer_class', 'real_unit'); // Get the current miner state from registry - $stateInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner')->getStateInstance(); + $stateInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner')->getStateInstance(); // Debug message /* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('MINER-GENESIS-BLOCK-PRODUCER-TASK: Executing stateInstance=' . $stateInstance->__toString()); diff --git a/application/hub/classes/tasks/miner/block_producer/class_MinerTestGenesisBlockProducerTask.php b/application/hub/classes/tasks/miner/block_producer/class_MinerTestGenesisBlockProducerTask.php index 26ad2e2a1..900717d7b 100644 --- a/application/hub/classes/tasks/miner/block_producer/class_MinerTestGenesisBlockProducerTask.php +++ b/application/hub/classes/tasks/miner/block_producer/class_MinerTestGenesisBlockProducerTask.php @@ -80,7 +80,7 @@ class MinerTestGenesisBlockProducerTask extends BaseHubTask implements Taskable, $producerInstance = ProducerFactory::createProducerInstance('miner_test_genesis_block_producer_class', 'test_unit'); // Get the current miner state from registry - $stateInstance = ObjectRegistry::getRegistry('hub')->getInstance('miner')->getStateInstance(); + $stateInstance = ObjectRegistry::getRegistry('factory')->getInstance('miner')->getStateInstance(); // Debug message /* DEBUG: */ self::createDebugInstance(__CLASS__, __LINE__)->debugOutput('MINER-TEST-GENESIS-BLOCK-PRODUCER-TASK: Executing stateInstance=' . $stateInstance->__toString()); diff --git a/core b/core index d80aa0602..4fc7b52c4 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d80aa06027f7eafcabc7c5e307d2126456a6dc0a +Subproject commit 4fc7b52c4eb7287dbfd78bd4bdc8adaea03f7d5c -- 2.39.5