blob: 4f46efe817af5ba9290cd49b19cad997306e289a (
plain) (
tree)
|
|
class Cable.SubscriberManager
constructor: (@cable) ->
@subscribers = {}
add: (identifier, subscriber) ->
@subscribers[identifier] = subscriber
if @cable.sendCommand(identifier, "subscribe")
@notify(identifier, "onConnect")
reload: ->
for identifier in Object.keys(@subscribers)
if @cable.sendCommand(identifier, "subscribe")
@notify(identifier, "onConnect")
remove: (identifier) ->
if subscriber = @subscribers[identifier]
@cable.sendCommand(identifier, "unsubscribe")
delete @subscribers[identifier]
notifyAll: (event, args...) ->
for identifier in Object.keys(@subscribers)
@notify(identifier, event, args...)
notify: (identifier, event, args...) ->
if subscriber = @subscribers[identifier]
subscriber[event]?(args...)
|