UNPKG

noflo-core

Version:
50 lines (35 loc) 1.06 kB
noflo = require 'noflo' class Kick extends noflo.Component description: 'This component generates a single packet and sends it to the output port. Mostly usable for debugging, but can also be useful for starting up networks.' icon: 'share' constructor: -> @data = packet: null group: [] @groups = [] @inPorts = in: new noflo.Port 'bang' data: new noflo.Port 'all' @outPorts = out: new noflo.ArrayPort 'all' @inPorts.in.on 'begingroup', (group) => @groups.push group @inPorts.in.on 'data', => @data.group = @groups.slice 0 @inPorts.in.on 'endgroup', (group) => @groups.pop() @inPorts.in.on 'disconnect', => @sendKick @data @groups = [] @inPorts.data.on 'data', (data) => @data.packet = data sendKick: (kick) -> for group in kick.group @outPorts.out.beginGroup group @outPorts.out.send kick.packet for group in kick.group @outPorts.out.endGroup() @outPorts.out.disconnect() exports.getComponent = -> new Kick