M
- the type of the simulation model.public class SimSimpleFairPassiveResource
extends de.uka.ipd.sdq.scheduler.resources.AbstractSimResource
implements de.uka.ipd.sdq.scheduler.IPassiveResource
SimAbstractPassiveResource
, 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]Modifier and Type | Field and Description |
---|---|
protected java.util.Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess> |
waitingQueue |
capacity, factory
Constructor and Description |
---|
SimSimpleFairPassiveResource(org.palladiosimulator.pcm.repository.PassiveResource resource,
org.palladiosimulator.pcm.core.composition.AssemblyContext assemblyContext,
de.uka.ipd.sdq.scheduler.SchedulerModel model,
java.lang.Long capacity) |
Modifier and Type | Method and Description |
---|---|
boolean |
acquire(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess,
long num,
boolean timeout,
double timeoutValue) |
void |
addObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer) |
org.palladiosimulator.pcm.core.composition.AssemblyContext |
getAssemblyContext() |
long |
getAvailable() |
protected java.lang.String |
getPassiveResourceID()
Retrieves the passive resource ID.
|
org.palladiosimulator.pcm.repository.PassiveResource |
getResource() |
java.util.Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess> |
getWaitingProcesses() |
boolean |
isWaiting(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)
Determines if a given process is currently waiting to acquire this resource.
|
void |
release(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess,
long num) |
void |
remove(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)
Removes a waiting process from the queue.
|
void |
removeObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer) |
equals, getCapacity, getId, getName, hashCode, toString
getEncapsulatedEntity, isScheduled, reschedule
protected java.util.Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess> waitingQueue
public SimSimpleFairPassiveResource(org.palladiosimulator.pcm.repository.PassiveResource resource, org.palladiosimulator.pcm.core.composition.AssemblyContext assemblyContext, de.uka.ipd.sdq.scheduler.SchedulerModel model, java.lang.Long capacity)
public org.palladiosimulator.pcm.repository.PassiveResource getResource()
getResource
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public org.palladiosimulator.pcm.core.composition.AssemblyContext getAssemblyContext()
getAssemblyContext
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public java.util.Queue<de.uka.ipd.sdq.scheduler.processes.IWaitingProcess> getWaitingProcesses()
getWaitingProcesses
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public boolean acquire(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess, long num, boolean timeout, double timeoutValue)
acquire
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
protected java.lang.String getPassiveResourceID()
public void release(de.uka.ipd.sdq.scheduler.ISchedulableProcess schedulableProcess, long num)
release
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public void addObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer)
addObserver
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public void removeObserver(de.uka.ipd.sdq.scheduler.sensors.IPassiveResourceSensor observer)
removeObserver
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public long getAvailable()
getAvailable
in interface de.uka.ipd.sdq.scheduler.IPassiveResource
public boolean isWaiting(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)
process
- the processpublic void remove(de.uka.ipd.sdq.scheduler.processes.SimpleWaitingProcess process)
process
- the process to remove