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>datastatic StringGRACE_PERIOD_PARAMETER_NAMEprotected 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 voidacceptData(DataSinkRole role, IndirectionDate date)protected booleancanAcceptData(DataSinkRole role)protected booleancanProvideData(DataSourceRole role)protected voidemit(Emitters.Window window)protected voidhandleCannotProceedToGet(ProcessWaitingToGet process)protected voidhandleCannotProceedToPut(ProcessWaitingToPut process)protected voidhandleNewWatermarkedTime(double oldWatermarkTime, double watermarkTime)protected booleanisPushingRole(DataSourceRole role)protected voidprovideDataAndAdvance(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:
acceptDatain classAbstractSimDataChannelResource
-
emit
protected void emit(Emitters.Window window)
-
canAcceptData
protected boolean canAcceptData(DataSinkRole role)
- Specified by:
canAcceptDatain classAbstractSimDataChannelResource
-
canProvideData
protected boolean canProvideData(DataSourceRole role)
- Specified by:
canProvideDatain classAbstractSimDataChannelResource
-
isPushingRole
protected boolean isPushingRole(DataSourceRole role)
- Specified by:
isPushingRolein classAbstractSimDataChannelResource
-
handleCannotProceedToGet
protected void handleCannotProceedToGet(ProcessWaitingToGet process)
- Specified by:
handleCannotProceedToGetin classAbstractSimDataChannelResource
-
handleCannotProceedToPut
protected void handleCannotProceedToPut(ProcessWaitingToPut process)
- Specified by:
handleCannotProceedToPutin classAbstractSimDataChannelResource
-
handleNewWatermarkedTime
protected void handleNewWatermarkedTime(double oldWatermarkTime, double watermarkTime)- Specified by:
handleNewWatermarkedTimein classAbstractSimDataChannelResource
-
provideDataAndAdvance
protected void provideDataAndAdvance(DataSourceRole role, Consumer<IndirectionDate> continuation)
Description copied from class:AbstractSimDataChannelResourceIt 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:
provideDataAndAdvancein classAbstractSimDataChannelResource
-
-