// 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
// 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");
// 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]
?>
*/
private $queryInstance = null;
+ /**
+ * Listener pool instance
+ */
+ private $listenerPoolInstance = null;
+
+ /**
+ * Wether the hub is active (true/false)
+ */
+ private $hubIsActive = false;
+
/**
* Protected constructor
*
$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.');
}
// 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]