/**
* Sends resulting outgoing events from earlier processing in handleEvents().
*
* @param Phergie_Connection $connection Active connection
*
* @return void
*/
protected function processEvents(Phergie_Connection $connection)
{
$this->plugins->preDispatch();
if (count($this->events)) {
foreach ($this->events as $event) {
$this->ui->onCommand($event, $connection);
$method = 'do' . ucfirst(strtolower($event->getType()));
call_user_func_array(array($this->driver, $method), $event->getArguments());
}
}
$this->plugins->postDispatch();
if ($this->events->hasEventOfType(Phergie_Event_Request::TYPE_QUIT)) {
$this->ui->onQuit($connection);
$this->connections->removeConnection($connection);
}
$this->events->clearEvents();
}