botanjs/src/System/Log.js
raw ยท 1255 bytes
(function(){
var ns = __namespace( "System.Log" );
/** @type {!Array<function(*, number): void>} */
var handler = [];
/** @const {number} */
var SYSTEM = 1;
/** @const {number} */
var INFO = 16;
/** @const {number} */
var ERROR = 32;
/**
* @param {*} mesg
* @param {number=} type
* @return {void}
*/
var writeLine = function(mesg, type)
{
type = (type === undefined) ? INFO : type;
var handled = false;
for (var i in handler)
{
handler[i](mesg, type);
handled = true;
}
if (!handled
&& window["console"]
&& console.log
) {
console.log(mesg);
}
};
/**
* @param {function(*, number): void} func
* @return {number}
*/
var registerHandler = function(func)
{
var index = -1;
handler[index = handler.length] = func;
return index;
};
/**
* @param {number} index
* @return {void}
*/
var removeHandler = function(index)
{
delete handler[index];
};
ns[ NS_EXPORT ]( EX_FUNC, "writeLine", writeLine );
ns[ NS_EXPORT ]( EX_FUNC, "registerHandler", registerHandler );
ns[ NS_EXPORT ]( EX_FUNC, "removeHandler", removeHandler );
ns[ NS_EXPORT ]( EX_CONST, "INFO", INFO );
ns[ NS_EXPORT ]( EX_CONST, "ERROR", ERROR );
ns[ NS_EXPORT ]( EX_CONST, "SYSTEM", SYSTEM );
})();