latte_web3
Version:
65 lines (63 loc) • 1.95 kB
JavaScript
(function(define) { 'use strict';
define("latte_web/rpc/index", ["require", "exports", "module", "window"],
function(require, exports, module, window) {
var latte_lib = require("latte_lib")
, ORPC = require("./orpc")
, Cluster = require("cluster");
function RPC(config) {
ORPC.call(this, config);
this.addWorker(Cluster.worker);
var self = this;
this.on("slaveError", function(err) {
if(self.config.log) {
var filename = "./logs/slaveError/"+latte_lib.format.dateFormat()+".log";
latte_lib.fs.writeFile(filename, latte_lib.getErrorString(err));
}else{
throw err;
}
});
this.on("slaveRpcLoadError", function(err) {
console.log(latte_lib.getErrorString(err));
if(self.config.log) {
var filename = "./logs/webSlaveRpcLoadError/"+latte_lib.format.dateFormat()+".log";
latte_lib.fs.writeFile(filename, latte_lib.getErrorString(err));
}else{
throw err;
}
});
this.on("error", function(e) {
self.emit("slaveError", e);
});
this.reload();
};
latte_lib.inherits(RPC, ORPC);
(function() {
this.loadFile = function(path) {
var self = this;
var o ;
try {
o = self.rpcRequire.require("./"+path);
}catch(err) {
if(self.config.log) {
var filename = "./logs/loadWebRpc/"+latte_lib.format.dateFormat()+".log";
latte_lib.fs.writeFile(filename, latte_lib.getErrorString(err));
}else{
throw err;
}
return ;
}
if(o.slave) {
self.Set(o.method, o.slave);
}
}
this.addWorker = function(worker) {
this.worker = worker;
ORPC.prototype.addWorker.call(this, this.worker);
}
this.write = function(data,handle) {
this.worker.process.send(data, handle);
}
}).call(RPC.prototype);
module.exports = RPC;
});
})(typeof define === "function"? define: function(name, reqs, factory) { factory(require, exports, module); });