/* jslint node: true */ 'use strict'; // ENiGMA½ const loadModulesForCategory = require('./module_util.js').loadModulesForCategory; // standard/deps const async = require('async'); exports.startup = startup; exports.shutdown = shutdown; exports.recordMessage = recordMessage; let msgNetworkModules = []; function startup(cb) { async.series( [ function loadModules(callback) { loadModulesForCategory('scannerTossers', (module, nextModule) => { const modInst = new module.getModule(); modInst.startup(err => { if(!err) { msgNetworkModules.push(modInst); } }); return nextModule(null); }, err => { callback(err); }); } ], cb ); } function shutdown(cb) { async.each( msgNetworkModules, (msgNetModule, next) => { msgNetModule.shutdown( () => { return next(); }); }, () => { msgNetworkModules = []; return cb(null); } ); } function recordMessage(message, cb) { // // Give all message network modules (scanner/tossers) // a chance to do something with |message|. Any or all can // choose to ignore it. // async.each(msgNetworkModules, (modInst, next) => { modInst.record(message); next(); }, err => { cb(err); }); }