Class SimSimpleFairPassiveResource
- java.lang.Object
-
- de.uka.ipd.sdq.simulation.abstractsimengine.SimulationElement
-
- de.uka.ipd.sdq.simulation.abstractsimengine.AbstractSimEntityDelegator
-
- de.uka.ipd.sdq.scheduler.entities.SchedulerEntity
-
- de.uka.ipd.sdq.scheduler.resources.AbstractSimResource
-
- de.uka.ipd.sdq.simucomframework.resources.SimSimpleFairPassiveResource
-
- Type Parameters:
M- the type of the simulation model.
- All Implemented Interfaces:
de.uka.ipd.sdq.scheduler.IPassiveResource,de.uka.ipd.sdq.simulation.abstractsimengine.IEntity
public class SimSimpleFairPassiveResource extends de.uka.ipd.sdq.scheduler.resources.AbstractSimResource implements de.uka.ipd.sdq.scheduler.IPassiveResourceSimulates a simple passive resource. Note: This class intentionally does not extendSimAbstractPassiveResource, because that abstract class is intended for passive resources that are accessed by EXACT schedulers (e.g., specific Windows, Linux Scheduler). TODO: comment TODO Initialize based on given model elements [Lehrig]
-
-
Field Summary
Fields Modifier and Type Field Description protected Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess>waitingQueue
-
Constructor Summary
Constructors Constructor Description SimSimpleFairPassiveResource(org.palladiosimulator.pcm.repository.PassiveResource resource, org.palladiosimulator.pcm.core.composition.AssemblyContext assemblyContext, de.uka.ipd.sdq.scheduler.SchedulerModel model, Long capacity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanacquire(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess, long num, boolean timeout, double timeoutValue)voidaddObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer)org.palladiosimulator.pcm.core.composition.AssemblyContextgetAssemblyContext()longgetAvailable()protected StringgetPassiveResourceID()Retrieves the passive resource ID.org.palladiosimulator.pcm.repository.PassiveResourcegetResource()Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess>getWaitingProcesses()booleanisWaiting(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)Determines if a given process is currently waiting to acquire this resource.voidrelease(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess, long num)voidremove(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)Removes a waiting process from the queue.voidremoveObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer)-
Methods inherited from class de.uka.ipd.sdq.scheduler.resources.AbstractSimResource
equals, getCapacity, getId, getName, hashCode, toString
-
Methods inherited from class de.uka.ipd.sdq.simulation.abstractsimengine.AbstractSimEntityDelegator
getEncapsulatedEntity, isScheduled, reschedule
-
-
-
-
Field Detail
-
waitingQueue
protected Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess> waitingQueue
-
-
Constructor Detail
-
SimSimpleFairPassiveResource
public SimSimpleFairPassiveResource(org.palladiosimulator.pcm.repository.PassiveResource resource, org.palladiosimulator.pcm.core.composition.AssemblyContext assemblyContext, de.uka.ipd.sdq.scheduler.SchedulerModel model, Long capacity)
-
-
Method Detail
-
getResource
public org.palladiosimulator.pcm.repository.PassiveResource getResource()
- Specified by:
getResourcein interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
getAssemblyContext
public org.palladiosimulator.pcm.core.composition.AssemblyContext getAssemblyContext()
- Specified by:
getAssemblyContextin interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
getWaitingProcesses
public Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess> getWaitingProcesses()
- Specified by:
getWaitingProcessesin interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
acquire
public boolean acquire(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess, long num, boolean timeout, double timeoutValue)- Specified by:
acquirein interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
getPassiveResourceID
protected String getPassiveResourceID()
Retrieves the passive resource ID.- Returns:
- the passive resource ID
-
release
public void release(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess, long num)- Specified by:
releasein interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
addObserver
public void addObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer)
- Specified by:
addObserverin interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
removeObserver
public void removeObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer)
- Specified by:
removeObserverin interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
getAvailable
public long getAvailable()
- Specified by:
getAvailablein interfacede.uka.ipd.sdq.scheduler.IPassiveResource
-
isWaiting
public boolean isWaiting(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)
Determines if a given process is currently waiting to acquire this resource.- Parameters:
process- the process- Returns:
- TRUE if the process is waiting to acquire the resource; FALSE otherwise
-
remove
public void remove(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)
Removes a waiting process from the queue.- Parameters:
process- the process to remove
-
-