// Path: src/edu/boun/edgecloudsim/utils/TaskProperty.java
// public class TaskProperty {
// 	private double startTime;
// 	private long length, inputFileSize, outputFileSize;
// 	private int taskType;
// 	private int pesNumber;
// 	private int mobileDeviceId;
// 
// 	public TaskProperty(double _startTime, int _mobileDeviceId, int _taskType, int _pesNumber, long _length, long _inputFileSize, long _outputFileSize) {
// 		startTime=_startTime;
// 		mobileDeviceId=_mobileDeviceId;
// 		taskType=_taskType;
// 		pesNumber = _pesNumber;
// 		length = _length;
// 		outputFileSize = _inputFileSize;
// 		inputFileSize = _outputFileSize;
// 	}
// 
// 	public TaskProperty(int _mobileDeviceId, int _taskType, double _startTime, ExponentialDistribution[][] expRngList) {
// 		mobileDeviceId=_mobileDeviceId;
// 		startTime=_startTime;
// 		taskType=_taskType;
// 
// 		inputFileSize = (long)expRngList[_taskType][0].sample();
// 		outputFileSize =(long)expRngList[_taskType][1].sample();
// 		length = (long)expRngList[_taskType][2].sample();
// 
// 		pesNumber = (int)SimSettings.getInstance().getTaskLookUpTable()[_taskType][8];
// 	}
// 
// 	public TaskProperty(int mobileDeviceId, double startTime, ExponentialDistribution[] expRngList) {
// 		this.mobileDeviceId = mobileDeviceId;
// 		this.startTime = startTime;
// 		taskType = 0;
// 		inputFileSize = (long)expRngList[0].sample();
// 		outputFileSize = (long)expRngList[1].sample();
// 		length = (long) expRngList[2].sample();
// 		pesNumber = (int)SimSettings.getInstance().getTaskLookUpTable()[0][8];
// 	}
// 
// 	public double getStartTime(){
// 		return startTime;
// 	}
// 
// 	public long getLength(){
// 		return length;
// 	}
// 
// 	public long getInputFileSize(){
// 		return inputFileSize;
// 	}
// 
// 	public long getOutputFileSize(){
// 		return outputFileSize;
// 	}
// 
// 	public int getTaskType(){
// 		return taskType;
// 	}
// 
// 	public int getPesNumber(){
// 		return pesNumber;
// 	}
// 
// 	public int getMobileDeviceId(){
// 		return mobileDeviceId;
// 	}
// }


import org.cloudbus.cloudsim.DatacenterBroker;
import org.cloudbus.cloudsim.UtilizationModel;
import edu.boun.edgecloudsim.utils.TaskProperty;

package edu.boun.edgecloudsim.edge_client;



public abstract class MobileDeviceManager  extends DatacenterBroker {

	public MobileDeviceManager() throws Exception {
		super("Global_Broker");
	}
	
	/*
	 * initialize mobile device manager if needed
	 */
	public abstract void initialize();
	
	/*
	 * provides abstract CPU Utilization Model
	 */
	public abstract UtilizationModel getCpuUtilizationModel();
	

// Path: src/edu/boun/edgecloudsim/utils/TaskProperty.java
// public class TaskProperty {
// 	private double startTime;
// 	private long length, inputFileSize, outputFileSize;
// 	private int taskType;
// 	private int pesNumber;
// 	private int mobileDeviceId;
// 
// 	public TaskProperty(double _startTime, int _mobileDeviceId, int _taskType, int _pesNumber, long _length, long _inputFileSize, long _outputFileSize) {
// 		startTime=_startTime;
// 		mobileDeviceId=_mobileDeviceId;
// 		taskType=_taskType;
// 		pesNumber = _pesNumber;
// 		length = _length;
// 		outputFileSize = _inputFileSize;
// 		inputFileSize = _outputFileSize;
// 	}
// 
// 	public TaskProperty(int _mobileDeviceId, int _taskType, double _startTime, ExponentialDistribution[][] expRngList) {
// 		mobileDeviceId=_mobileDeviceId;
// 		startTime=_startTime;
// 		taskType=_taskType;
// 
// 		inputFileSize = (long)expRngList[_taskType][0].sample();
// 		outputFileSize =(long)expRngList[_taskType][1].sample();
// 		length = (long)expRngList[_taskType][2].sample();
// 
// 		pesNumber = (int)SimSettings.getInstance().getTaskLookUpTable()[_taskType][8];
// 	}
// 
// 	public TaskProperty(int mobileDeviceId, double startTime, ExponentialDistribution[] expRngList) {
// 		this.mobileDeviceId = mobileDeviceId;
// 		this.startTime = startTime;
// 		taskType = 0;
// 		inputFileSize = (long)expRngList[0].sample();
// 		outputFileSize = (long)expRngList[1].sample();
// 		length = (long) expRngList[2].sample();
// 		pesNumber = (int)SimSettings.getInstance().getTaskLookUpTable()[0][8];
// 	}
// 
// 	public double getStartTime(){
// 		return startTime;
// 	}
// 
// 	public long getLength(){
// 		return length;
// 	}
// 
// 	public long getInputFileSize(){
// 		return inputFileSize;
// 	}
// 
// 	public long getOutputFileSize(){
// 		return outputFileSize;
// 	}
// 
// 	public int getTaskType(){
// 		return taskType;
// 	}
// 
// 	public int getPesNumber(){
// 		return pesNumber;
// 	}
// 
// 	public int getMobileDeviceId(){
// 		return mobileDeviceId;
// 	}
// }


// Path: src/edu/boun/edgecloudsim/edge_client/MobileDeviceManager.java
import org.cloudbus.cloudsim.DatacenterBroker;
import org.cloudbus.cloudsim.UtilizationModel;
import edu.boun.edgecloudsim.utils.TaskProperty;

package edu.boun.edgecloudsim.edge_client;



public abstract class MobileDeviceManager  extends DatacenterBroker {

	public MobileDeviceManager() throws Exception {
		super("Global_Broker");
	}
	
	/*
	 * initialize mobile device manager if needed
	 */
	public abstract void initialize();
	
	/*
	 * provides abstract CPU Utilization Model
	 */
	public abstract UtilizationModel getCpuUtilizationModel();
	

	public abstract void submitTask(TaskProperty edgeTask);
