]> git.mxchange.org Git - hub.git/commitdiff
Method addListener() added
authorRoland Häder <roland@mxchange.org>
Tue, 7 Jul 2009 19:29:41 +0000 (19:29 +0000)
committerRoland Häder <roland@mxchange.org>
Tue, 7 Jul 2009 19:29:41 +0000 (19:29 +0000)
application/hub/interfaces/pool/class_Poolable.php
application/hub/main/nodes/class_BaseHubNode.php
application/hub/main/pools/class_
application/hub/main/pools/class_BasePool.php
application/hub/main/pools/listener/class_DefaultListenerPool.php

index 8a95117481f697373ee5571adf9f7fbbfec5a802..1f58cb0804ee3b991f3c86b372eece802253874a 100644 (file)
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 interface Poolable extends FrameworkInterface {
+       /**
+        * Adds a listener instance to this pool
+        *
+        * @param       $listenerInstance       An instance of a Listenable class
+        * @return      void
+        */
+       function addListener (Listenable $listenerInstance);
 }
 
 //
index db16c7742a68ee00c08dbba96b72aad137ff8758..909343ea3a23864d0b996aacd864bea3eea6256f 100644 (file)
@@ -343,6 +343,9 @@ class BaseHubNode extends BaseHubSystem implements Updateable {
                // Initialize the listener
                $listenerInstance->initListener();
 
+               // Add this listener to the pool
+               $this->listenerPoolInstance->addListener($listenerInstance);
+
                // Initialize the UDP listener
                $listenerInstance = ObjectFactory::createObjectByConfiguredName('udp_listener_class', array($this));
 
@@ -352,6 +355,9 @@ class BaseHubNode extends BaseHubSystem implements Updateable {
 
                // Initialize the listener
                $listenerInstance->initListener();
+
+               // Add this listener to the pool
+               $this->listenerPoolInstance->addListener($listenerInstance);
        }
 }
 
index 65b82bb458e5b2e4300277099296e9a6e0acdaeb..83265f33598b388c9b6ba966595e2b7085e645cb 100644 (file)
@@ -48,7 +48,18 @@ class ???Pool extends BasePool implements Poolable {
                // Return the prepared instance
                return $listenerInstance;
        }
+
+       /**
+        * Adds a listener instance to this pool
+        *
+        * @param       $listenerInstance       An instance of a Listenable class
+        * @return      void
+        * @todo        0% done
+        */
+       public function addListener (Listenable $listenerInstance) {
+               $this->partialStub('Need to implement this method. listenerInstance=' . $listenerInstance->__toString());
+       }
 }
 
-// [EOF]
+//
 ?>
index 908d1942c1619bef356f6c53c335336bcae8d57f..6fb5bd1fd572c115c97f9b09050df3b67c745a82 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 class BasePool extends BaseHubSystem {
+       /**
+        * A list of instances for this pool
+        */
+       private $instancePool = array();
+
        /**
         * Protected constructor
         *
@@ -32,6 +37,17 @@ class BasePool extends BaseHubSystem {
                // Call parent constructor
                parent::__construct($className);
        }
+
+       /**
+        * Adds an instance to a pool segment
+        *
+        * @param       $poolSegment    Name of the pool segment
+        * @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;
+       }
 }
 
 // [EOF]
index a01ef687e4e3769de12fd31d03217e55f28e5fbd..ce7fe90c5ad26b14fc256edaef8877e9d7931193 100644 (file)
@@ -51,6 +51,17 @@ class DefaultListenerPool extends BasePool implements Poolable {
                // Return the prepared instance
                return $listenerInstance;
        }
+
+       /**
+        * Adds a listener instance to this pool
+        *
+        * @param       $listenerInstance       An instance of a Listenable class
+        * @return      void
+        */
+       public function addListener (Listenable $listenerInstance) {
+               // Add this listener instance to the instance list
+               parent::addInstance('listener', $listenerInstance);
+       }
 }
 
 // [EOF]