2014-03-04 00:33:55 -08:00
|
|
|
var events = require('events');
|
|
|
|
var cluster = require('cluster');
|
|
|
|
|
|
|
|
var MposCompatibility = require('./mposCompatibility.js');
|
|
|
|
var ShareProcessor = require('./shareProcessor.js');
|
|
|
|
|
|
|
|
|
|
|
|
var processor = module.exports = function processor(logger, poolConfigs){
|
|
|
|
|
|
|
|
var _this = this;
|
|
|
|
|
|
|
|
|
|
|
|
var mposCompat = new MposCompatibility(logger, poolConfigs);
|
|
|
|
var shareProcessor = new ShareProcessor(logger, poolConfigs);
|
|
|
|
|
|
|
|
|
|
|
|
this.init = function(){
|
|
|
|
|
|
|
|
Object.keys(cluster.workers).forEach(function(id) {
|
|
|
|
cluster.workers[id].on('message', function(data){
|
|
|
|
|
|
|
|
var shareProcessing = poolConfigs[data.coin].shareProcessing;
|
|
|
|
|
|
|
|
switch(data.type){
|
|
|
|
case 'share':
|
|
|
|
if (shareProcessing.internal.enabled)
|
|
|
|
shareProcessor.handleShare(data);
|
|
|
|
if (shareProcessing.mpos.enabled)
|
|
|
|
mposCompat.handleShare(data);
|
|
|
|
break;
|
|
|
|
case 'difficultyUpdate':
|
|
|
|
if (shareProcessing.mpos.enabled)
|
|
|
|
mposCompat.handleDifficultyUpdate(data);
|
|
|
|
break;
|
|
|
|
case 'block':
|
|
|
|
if (shareProcessing.internal.enabled)
|
|
|
|
shareProcessor.handleBlock(data);
|
|
|
|
break;
|
2014-03-04 12:24:02 -08:00
|
|
|
case 'mposAuth':
|
|
|
|
mposCompat.handleAuth(data);
|
|
|
|
break;
|
2014-03-04 00:33:55 -08:00
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
processor.prototype.__proto__ = events.EventEmitter.prototype;
|