goog.provide('webfont.StyleSheetWaiter');
/**
* A utility class for handling callback from DomHelper.loadStylesheet(). * * @constructor */
webfont.StyleSheetWaiter = function() {
/** @private @type {number} */ this.waitingCount_ = 0; /** @private @type {Function} */ this.onReady_ = null;
};
goog.scope(function () {
var StyleSheetWaiter = webfont.StyleSheetWaiter; /** * @return {function(Error)} */ StyleSheetWaiter.prototype.startWaitingLoad = function() { var self = this; self.waitingCount_++; return function(error) { self.waitingCount_--; self.fireIfReady_(); }; }; /** * @param {Function} fn */ StyleSheetWaiter.prototype.waitWhileNeededThen = function(fn) { this.onReady_ = fn; this.fireIfReady_(); }; /** * @private */ StyleSheetWaiter.prototype.fireIfReady_ = function() { var isReady = 0 == this.waitingCount_; if (isReady && this.onReady_) { this.onReady_(); this.onReady_ = null; } };
});