Kraken\Root\Console\Server\Provider\ChannelProvider::applyConsoleRouting PHP Method

applyConsoleRouting() private method

private applyConsoleRouting ( Kraken\Runtime\RuntimeContainerInterface $runtime, Kraken\Channel\ChannelCompositeInterface $composite )
$runtime Kraken\Runtime\RuntimeContainerInterface
$composite Kraken\Channel\ChannelCompositeInterface
    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']);
        }));
    }