From 3094db17ff04dc8b2cb7490361d7f77b8a720355 Mon Sep 17 00:00:00 2001 From: David Greenspan Date: Sun, 16 Sep 2012 02:43:09 -0700 Subject: [PATCH] replace connection status logic with three LoCs --- packages/stream/stream_client.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/stream/stream_client.js b/packages/stream/stream_client.js index a4fbbe05ec..dae14aba6d 100644 --- a/packages/stream/stream_client.js +++ b/packages/stream/stream_client.js @@ -45,11 +45,10 @@ Meteor._Stream = function (url) { status: "connecting", connected: false, retry_count: 0 }; - self.status_listeners = {}; // context.id -> context + self.status_listeners = (Meteor.deps && new Meteor.deps.ContextSet); self.status_changed = function () { - _.each(self.status_listeners, function (context) { - context.invalidate(); - }); + if (self.status_listeners) + self.status_listeners.invalidateAll(); }; //// Retry logic @@ -118,13 +117,8 @@ _.extend(Meteor._Stream.prototype, { // Get current status. Reactive. status: function () { var self = this; - var context = Meteor.deps && Meteor.deps.Context.current; - if (context && !(context.id in self.status_listeners)) { - self.status_listeners[context.id] = context; - context.on_invalidate(function () { - delete self.status_listeners[context.id]; - }); - } + if (self.status_listeners) + self.status_listeners.addCurrentContext(); return self.current_status; },