'use strict'; function JobAgentGenerator(id) { // execute super constructor eve.Agent.call(this, id); this.rpc = this.loadModule('rpc', this.rpcFunctions); this.connect(eve.system.transports.getAll()); } // extend the eve.Agent prototype JobAgentGenerator.prototype = Object.create(eve.Agent.prototype); JobAgentGenerator.prototype.constructor = AgentGenerator; // define RPC functions, preferably in a separated object to clearly distinct // exposed functions from local functions. JobAgentGenerator.prototype.rpcFunctions = {}; JobAgentGenerator.prototype.rpcFunctions.createJob = function(params) { var jobAgentName = params.type; if (jobList[jobAgentName] === undefined) { jobList[jobAgentName] = new JobAgent(jobAgentName); graph2dGroups.add([ { id: jobAgentName+'_pred_duration_std_lower', content: "prediction", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_durationWithPause_std_lower', content: "predWithPause", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_durationWithStartup_std_lower', content: "predWithStartup", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_durationWithBoth_std_lower', content: "predWithBoth", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_duration_std_higher', content: "prediction", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_durationWithPause_std_higher', content: "predWithPause", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_durationWithStartup_std_higher', content: "predWithStartup", className: 'prediction_std', options: {drawPoints:false} }, { id: jobAgentName+'_pred_durationWithBoth_std_higher', content: "predWithBoth", className: 'prediction_std', options: {drawPoints:false} },{ id: jobAgentName+'_pred_duration_original', content: "prediction", className: 'prediction_original' }, { id: jobAgentName+'_pred_durationWithPause_original', content: "predWithPause", className: 'prediction_original' }, { id: jobAgentName+'_pred_durationWithStartup_original', content: "predWithStartup", className: 'prediction_original' }, { id: jobAgentName+'_pred_durationWithBoth_original', content: "predWithBoth", className: 'prediction_original' }, { id: jobAgentName+'_pred_duration', content: "prediction", className: 'prediction' }, { id: jobAgentName+'_pred_durationWithPause', content: "predWithPause", className: 'prediction' }, { id: jobAgentName+'_pred_durationWithStartup', content: "predWithStartup", className: 'prediction' }, { id: jobAgentName+'_pred_durationWithBoth', content: "predWithBoth", className: 'prediction' }, { id: jobAgentName+'_duration', content: "duration", className: 'duration' }, { id: jobAgentName+'_durationWithPause', content: "durationWithPause", className: 'duration' }, { id: jobAgentName+'_durationWithStartup', content: "durationWithStartup", className: 'duration' }, { id: jobAgentName+'_durationWithBoth', content: "durationWithBoth", className: 'duration' } ]); var visibilityUpdate = {}; //visibilityUpdate[jobAgentName+'_pred'] = false; //visibilityUpdate[jobAgentName+'_predWithPause'] = false; //visibilityUpdate[jobAgentName+'_predWithStartup'] = false; //visibilityUpdate[jobAgentName+'_predWithBoth'] = false; //visibilityUpdate[jobAgentName+'_duration'] = false; //visibilityUpdate[jobAgentName+'_durationWithPause'] = false; //visibilityUpdate[jobAgentName+'_durationWithStartup'] = false; //visibilityUpdate[jobAgentName+'_durationWithBoth'] = false; graph2d.setOptions({groups:{visible:visibilityUpdate}}); refreshJobs(); } }; JobAgentGenerator.prototype.rpcFunctions.returnJobAddress = function(params) { var instanceId = params.instanceId; var hasJob = false; for (var jobAgentName in jobList) { if (jobList.hasOwnProperty(jobAgentName)) { hasJob = jobList[jobAgentName].hasJob(instanceId); if (hasJob == true) { return jobAgentName; } } } return "doesNotExist"; }; JobAgentGenerator.prototype.getAllJobNames = function() { var list = []; for (var jobAgentName in jobList) { if (jobList.hasOwnProperty(jobAgentName)) { list.push(jobAgentName); } } return list; };