From 593bba9f786239a0bd2d18562f509e6fd35bdfd6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Tue, 7 Jul 2009 21:03:40 +0000 Subject: [PATCH] Grouping by protocol of listeners in pool added --- .../hub/main/listener/class_BaseListener.php | 24 +++++++++++++++++++ .../listener/class_BaseListenerDecorator.php | 9 +++++++ .../main/listener/tcp/class_TcpListener.php | 3 +++ .../main/listener/udp/class_UdpListener.php | 3 +++ application/hub/main/pools/class_BasePool.php | 4 ++-- .../listener/class_DefaultListenerPool.php | 2 +- 6 files changed, 42 insertions(+), 3 deletions(-) diff --git a/application/hub/main/listener/class_BaseListener.php b/application/hub/main/listener/class_BaseListener.php index 48f0cbc77..3b8da261e 100644 --- a/application/hub/main/listener/class_BaseListener.php +++ b/application/hub/main/listener/class_BaseListener.php @@ -22,6 +22,11 @@ * along with this program. If not, see . */ class BaseListener extends BaseHubSystem { + /** + * Used protocol (Default: invalid, which is invalid...) + */ + private $protcol = 'invalid'; + /** * Address (IP mostly) we shall listen on */ @@ -105,6 +110,25 @@ class BaseListener extends BaseHubSystem { public final function setListenPortByConfiguration ($configEntry) { $this->setListenPort($this->getConfigInstance()->readConfig($configEntry)); } + + /** + * Setter for protocol + * + * @param $protocol Used protocol + * @return void + */ + protected final function setProtocol ($protocol) { + $this->protocol = (string) $protocol; + } + + /** + * Getter for protocol + * + * @return $protocol Used protocol + */ + public final function getProtocol () { + return $this->protocol; + } } // [EOF] diff --git a/application/hub/main/listener/class_BaseListenerDecorator.php b/application/hub/main/listener/class_BaseListenerDecorator.php index 07d4beaf0..c228078df 100644 --- a/application/hub/main/listener/class_BaseListenerDecorator.php +++ b/application/hub/main/listener/class_BaseListenerDecorator.php @@ -78,6 +78,15 @@ class BaseListenerDecorator extends BaseFrameworkSystem { public final function getListenPort () { return $this->getListenerInstance()->getListenPort(); } + + /** + * Getter for protocol + * + * @return $protocol The used protocol + */ + public final function getProtocol () { + return $this->getListenerInstance()->getProtocol(); + } } // [EOF] diff --git a/application/hub/main/listener/tcp/class_TcpListener.php b/application/hub/main/listener/tcp/class_TcpListener.php index ea227ce7f..a8a9d3d95 100644 --- a/application/hub/main/listener/tcp/class_TcpListener.php +++ b/application/hub/main/listener/tcp/class_TcpListener.php @@ -45,6 +45,9 @@ class TcpListener extends BaseListener implements Listenable { // Set the application instance $listenerInstance->setNodeInstance($nodeInstance); + // Set the protocol to TCP + $listenerInstance->setProtocol('tcp'); + // Return the prepared instance return $listenerInstance; } diff --git a/application/hub/main/listener/udp/class_UdpListener.php b/application/hub/main/listener/udp/class_UdpListener.php index b3b25b866..d37980e33 100644 --- a/application/hub/main/listener/udp/class_UdpListener.php +++ b/application/hub/main/listener/udp/class_UdpListener.php @@ -45,6 +45,9 @@ class UdpListener extends BaseListener implements Listenable { // Set the application instance $listenerInstance->setNodeInstance($nodeInstance); + // Set the protocol to UDP + $listenerInstance->setProtocol('udp'); + // Return the prepared instance return $listenerInstance; } diff --git a/application/hub/main/pools/class_BasePool.php b/application/hub/main/pools/class_BasePool.php index 6fb5bd1fd..a5b711738 100644 --- a/application/hub/main/pools/class_BasePool.php +++ b/application/hub/main/pools/class_BasePool.php @@ -45,8 +45,8 @@ class BasePool extends BaseHubSystem { * @param $instance An instance of a class we should add to the pool * @return void */ - protected final function addInstance($poolName, FrameworkInterface $instance) { - $this->instancePool[$poolName][] = $instance; + protected final function addInstance($group, $poolName, FrameworkInterface $instance) { + $this->instancePool[$group][$poolName][] = $instance; } } diff --git a/application/hub/main/pools/listener/class_DefaultListenerPool.php b/application/hub/main/pools/listener/class_DefaultListenerPool.php index 524e81c0a..051f7e622 100644 --- a/application/hub/main/pools/listener/class_DefaultListenerPool.php +++ b/application/hub/main/pools/listener/class_DefaultListenerPool.php @@ -60,7 +60,7 @@ class DefaultListenerPool extends BasePool implements Poolable { */ public function addListener (Listenable $listenerInstance) { // Add this listener instance to the instance list - parent::addInstance('listener', $listenerInstance); + parent::addInstance($listenerInstance->getProtocol(), 'listener', $listenerInstance); // Debug message $this->getDebugInstance()->output( -- 2.39.2