function fireSignal(n,t,i){var r,f,u,e,o,s;if(i=i||function(){},r=ruleHandlersRegistry[n],!r)return console.info("%s - fireSignal - no rule handlers registered for %s, calling completion callback",tag,n),i();if(f=r.length,u=!1,!rulesCallHistory[n]){for(e in r)r.hasOwnProperty(e)&&require(r[e]);rulesCallHistory[n]=!0}exports.ruleHandlersTimeout>0&&(o=setTimeout(function(){if(!u)return u=!0,console.warn("%s - fireSingnal - signal handling timeouted for signal:",tag,n),i(new Error(tag+" - fireSingnal - completion callback timeouted for signal:"+n))},exports.ruleHandlersTimeout));s=function(){return f--,f==0&&!u?(o&&clearTimeout(o),u=!0,console.log("%s - fireSingnal - calling completion callback for:",tag,n),i()):void 0};module.exports.emit(n,t,s)}var EE=require("events").EventEmitter,ruleHandlersRegistry=require("./rxDssHandlersRegistry.js"),tag="rx.js",rxRulesInstantiationRuleName,rulesCallHistory;module.exports=new EE;exports=module.exports;exports.ruleHandlersTimeout=-1;rxRulesInstantiationRuleName="rx.dss.instantiate";rulesCallHistory={};externalEvents.on("dss:signal",function(n,t,i){var u,f;if(n===rxRulesInstantiationRuleName){console.log("%s - instantiation rule triggered, running rules instantiation sequence",tag);try{return u=require("./rxRulesInstantiationHandler.js"),u.instantiateRules(i)}catch(r){return console.error("%s - error occured during rulesInstantiationHandler.instantiateRules:",tag,r),r.stack&&console.error("%s - error stack trace:",tag,r.stack),i(r)}}try{f=JSON.parse(t)}catch(r){return console.error("%s - failed to parse signal data:",tag,r),i(r)}console.log("%s - caling fire signal for rule %s and data: %s",tag,n,t);try{fireSignal(n,f,i)}catch(r){return console.error("%s - Exception thrown from rx handler.",tag,r),i(r)}});module.exports.registry=ruleHandlersRegistry;module.exports.fireSignal=fireSignal