modification on reading settings from config file
1- simulation scenarios are defined in config file instead of static enumarations 2- defining multiple edge orchestrator policy in config file support is added
This commit is contained in:
		@@ -17,7 +17,11 @@ gsm_bandwidth=10
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
mips_for_cloud=20000
 | 
					mips_for_cloud=20000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
task_provisioning=NEXT_FIT
 | 
					#use ',' for multiple values
 | 
				
			||||||
 | 
					orchestrator_policies=NEXT_FIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#use ',' for multiple values
 | 
				
			||||||
 | 
					simulation_scenarios=SINGLE_TIER,TWO_TIER,TWO_TIER_WITH_EO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
attractiveness_L1_mean_waiting_time=60
 | 
					attractiveness_L1_mean_waiting_time=60
 | 
				
			||||||
attractiveness_L2_mean_waiting_time=30
 | 
					attractiveness_L2_mean_waiting_time=30
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,7 @@ public class SimManager extends SimEntity {
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	private static SimManager instance = null;
 | 
						private static SimManager instance = null;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	public SimManager(ScenarioFactory _scenarioFactory, int _numOfMobileDevice, SimSettings.SCENARIO_TYPES _simScenario) throws Exception {
 | 
						public SimManager(ScenarioFactory _scenarioFactory, int _numOfMobileDevice, String _simScenario) throws Exception {
 | 
				
			||||||
		super("SimManager");
 | 
							super("SimManager");
 | 
				
			||||||
		scenarioFactory = _scenarioFactory;
 | 
							scenarioFactory = _scenarioFactory;
 | 
				
			||||||
		numOfMobileDevice = _numOfMobileDevice;
 | 
							numOfMobileDevice = _numOfMobileDevice;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,13 +33,12 @@ public class SimSettings {
 | 
				
			|||||||
	private static SimSettings instance = null;
 | 
						private static SimSettings instance = null;
 | 
				
			||||||
	private Document edgeDevicesDoc = null;
 | 
						private Document edgeDevicesDoc = null;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	//enumarations for the scenarion, VM, appplication, and place.
 | 
						//enumarations for the VM, appplication, and place.
 | 
				
			||||||
	//if you want to add different types on your config file,
 | 
						//if you want to add different types on your config file,
 | 
				
			||||||
	//you may modify current types or add new types here. 
 | 
						//you may modify current types or add new types here. 
 | 
				
			||||||
	public static enum VM_TYPES { EDGE_VM, CLOUD_VM }
 | 
						public static enum VM_TYPES { EDGE_VM, CLOUD_VM }
 | 
				
			||||||
	public static enum APP_TYPES { FACE_REC_APP, HEALTH_APP, HEAVY_COMP_APP, VIDEO_GAME_APP, SIMPLE_SERVICE_APP }
 | 
						public static enum APP_TYPES { FACE_REC_APP, HEALTH_APP, HEAVY_COMP_APP, VIDEO_GAME_APP, SIMPLE_SERVICE_APP }
 | 
				
			||||||
	public static enum PLACE_TYPES { ATTRACTIVENESS_L1, ATTRACTIVENESS_L2, ATTRACTIVENESS_L3 }
 | 
						public static enum PLACE_TYPES { ATTRACTIVENESS_L1, ATTRACTIVENESS_L2, ATTRACTIVENESS_L3 }
 | 
				
			||||||
	public static enum SCENARIO_TYPES { SINGLE_TIER, TWO_TIER, TWO_TIER_WITH_EO }
 | 
					 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	//predifined ID for cloud components.
 | 
						//predifined ID for cloud components.
 | 
				
			||||||
	public static int CLOUD_DATACENTER_ID = 1000;
 | 
						public static int CLOUD_DATACENTER_ID = 1000;
 | 
				
			||||||
@@ -71,7 +70,8 @@ public class SimSettings {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private int MIPS_FOR_CLOUD; //MIPS
 | 
					    private int MIPS_FOR_CLOUD; //MIPS
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    private String ORCHESTRATOR_POLICY;
 | 
					    private String[] SIMULATION_SCENARIOS;
 | 
				
			||||||
 | 
					    private String[] ORCHESTRATOR_POLICIES;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    // mean waiting time (minute) is stored for each place types
 | 
					    // mean waiting time (minute) is stored for each place types
 | 
				
			||||||
    private double[] mobilityLookUpTable;
 | 
					    private double[] mobilityLookUpTable;
 | 
				
			||||||
@@ -135,7 +135,9 @@ public class SimSettings {
 | 
				
			|||||||
			//-Each task is executed with maximum capacity (as if there is no task in the cloud) 
 | 
								//-Each task is executed with maximum capacity (as if there is no task in the cloud) 
 | 
				
			||||||
			MIPS_FOR_CLOUD = Integer.parseInt(prop.getProperty("mips_for_cloud"));
 | 
								MIPS_FOR_CLOUD = Integer.parseInt(prop.getProperty("mips_for_cloud"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			ORCHESTRATOR_POLICY = prop.getProperty("task_provisioning");
 | 
								ORCHESTRATOR_POLICIES = prop.getProperty("orchestrator_policies").split(",");
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
								SIMULATION_SCENARIOS = prop.getProperty("simulation_scenarios").split(",");
 | 
				
			||||||
			
 | 
								
 | 
				
			||||||
			//avg waiting time in a place (min)
 | 
								//avg waiting time in a place (min)
 | 
				
			||||||
			double place1_mean_waiting_time = Double.parseDouble(prop.getProperty("attractiveness_L1_mean_waiting_time"));
 | 
								double place1_mean_waiting_time = Double.parseDouble(prop.getProperty("attractiveness_L1_mean_waiting_time"));
 | 
				
			||||||
@@ -314,11 +316,19 @@ public class SimSettings {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * returns orchestrator policy as string
 | 
						 * returns simulation screnarios as string
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	public String getOrchestratorPolicy()
 | 
						public String[] getSimulationScenarios()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		return ORCHESTRATOR_POLICY;
 | 
							return SIMULATION_SCENARIOS;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * returns orchestrator policies as string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public String[] getOrchestratorPolicies()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							return ORCHESTRATOR_POLICIES;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,7 +18,6 @@ import org.cloudbus.cloudsim.core.CloudSim;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimManager;
 | 
					import edu.boun.edgecloudsim.core.SimManager;
 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimSettings;
 | 
					import edu.boun.edgecloudsim.core.SimSettings;
 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimSettings.SCENARIO_TYPES;
 | 
					 | 
				
			||||||
import edu.boun.edgecloudsim.edge_server.EdgeVM;
 | 
					import edu.boun.edgecloudsim.edge_server.EdgeVM;
 | 
				
			||||||
import edu.boun.edgecloudsim.edge_client.CpuUtilizationModel_Custom;
 | 
					import edu.boun.edgecloudsim.edge_client.CpuUtilizationModel_Custom;
 | 
				
			||||||
import edu.boun.edgecloudsim.edge_client.Task;
 | 
					import edu.boun.edgecloudsim.edge_client.Task;
 | 
				
			||||||
@@ -30,8 +29,7 @@ public class BasicEdgeOrchestrator extends EdgeOrchestrator {
 | 
				
			|||||||
	private int lastSelectedHostIndex; //used by load balancer
 | 
						private int lastSelectedHostIndex; //used by load balancer
 | 
				
			||||||
	private int[] lastSelectedVmIndexes; //used by each host individually
 | 
						private int[] lastSelectedVmIndexes; //used by each host individually
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	public BasicEdgeOrchestrator(String _policy,
 | 
						public BasicEdgeOrchestrator(String _policy, String _simScenario) {
 | 
				
			||||||
			SCENARIO_TYPES _simScenario) {
 | 
					 | 
				
			||||||
		super(_policy, _simScenario);
 | 
							super(_policy, _simScenario);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -47,7 +45,7 @@ public class BasicEdgeOrchestrator extends EdgeOrchestrator {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public EdgeVM selectVm(Task task) {
 | 
						public EdgeVM selectVm(Task task) {
 | 
				
			||||||
		if(simScenario == SimSettings.SCENARIO_TYPES.TWO_TIER_WITH_EO)
 | 
							if(simScenario.equals("TWO_TIER_WITH_EO"))
 | 
				
			||||||
			return selectVmOnLoadBalancer(task);
 | 
								return selectVmOnLoadBalancer(task);
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			return selectVmOnHost(task);
 | 
								return selectVmOnHost(task);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,15 +13,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
package edu.boun.edgecloudsim.edge_orchestrator;
 | 
					package edu.boun.edgecloudsim.edge_orchestrator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimSettings;
 | 
					 | 
				
			||||||
import edu.boun.edgecloudsim.edge_server.EdgeVM;
 | 
					import edu.boun.edgecloudsim.edge_server.EdgeVM;
 | 
				
			||||||
import edu.boun.edgecloudsim.edge_client.Task;
 | 
					import edu.boun.edgecloudsim.edge_client.Task;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class EdgeOrchestrator {
 | 
					public abstract class EdgeOrchestrator {
 | 
				
			||||||
	protected String policy;
 | 
						protected String policy;
 | 
				
			||||||
	protected SimSettings.SCENARIO_TYPES simScenario;
 | 
						protected String simScenario;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	public EdgeOrchestrator(String _policy, SimSettings.SCENARIO_TYPES _simScenario){
 | 
						public EdgeOrchestrator(String _policy, String _simScenario){
 | 
				
			||||||
		policy = _policy;
 | 
							policy = _policy;
 | 
				
			||||||
		simScenario = _simScenario;
 | 
							simScenario = _simScenario;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,7 +17,6 @@ import org.cloudbus.cloudsim.UtilizationModel;
 | 
				
			|||||||
import org.cloudbus.cloudsim.VmAllocationPolicy;
 | 
					import org.cloudbus.cloudsim.VmAllocationPolicy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import edu.boun.edgecloudsim.core.ScenarioFactory;
 | 
					import edu.boun.edgecloudsim.core.ScenarioFactory;
 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimSettings;
 | 
					 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimSettings.APP_TYPES;
 | 
					import edu.boun.edgecloudsim.core.SimSettings.APP_TYPES;
 | 
				
			||||||
import edu.boun.edgecloudsim.edge_orchestrator.BasicEdgeOrchestrator;
 | 
					import edu.boun.edgecloudsim.edge_orchestrator.BasicEdgeOrchestrator;
 | 
				
			||||||
import edu.boun.edgecloudsim.edge_orchestrator.EdgeOrchestrator;
 | 
					import edu.boun.edgecloudsim.edge_orchestrator.EdgeOrchestrator;
 | 
				
			||||||
@@ -34,12 +33,12 @@ public class SampleScenarioFactory implements ScenarioFactory {
 | 
				
			|||||||
	private int numOfMobileDevice;
 | 
						private int numOfMobileDevice;
 | 
				
			||||||
	private double simulationTime;
 | 
						private double simulationTime;
 | 
				
			||||||
	private String orchestratorPolicy;
 | 
						private String orchestratorPolicy;
 | 
				
			||||||
	private SimSettings.SCENARIO_TYPES simScenario;
 | 
						private String simScenario;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	SampleScenarioFactory(int _numOfMobileDevice,
 | 
						SampleScenarioFactory(int _numOfMobileDevice,
 | 
				
			||||||
			double _simulationTime,
 | 
								double _simulationTime,
 | 
				
			||||||
			String _orchestratorPolicy,
 | 
								String _orchestratorPolicy,
 | 
				
			||||||
			SimSettings.SCENARIO_TYPES _simScenario){
 | 
								String _simScenario){
 | 
				
			||||||
		orchestratorPolicy = _orchestratorPolicy;
 | 
							orchestratorPolicy = _orchestratorPolicy;
 | 
				
			||||||
		numOfMobileDevice = _numOfMobileDevice;
 | 
							numOfMobileDevice = _numOfMobileDevice;
 | 
				
			||||||
		simulationTime = _simulationTime;
 | 
							simulationTime = _simulationTime;
 | 
				
			||||||
@@ -75,5 +74,4 @@ public class SampleScenarioFactory implements ScenarioFactory {
 | 
				
			|||||||
	public UtilizationModel getCpuUtilizationModel(APP_TYPES _taskType) {
 | 
						public UtilizationModel getCpuUtilizationModel(APP_TYPES _taskType) {
 | 
				
			||||||
		return new CpuUtilizationModel_Custom(_taskType);
 | 
							return new CpuUtilizationModel_Custom(_taskType);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -75,44 +75,50 @@ public class mainApp {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		for(int j=SS.getMinNumOfMobileDev(); j<=SS.getMaxNumOfMobileDev(); j+=SS.getMobileDevCounterSize())
 | 
							for(int j=SS.getMinNumOfMobileDev(); j<=SS.getMaxNumOfMobileDev(); j+=SS.getMobileDevCounterSize())
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			for (SimSettings.SCENARIO_TYPES scenario : SimSettings.SCENARIO_TYPES.values())
 | 
								for(int k=0; k<SS.getSimulationScenarios().length; k++)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				Date ScenarioStartDate = Calendar.getInstance().getTime();
 | 
									for(int i=0; i<SS.getOrchestratorPolicies().length; i++)
 | 
				
			||||||
				now = df.format(ScenarioStartDate);
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
				SimLogger.printLine("Scenario started at " + now);
 | 
					 | 
				
			||||||
				SimLogger.printLine(scenario + "(" + SS.getOrchestratorPolicy() + ")" + " - duration: " + SS.getSimulationTime()/3600 + " hour(s) - poisson: " + SS.getTaskLookUpTable()[0][2] + " - #devices: " + j + " - ite: " + iterationNumber);
 | 
					 | 
				
			||||||
				SimLogger.getInstance().simStarted(outputFolder,"SIMRESULT_" + scenario + "_" + j + "DEVICES");
 | 
					 | 
				
			||||||
				
 | 
					 | 
				
			||||||
				try
 | 
					 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					// First step: Initialize the CloudSim package. It should be called
 | 
										String simScenario = SS.getSimulationScenarios()[k];
 | 
				
			||||||
					// before creating any entities.
 | 
										String orchestratorPolicy = SS.getOrchestratorPolicies()[i];
 | 
				
			||||||
					int num_user = 2;   // number of grid users
 | 
										Date ScenarioStartDate = Calendar.getInstance().getTime();
 | 
				
			||||||
					Calendar calendar = Calendar.getInstance();
 | 
										now = df.format(ScenarioStartDate);
 | 
				
			||||||
					boolean trace_flag = false;  // mean trace events
 | 
					 | 
				
			||||||
					
 | 
										
 | 
				
			||||||
					// Initialize the CloudSim library
 | 
										SimLogger.printLine("Scenario started at " + now);
 | 
				
			||||||
					CloudSim.init(num_user, calendar, trace_flag, 0.01);
 | 
										SimLogger.printLine("Scenario: " + simScenario + " - Policy: " + orchestratorPolicy + " - #iteration: " + iterationNumber);
 | 
				
			||||||
 | 
										SimLogger.printLine("Duration: " + SS.getSimulationTime()/3600 + " hour(s) - Poisson: " + SS.getTaskLookUpTable()[0][2] + " - #devices: " + j);
 | 
				
			||||||
 | 
										SimLogger.getInstance().simStarted(outputFolder,"SIMRESULT_" + simScenario + "_"  + orchestratorPolicy + "_" + j + "DEVICES");
 | 
				
			||||||
					
 | 
										
 | 
				
			||||||
					ScenarioFactory sampleFactory = new SampleScenarioFactory(j,SS.getSimulationTime(), SS.getOrchestratorPolicy(), scenario);
 | 
										try
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											// First step: Initialize the CloudSim package. It should be called
 | 
				
			||||||
 | 
											// before creating any entities.
 | 
				
			||||||
 | 
											int num_user = 2;   // number of grid users
 | 
				
			||||||
 | 
											Calendar calendar = Calendar.getInstance();
 | 
				
			||||||
 | 
											boolean trace_flag = false;  // mean trace events
 | 
				
			||||||
				
 | 
									
 | 
				
			||||||
					SimManager manager = new SimManager(sampleFactory, j, scenario);
 | 
											// Initialize the CloudSim library
 | 
				
			||||||
					manager.startSimulation();
 | 
											CloudSim.init(num_user, calendar, trace_flag, 0.01);
 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				catch (Exception e)
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					SimLogger.printLine("The simulation has been terminated due to an unexpected error");
 | 
					 | 
				
			||||||
					e.printStackTrace();
 | 
					 | 
				
			||||||
					System.exit(0);
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
						
 | 
											
 | 
				
			||||||
				Date ScenarioEndDate = Calendar.getInstance().getTime();
 | 
											ScenarioFactory sampleFactory = new SampleScenarioFactory(j,SS.getSimulationTime(), orchestratorPolicy, simScenario);
 | 
				
			||||||
				now = df.format(ScenarioEndDate);
 | 
											
 | 
				
			||||||
				SimLogger.printLine("Scenario finished at " + now +  ". It took " + SimUtils.getTimeDifference(ScenarioStartDate,ScenarioEndDate));
 | 
											SimManager manager = new SimManager(sampleFactory, j, simScenario);
 | 
				
			||||||
				SimLogger.printLine("----------------------------------------------------------------------");
 | 
											manager.startSimulation();
 | 
				
			||||||
			}//End of SCENARIO_TYPES loop
 | 
										}
 | 
				
			||||||
		}//End of NUMBER_OF_MOBILE_DEVICE loop
 | 
										catch (Exception e)
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											SimLogger.printLine("The simulation has been terminated due to an unexpected error");
 | 
				
			||||||
 | 
											e.printStackTrace();
 | 
				
			||||||
 | 
											System.exit(0);
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
										
 | 
				
			||||||
 | 
										Date ScenarioEndDate = Calendar.getInstance().getTime();
 | 
				
			||||||
 | 
										now = df.format(ScenarioEndDate);
 | 
				
			||||||
 | 
										SimLogger.printLine("Scenario finished at " + now +  ". It took " + SimUtils.getTimeDifference(ScenarioStartDate,ScenarioEndDate));
 | 
				
			||||||
 | 
										SimLogger.printLine("----------------------------------------------------------------------");
 | 
				
			||||||
 | 
									}//End of orchestrators loop
 | 
				
			||||||
 | 
								}//End of scenarios loop
 | 
				
			||||||
 | 
							}//End of mobile devices loop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Date SimulationEndDate = Calendar.getInstance().getTime();
 | 
							Date SimulationEndDate = Calendar.getInstance().getTime();
 | 
				
			||||||
		now = df.format(SimulationEndDate);
 | 
							now = df.format(SimulationEndDate);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,7 +26,7 @@ import edu.boun.edgecloudsim.utils.SimUtils;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class IdleActiveLoadGenerator extends LoadGeneratorModel{
 | 
					public class IdleActiveLoadGenerator extends LoadGeneratorModel{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public IdleActiveLoadGenerator(int _numberOfMobileDevices, double _simulationTime, SimSettings.SCENARIO_TYPES _simScenario) {
 | 
						public IdleActiveLoadGenerator(int _numberOfMobileDevices, double _simulationTime, String _simScenario) {
 | 
				
			||||||
		super(_numberOfMobileDevices, _simulationTime, _simScenario);
 | 
							super(_numberOfMobileDevices, _simulationTime, _simScenario);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -88,7 +88,7 @@ public class IdleActiveLoadGenerator extends LoadGeneratorModel{
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				boolean requireCloud = false;
 | 
									boolean requireCloud = false;
 | 
				
			||||||
				if(simScenario != SimSettings.SCENARIO_TYPES.SINGLE_TIER){
 | 
									if(!simScenario.equals("SINGLE_TIER")){
 | 
				
			||||||
					//decide to use cloud or cloudlet VM
 | 
										//decide to use cloud or cloudlet VM
 | 
				
			||||||
					int CloudVmPicker = SimUtils.getRandomNumber(0, 100);
 | 
										int CloudVmPicker = SimUtils.getRandomNumber(0, 100);
 | 
				
			||||||
					
 | 
										
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,16 +15,15 @@ package edu.boun.edgecloudsim.task_generator;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import edu.boun.edgecloudsim.core.SimSettings;
 | 
					 | 
				
			||||||
import edu.boun.edgecloudsim.utils.EdgeTask;
 | 
					import edu.boun.edgecloudsim.utils.EdgeTask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class LoadGeneratorModel {
 | 
					public abstract class LoadGeneratorModel {
 | 
				
			||||||
	protected List<EdgeTask> taskList;
 | 
						protected List<EdgeTask> taskList;
 | 
				
			||||||
	protected int numberOfMobileDevices;
 | 
						protected int numberOfMobileDevices;
 | 
				
			||||||
	protected double simulationTime;
 | 
						protected double simulationTime;
 | 
				
			||||||
	protected SimSettings.SCENARIO_TYPES simScenario;
 | 
						protected String simScenario;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	public LoadGeneratorModel(int _numberOfMobileDevices, double _simulationTime, SimSettings.SCENARIO_TYPES _simScenario){
 | 
						public LoadGeneratorModel(int _numberOfMobileDevices, double _simulationTime, String _simScenario){
 | 
				
			||||||
		numberOfMobileDevices=_numberOfMobileDevices;
 | 
							numberOfMobileDevices=_numberOfMobileDevices;
 | 
				
			||||||
		simulationTime=_simulationTime;
 | 
							simulationTime=_simulationTime;
 | 
				
			||||||
		simScenario=_simScenario;
 | 
							simScenario=_simScenario;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user