From: Roland Häder Date: Tue, 7 Jul 2009 17:33:28 +0000 (+0000) Subject: TCP/UDP listener config entries added, some more stub calls added X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=f81961f94728c8fdb4cdf21ecd1f4dbb6e0d92b6;p=hub.git TCP/UDP listener config entries added, some more stub calls added --- diff --git a/application/hub/class_ApplicationHelper.php b/application/hub/class_ApplicationHelper.php index 0e8fc55c7..121f58f88 100644 --- a/application/hub/class_ApplicationHelper.php +++ b/application/hub/class_ApplicationHelper.php @@ -202,6 +202,11 @@ class ApplicationHelper extends BaseFrameworkSystem implements ManageableApplica // will help us to communicate between the "tasks" a hub needs to do. $nodeInstance->initQueues(); + // -------------------------- Hub activation -------------------------- + // Activates the hub by doing some final preparation steps and setting + // the attribute $hubIsActive to true + $nodeInstance->activateHub(); + // ----------------------------- Main loop ---------------------------- // This is the main loop. Queried calls should come back here very fast // so the whole application runs on nice speed. This while-loop goes diff --git a/application/hub/config.php b/application/hub/config.php index 6c7bc5c99..ce9a20001 100644 --- a/application/hub/config.php +++ b/application/hub/config.php @@ -27,8 +27,11 @@ $cfg = FrameworkConfiguration::getInstance(); // CFG: NODE-LISTEN-ADDR $cfg->setConfigEntry('node_listen_addr', "0.0.0.0"); -// CFG: NODE-LISTEN-PORT -$cfg->setConfigEntry('node_listen_port', 9060); +// CFG: NODE-TCP-LISTEN-PORT +$cfg->setConfigEntry('node_tcp_listen_port', 9060); + +// CFG: NODE-UDP-LISTEN-PORT +$cfg->setConfigEntry('node_udp_listen_port', 9060); // CFG: NODE-MODE (can be 'regular', 'list', 'master' or 'boot', default is 'regular') $cfg->setConfigEntry('node_mode', "regular"); @@ -48,11 +51,17 @@ $cfg->setConfigEntry('node_info_db_wrapper_class', "NodeInformationDatabaseWrapp // CFG: WEB-CONTENT-TYPE $cfg->setConfigEntry('web_content_type', ""); -// CFG: QUERY-CONNECTOR +// CFG: QUERY-CONNECTOR-CLASS $cfg->setConfigEntry('query_connector_class', "LocalQueryConnector"); -// CFG: QUEUE-CONNECTOR +// CFG: QUEUE-CONNECTOR-CLASS $cfg->setConfigEntry('queue_connector_class', "LocalQueueConnector"); +// CFG: TCP-LISTENER-CLASS +$cfg->setConfigEntry('tcp_listener_class', "TcpListener"); + +// CFG: UDP-LISTENER-CLASS +$cfg->setConfigEntry('udp_listener_class', "UdpListener"); + // [EOF] ?> diff --git a/application/hub/main/nodes/class_BaseHubNode.php b/application/hub/main/nodes/class_BaseHubNode.php index d2755f21f..590aaa8fe 100644 --- a/application/hub/main/nodes/class_BaseHubNode.php +++ b/application/hub/main/nodes/class_BaseHubNode.php @@ -37,6 +37,16 @@ class BaseHubNode extends BaseFrameworkSystem implements Updateable { */ private $queryInstance = null; + /** + * Listener pool instance + */ + private $listenerPoolInstance = null; + + /** + * Wether the hub is active (true/false) + */ + private $hubIsActive = false; + /** * Protected constructor * @@ -156,15 +166,13 @@ class BaseHubNode extends BaseFrameworkSystem implements Updateable { $this->bootstrapAcquireHubId(); // ------------------- More generic bootstrap steps ------------------- - // Generate the session id which will only be stored in RAM + // Generate the session id which will only be stored in RAM and kept for + // the whole "session". $this->bootstrapGenerateSessionId(); - // Restore a previously downloaded bootstrap-node list + // Restore a previously downloaded bootstrap-node list. $this->bootstrapRestoreNodeList(); - // Download or update the bootstrap-node list - $this->bootstrapDownloadNodeList(); - // @TODO Add some generic bootstrap steps $this->partialStub('Add some generic bootstrap steps here.'); } @@ -284,6 +292,39 @@ class BaseHubNode extends BaseFrameworkSystem implements Updateable { // Remember the update in database result $this->getResultInstance()->add2UpdateQueue($updateInstance); } + + /** + * Getter for $hubIsActive attribute + * + * @return $hubIsActive Wether the hub is activer + */ + public final function isHubActive () { + return $this->hubIsActive; + } + + /** + * Activates the hub by doing some final preparation and setting + * $hubIsActive to true + */ + public function activateHub () { + // Checks wether a listener is still active and shuts it down if one + // is still listening + if (($this->checkIfListenerIsActive()) && ($this->isHubActive())) { + // Shutdown them down before they can hurt anything + $this->shutdownListenerPool(); + } // END - if + + // Initialize the TCP/UDP listener pool + $this->initializeListenerPool(); + + // @TODO Do some final preparation + $this->partialStub('Do some final preparation before the hub gots activated.'); + + // ----------------------- Last step from here ------------------------ + // Activate the hub. This is ALWAYS the last step in this method + $this->hubIsActive = true; + // ---------------------- Last step until here ------------------------ + } } // [EOF]