Class SimulatedLinkingResource
- java.lang.Object
-
- de.uka.ipd.sdq.simulation.abstractsimengine.SimulationElement
-
- de.uka.ipd.sdq.simulation.abstractsimengine.AbstractSimEntityDelegator
-
- de.uka.ipd.sdq.simucomframework.entities.SimuComEntity
-
- de.uka.ipd.sdq.simucomframework.resources.AbstractScheduledResource
-
- de.uka.ipd.sdq.simucomframework.resources.SimulatedLinkingResource
-
- All Implemented Interfaces:
de.uka.ipd.sdq.scheduler.sensors.IActiveResourceStateSensor,IResourceDemandModifiable,de.uka.ipd.sdq.simulation.abstractsimengine.IEntity
public class SimulatedLinkingResource extends AbstractScheduledResource
Realizes a LinkingResource. Adds the latency time to the passed demand in#consumeResource(SimuComSimProcess, double), and they is loaded by latency + demand / throughput.
-
-
Constructor Summary
Constructors Constructor Description SimulatedLinkingResource(org.palladiosimulator.pcm.resourceenvironment.LinkingResource linkingResource, SimuComModel simuComModel, String resourceContainerID)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactivateResource()Called by the framework to inform that the resource should start its lifecycleprotected voidassertAvailability()Asserts that the resource is currently available; if not, an EnvironmentFailureException is thrown.protected doublecalculateDemand(double demand)Template method.protected de.uka.ipd.sdq.scheduler.IActiveResourcecreateActiveResource(SimuComModel simuComModel)Subclasses are responsible for creating theIActiveResourceto use internally.voiddeactivateResource()Called by the framework to inform the resource that the simulation has been stopped.StringgetId()org.palladiosimulator.pcm.resourceenvironment.LinkingResourcegetLinkingResource()static StringgetNextResourceId()doublegetRemainingDemandForProcess(SimuComSimProcess thread)de.uka.ipd.sdq.scheduler.IActiveResourcegetScheduledResource()voidsetLatency(String latency)Change the linking resource latency after its creation.voidsetThroughput(String throughput)Change the linking resource throughput after its creation.voidupdateDemand(SimuComSimProcess thread, double demand)-
Methods inherited from class de.uka.ipd.sdq.simucomframework.resources.AbstractScheduledResource
addDemandListener, addDemandModifyingBehavior, addOverallUtilizationListener, addStateListener, consumeResource, demandCompleted, fireDemand, fireOverallUtilization, fireStateEvent, getDescription, getNumberOfInstances, getQueueLength, getResourceTypeId, getSchedulingStrategyID, getUnderlyingResource, isAvailable, isRequiredByContainer, removeDemandModifyingBehavior, setAvailable, update
-
Methods inherited from class de.uka.ipd.sdq.simucomframework.entities.SimuComEntity
getModel
-
-
-
-
Constructor Detail
-
SimulatedLinkingResource
public SimulatedLinkingResource(org.palladiosimulator.pcm.resourceenvironment.LinkingResource linkingResource, SimuComModel simuComModel, String resourceContainerID)
-
-
Method Detail
-
getId
public String getId()
-
createActiveResource
protected de.uka.ipd.sdq.scheduler.IActiveResource createActiveResource(SimuComModel simuComModel)
Description copied from class:AbstractScheduledResourceSubclasses are responsible for creating theIActiveResourceto use internally. Is called in the constructor.- Specified by:
createActiveResourcein classAbstractScheduledResource- Returns:
- the
IActiveResourceresource to use as determined by the subclasses.
-
calculateDemand
protected double calculateDemand(double demand)
Description copied from class:AbstractScheduledResourceTemplate method. Implementers have to use the given demand and return the time span needed to process the demand on this resource.- Specified by:
calculateDemandin classAbstractScheduledResource- Parameters:
demand- The demand issued to this resource in units understood by the resource- Returns:
- The service time, given in seconds
-
assertAvailability
protected void assertAvailability()
Description copied from class:AbstractScheduledResourceAsserts that the resource is currently available; if not, an EnvironmentFailureException is thrown.- Overrides:
assertAvailabilityin classAbstractScheduledResource
-
getRemainingDemandForProcess
public double getRemainingDemandForProcess(SimuComSimProcess thread)
- Specified by:
getRemainingDemandForProcessin classAbstractScheduledResource
-
updateDemand
public void updateDemand(SimuComSimProcess thread, double demand)
- Specified by:
updateDemandin classAbstractScheduledResource
-
getScheduledResource
public de.uka.ipd.sdq.scheduler.IActiveResource getScheduledResource()
- Specified by:
getScheduledResourcein classAbstractScheduledResource
-
activateResource
public void activateResource()
Description copied from class:AbstractScheduledResourceCalled by the framework to inform that the resource should start its lifecycle- Overrides:
activateResourcein classAbstractScheduledResource
-
deactivateResource
public void deactivateResource()
Description copied from class:AbstractScheduledResourceCalled by the framework to inform the resource that the simulation has been stopped. Fires aIStateListener#stateChanged()event.- Overrides:
deactivateResourcein classAbstractScheduledResource
-
getNextResourceId
public static String getNextResourceId()
-
getLinkingResource
public org.palladiosimulator.pcm.resourceenvironment.LinkingResource getLinkingResource()
-
setThroughput
public void setThroughput(String throughput)
Change the linking resource throughput after its creation.- Parameters:
throughput- the new throughput specification
-
setLatency
public void setLatency(String latency)
Change the linking resource latency after its creation.- Parameters:
latency- the new latency specification
-
-