Kraken\_Module\Channel\ChannelCompositeTest::createComposite PHP Method

createComposite() public method

public createComposite ( $data, Kraken\Loop\LoopInterface $loop )
$loop Kraken\Loop\LoopInterface
    public function createComposite($data, LoopInterface $loop)
    {
        $name = $data['name'];
        $buses = [];
        foreach ($data['buses'] as $busName => $bus) {
            $buses[$busName] = $this->createChannel($bus, $loop);
        }
        $router = new RouterComposite(['input' => $input = new Router(), 'output' => $output = new Router()]);
        $channel = new ChannelComposite($name, $buses, $router, $loop);
        $router = $channel->getInput();
        $router->addDefault(new RuleHandler(function ($params) use($channel) {
            $channel->pull($params['alias'], $params['protocol']);
        }));
        $router = $channel->getOutput();
        $router->addDefault(new RuleHandler(function ($params) use($channel) {
            $channel->push($params['alias'], $params['protocol'], $params['flags'], $params['success'], $params['failure'], $params['cancel'], $params['timeout']);
        }));
        return $channel;
    }