Class D4_MedianWindowing
- java.lang.Object
-
- org.palladiosimulator.indirections.scheduler.AbstractSimDataChannelResource
-
- org.palladiosimulator.indirections.scheduler.implementations.D4_MedianWindowing
-
- All Implemented Interfaces:
IDataChannelResource
public class D4_MedianWindowing extends AbstractSimDataChannelResource
-
-
Field Summary
Fields Modifier and Type Field Description protected Queue<IndirectionDate>
data
static String
GRACE_PERIOD_PARAMETER_NAME
protected Map<Emitters.Window,List<IndirectionDate>>
windowToDates
-
Fields inherited from class org.palladiosimulator.indirections.scheduler.AbstractSimDataChannelResource
afterAcceptingAgeCalculator, assemblyContext, beforeProvidingAgeCalculator, dataChannel, dataChannelResourceRegistry, discardedAgeCalculator, id, mainContext, model, name, numberOfDiscardedIncomingElementsCalculator, numberOfDiscardedOutgoingElementsCalculator, numberOfStoredIncomingElementsCalculator, numberOfStoredOutgoingElementsCalculator, processesWaitingToGet, processesWaitingToPut, resourceTableManager, simulatedThreadComponentFactory, waitingToGetTimeCalculator, waitingToPutTimeCalculator
-
-
Constructor Summary
Constructors Constructor Description D4_MedianWindowing(JavaClassDataChannel dataChannel, org.palladiosimulator.pcm.core.composition.AssemblyContext assemblyContext, org.palladiosimulator.simulizar.interpreter.InterpreterDefaultContext mainContext, de.uka.ipd.sdq.scheduler.SchedulerModel model, org.palladiosimulator.simulizar.di.component.interfaces.SimulatedThreadComponent.Factory simulatedThreadComponentFactory, DataChannelResourceRegistry dataChannelResourceRegistry)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
acceptData(DataSinkRole role, IndirectionDate date)
protected boolean
canAcceptData(DataSinkRole role)
protected boolean
canProvideData(DataSourceRole role)
protected void
emit(Emitters.Window window)
protected void
handleCannotProceedToGet(ProcessWaitingToGet process)
protected void
handleCannotProceedToPut(ProcessWaitingToPut process)
protected void
handleNewWatermarkedTime(double oldWatermarkTime, double watermarkTime)
protected boolean
isPushingRole(DataSourceRole role)
protected void
provideDataAndAdvance(DataSourceRole role, Consumer<IndirectionDate> continuation)
It must hold that#provideDataAndAdvance(DataChannelSourceConnector)
can be called iff#canProvideData(DataChannelSourceConnector)
was true immediately before the call.-
Methods inherited from class org.palladiosimulator.indirections.scheduler.AbstractSimDataChannelResource
advance, blockUntilCanGet, blockUntilCanPut, continueWithoutData, discardDataAndContinue, discardDateIfTooOld, discardIncomingDate, get, getCurrentWatermarkedTime, getId, getName, isDateTooOld, notifyProcessesCanGetNewData, notifyProcessesCanPutNewData, processDataAvailableToGet, put, scheduleAdvance, scheduleDemand, unscheduleAdvance
-
-
-
-
Field Detail
-
GRACE_PERIOD_PARAMETER_NAME
public static final String GRACE_PERIOD_PARAMETER_NAME
- See Also:
- Constant Field Values
-
windowToDates
protected final Map<Emitters.Window,List<IndirectionDate>> windowToDates
-
data
protected final Queue<IndirectionDate> data
-
-
Constructor Detail
-
D4_MedianWindowing
public D4_MedianWindowing(JavaClassDataChannel dataChannel, org.palladiosimulator.pcm.core.composition.AssemblyContext assemblyContext, org.palladiosimulator.simulizar.interpreter.InterpreterDefaultContext mainContext, de.uka.ipd.sdq.scheduler.SchedulerModel model, org.palladiosimulator.simulizar.di.component.interfaces.SimulatedThreadComponent.Factory simulatedThreadComponentFactory, DataChannelResourceRegistry dataChannelResourceRegistry)
-
-
Method Detail
-
acceptData
protected void acceptData(DataSinkRole role, IndirectionDate date)
- Specified by:
acceptData
in classAbstractSimDataChannelResource
-
emit
protected void emit(Emitters.Window window)
-
canAcceptData
protected boolean canAcceptData(DataSinkRole role)
- Specified by:
canAcceptData
in classAbstractSimDataChannelResource
-
canProvideData
protected boolean canProvideData(DataSourceRole role)
- Specified by:
canProvideData
in classAbstractSimDataChannelResource
-
isPushingRole
protected boolean isPushingRole(DataSourceRole role)
- Specified by:
isPushingRole
in classAbstractSimDataChannelResource
-
handleCannotProceedToGet
protected void handleCannotProceedToGet(ProcessWaitingToGet process)
- Specified by:
handleCannotProceedToGet
in classAbstractSimDataChannelResource
-
handleCannotProceedToPut
protected void handleCannotProceedToPut(ProcessWaitingToPut process)
- Specified by:
handleCannotProceedToPut
in classAbstractSimDataChannelResource
-
handleNewWatermarkedTime
protected void handleNewWatermarkedTime(double oldWatermarkTime, double watermarkTime)
- Specified by:
handleNewWatermarkedTime
in classAbstractSimDataChannelResource
-
provideDataAndAdvance
protected void provideDataAndAdvance(DataSourceRole role, Consumer<IndirectionDate> continuation)
Description copied from class:AbstractSimDataChannelResource
It must hold that#provideDataAndAdvance(DataChannelSourceConnector)
can be called iff#canProvideData(DataChannelSourceConnector)
was true immediately before the call.Calling
#provideDataAndAdvance(DataChannelSourceConnector)
in a loop must eventually lead to#canProvideData(DataChannelSourceConnector)
returningfalse
.- Specified by:
provideDataAndAdvance
in classAbstractSimDataChannelResource
-
-