edgecloudsim/src/edu/boun/edgecloudsim/applications/sample_app5/VehicularScenarioFactory.java

79 lines
2.5 KiB
Java

/*
* Title: EdgeCloudSim - Scenario Factory
*
* Description: VehicularScenarioFactory provides the default
* instances of required abstract classes
*
* Licence: GPL - http://www.gnu.org/copyleft/gpl.html
* Copyright (c) 2017, Bogazici University, Istanbul, Turkey
*/
package edu.boun.edgecloudsim.applications.sample_app5;
import edu.boun.edgecloudsim.cloud_server.CloudServerManager;
import edu.boun.edgecloudsim.cloud_server.DefaultCloudServerManager;
import edu.boun.edgecloudsim.core.ScenarioFactory;
import edu.boun.edgecloudsim.edge_orchestrator.EdgeOrchestrator;
import edu.boun.edgecloudsim.edge_server.EdgeServerManager;
import edu.boun.edgecloudsim.edge_client.MobileDeviceManager;
import edu.boun.edgecloudsim.edge_client.mobile_processing_unit.MobileServerManager;
import edu.boun.edgecloudsim.mobility.MobilityModel;
import edu.boun.edgecloudsim.task_generator.LoadGeneratorModel;
import edu.boun.edgecloudsim.network.NetworkModel;
public class VehicularScenarioFactory implements ScenarioFactory {
private int numOfMobileDevice;
private double simulationTime;
private String orchestratorPolicy;
private String simScenario;
VehicularScenarioFactory(int _numOfMobileDevice,
double _simulationTime,
String _orchestratorPolicy,
String _simScenario){
orchestratorPolicy = _orchestratorPolicy;
numOfMobileDevice = _numOfMobileDevice;
simulationTime = _simulationTime;
simScenario = _simScenario;
}
@Override
public LoadGeneratorModel getLoadGeneratorModel() {
return new VehicularLoadGenerator(numOfMobileDevice, simulationTime, simScenario);
}
@Override
public EdgeOrchestrator getEdgeOrchestrator() {
return new VehicularEdgeOrchestrator(numOfMobileDevice, orchestratorPolicy, simScenario);
}
@Override
public MobilityModel getMobilityModel() {
return new VehicularMobilityModel(numOfMobileDevice,simulationTime);
}
@Override
public NetworkModel getNetworkModel() {
return new VehicularNetworkModel(numOfMobileDevice, simScenario, orchestratorPolicy);
}
@Override
public EdgeServerManager getEdgeServerManager() {
return new VehicularEdgeServerManager();
}
@Override
public CloudServerManager getCloudServerManager() {
return new DefaultCloudServerManager();
}
@Override
public MobileDeviceManager getMobileDeviceManager() throws Exception {
return new VehicularMobileDeviceManager();
}
@Override
public MobileServerManager getMobileServerManager() {
return new VehicularMobileServerManager(numOfMobileDevice);
}
}