noflo-core
Version:
NoFlo Essentials
50 lines (35 loc) • 1.06 kB
text/coffeescript
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