replace connection status logic with three LoCs

This commit is contained in:
David Greenspan
2012-09-16 02:43:09 -07:00
parent b070f5cf49
commit 3094db17ff

View File

@@ -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;
},