private function applyConsoleRouting(RuntimeContainerInterface $runtime, ChannelCompositeInterface $composite)
{
$master = $composite->getBus('master');
$slave = $composite->getBus('slave');
$router = $composite->getInput();
$router->addDefault(new RuleHandler(function ($params) {
return true;
}));
$router = $composite->getOutput();
$router->addDefault(new RuleHandler(function ($params) use($slave, $master) {
$ch = $params['alias'] === Runtime::RESERVED_CONSOLE_CLIENT ? $master : $slave;
$ch->push($params['alias'], $params['protocol'], $params['flags'], $params['success'], $params['failure'], $params['cancel'], $params['timeout']);
}));
$router = $master->getInput();
$router->addRule(new RuleMatchDestination($master->getName()), new RuleHandler(function ($params) use($composite) {
$this->executeProtocol($composite, $params['protocol']);
}));
$router->addDefault(new RuleHandler(function ($params) use($slave) {
$slave->push($slave->getConnected(), $params['protocol'], $params['flags']);
}));
$router = $slave->getInput();
$router->addDefault(new RuleHandler(function ($params) use($runtime, $slave, $master) {
$master->push(Runtime::RESERVED_CONSOLE_CLIENT, $params['protocol'], $params['flags']);
}));
$router = $master->getOutput();
$router->addDefault(new RuleHandler(function ($params) use($master) {
$protocol = $params['protocol'];
$master->push($protocol->getDestination(), $protocol, $params['flags'], $params['success'], $params['failure'], $params['cancel'], $params['timeout']);
}));
$router = $slave->getOutput();
$router->addDefault(new RuleHandler(function ($params) use($slave) {
$protocol = $params['protocol'];
$slave->push($protocol->getDestination(), $protocol, $params['flags'], $params['success'], $params['failure'], $params['cancel'], $params['timeout']);
}));
}