/**
* conf.js - xhrdavclient config
*
* Configuration of Library parameters.
*
* @license Copyright 2011 The xhrdavclient library authors.
* All rights reserved.
*/
goog.provide('xhrdav.Conf');
goog.require('goog.debug.Console');
goog.require('goog.debug.ErrorHandler');
goog.require('goog.debug.Logger');
goog.require('goog.net.XhrIo');
goog.require('xhrdav.lib');
/*
* Refs: goog.DEBUG=true|false
*/
/**
* xhrdavclient Global config
*
* @constructor
*/
xhrdav.Conf = function() {
this.initialize_();
this.initializeErrorHandler_();
};
goog.addSingletonGetter(xhrdav.Conf);
/**
* Initiaze config
*
* @private
*/
xhrdav.Conf.prototype.initialize_ = function() {
/** @type {string} */
this.xmlParseFuncObj = 'xhrdav.utils.domparse';
/**
* @private
* @type {goog.debug.Logger}
*/
this.logger_ = new goog.debug.Logger.getLogger('xhrdavclient');
if (goog.DEBUG) {
this.logger_.setLevel(goog.debug.Logger.Level.ALL);
} else {
this.logger_.setLevel(goog.debug.Logger.Level.WARNING);
}
goog.debug.Console.autoInstall();
goog.debug.Console.instance.setCapturing(true);
/**
* @private
* @type {Object}
*/
this.xmgr_ = {timeoutInterval: 120000};
/**
* @private
* @type {goog.debug.ErrorHandler}
*/
this.errorHandler_ = null;
};
/**
* Initialize errorHandler
*
* @private
*/
xhrdav.Conf.prototype.initializeErrorHandler_ = function() {
var handler = goog.bind(function(e) {
this.logger_.warning(e.name + ': ' + e.message, e);
}, this);
this.errorHandler_ = new goog.debug.ErrorHandler(handler);
// this.errorHandler_.protectWindowSetInterval();
// this.errorHandler_.protectWindowSetTimeout();
goog.net.XhrIo.protectEntryPoints(this.errorHandler_);
};
/**
* Get errorHandler
*
* @return {goog.debug.ErrorHandler} errorHandler.
*/
xhrdav.Conf.prototype.getErrorHandler = function() {
if (!goog.isDefAndNotNull(this.errorHandler_)) {
this.initializeErrorHandler_();
}
return this.errorHandler_;
};
/**
* Get XhrManager
*
* @return {Object} XhrManager config Map.
*/
xhrdav.Conf.prototype.getXhrMgrConfig = function() {
return this.xmgr_;
};
/**
* Get library logger
*
* Example:
* xhrdav.Conf.getInstance().getLogger().warning(
* 'DavFs: ' + errors.request.path);
* xhrdav.Conf.getInstance().getLogger().warning(
* 'DavFs: ' + errors.request.message);
*
* @param {number=} level goog.debug.Logger.Level.
* @return {goog.debug.Logger} logger object.
*/
xhrdav.Conf.prototype.getLogger = function(level) {
if (level) this.logger_.setLevel(level);
return this.logger_;
};
/**
* Output debug log(use config method).
*
* Example:
* xhrdav.Conf.logging(node.isSelected());
* => [10.098s] [xhrdavclient] true
*
* xhrdav.Conf.logging({
* selected: node.isSelected(), expanded: node.getExpanded()});
* => [10.098s] [xhrdavclient] selected: true
* => [10.098s] [xhrdavclient] expanded: false
*
* @param {(Object|*)} messages
* Log message. Json/Hash Object OR stirng|number|boolean.
* @param {string=} opt_output
* logger output method(warning, info, config, fine, etc).
* [default: info].
* @see goog.debug.Logger
*/
xhrdav.Conf.logging = function(messages, opt_output) {
var logger = xhrdav.Conf.getInstance().getLogger();
var methodName = goog.isDefAndNotNull(opt_output) &&
goog.isDef(logger[opt_output]) ? opt_output : 'info';
if (messages && goog.isObject(messages)) {
var logMessages = {};
goog.mixin(logMessages, messages);
goog.object.forEach(logMessages, function(v, k) {
logger[methodName](goog.string.subs('%s: %s', k, v));
});
} else {
logger[methodName](messages);
}
};
// Load Config
xhrdav.Conf.getInstance();
/* Entry Point for closure compiler */
//goog.exportSymbol('xhrdav.lib.LIBNAME', xhrdav.lib.LIBNAME);
goog.exportSymbol('xhrdav.Conf.getInstance', xhrdav.Conf.getInstance);
goog.exportProperty(xhrdav.Conf.prototype, 'getXhrMgrConfig',
xhrdav.Conf.prototype.getXhrMgrConfig);
goog.exportProperty(xhrdav.Conf.prototype, 'getLogger',
xhrdav.Conf.prototype.getLogger);
goog.exportSymbol('xhrdav.Conf.logging', xhrdav.Conf.logging);