// Get a new pool instance
$this->listenerPoolInstance = ObjectFactory::createObjectByConfiguredName('listener_pool_class', array($this));
- // Initialize both listeners
- foreach (array('tcp', 'udp') as $protocol) {
- // Get an instance
- $listenerInstance = ObjectFactory::createObjectByConfiguredName($protocol . '_listener_class', array($this));
+ // Get an instance of the low-level listener
+ $listenerInstance = ObjectFactory::createObjectByConfiguredName('tcp_listener_class', array($this));
- // Setup address and port
- $listenerInstance->setListenAddressByConfiguration('node_listen_addr');
- $listenerInstance->setListenPortByConfiguration('node_' . $protocol . '_listen_port');
+ // Setup address and port
+ $listenerInstance->setListenAddressByConfiguration('node_listen_addr');
+ $listenerInstance->setListenPortByConfiguration('node_tcp_listen_port');
- // Initialize the listener
- $listenerInstance->initListener();
+ // Initialize the listener
+ $listenerInstance->initListener();
- // Add this listener to the pool
- $this->listenerPoolInstance->addListener($listenerInstance);
- } // END - foreach
+ // Get a decorator class
+ $decoratorInstance = ObjectFactory::createObjectByConfiguredName('hub_tcp_listener_class', array($listenerInstance));
+
+ // Add this listener to the pool
+ $this->listenerPoolInstance->addListener($decoratorInstance);
+
+ // Get a decorator class
+ $decoratorInstance = ObjectFactory::createObjectByConfiguredName('client_tcp_listener_class', array($listenerInstance));
+
+ // Add this listener to the pool
+ $this->listenerPoolInstance->addListener($decoratorInstance);
+
+ // Get an instance of the low-level listener
+ $listenerInstance = ObjectFactory::createObjectByConfiguredName('udp_listener_class', array($this));
+
+ // Setup address and port
+ $listenerInstance->setListenAddressByConfiguration('node_listen_addr');
+ $listenerInstance->setListenPortByConfiguration('node_udp_listen_port');
+
+ // Initialize the listener
+ $listenerInstance->initListener();
+
+ // Get a decorator class
+ $decoratorInstance = ObjectFactory::createObjectByConfiguredName('hub_udp_listener_class', array($listenerInstance));
+
+ // Add this listener to the pool
+ $this->listenerPoolInstance->addListener($decoratorInstance);
+
+ // Get a decorator class
+ $decoratorInstance = ObjectFactory::createObjectByConfiguredName('client_udp_listener_class', array($listenerInstance));
+
+ // Add this listener to the pool
+ $this->listenerPoolInstance->addListener($decoratorInstance);
}
}