Retrieves a Broadcast Stream which subscribes to path with the specified cacheLevel.
The node is only subscribed if there is at least one stream subscription.
When the stream subscription count goes to 0, the node is unsubscribed from.
Source
Stream<ValueUpdate> onValueChange(String path, {int cacheLevel: 1}) {
RespSubscribeListener listener;
StreamController<ValueUpdate> controller;
int subs = 0;
controller = new StreamController<ValueUpdate>.broadcast(onListen: () {
subs++;
if (listener == null) {
listener = this[path].subscribe((ValueUpdate update) {
controller.add(update);
}, cacheLevel);
}
}, onCancel: () {
subs--;
if (subs == 0) {
listener.cancel();
listener = null;
}
});
return controller.stream;
}