Class D6_JoiningToGroup
- java.lang.Object
-
- org.palladiosimulator.indirections.scheduler.AbstractSimDataChannelResource
-
- org.palladiosimulator.indirections.scheduler.implementations.D6_JoiningToGroup
-
- All Implemented Interfaces:
IDataChannelResource
public class D6_JoiningToGroup extends AbstractSimDataChannelResource
-
-
Field Summary
Fields Modifier and Type Field Description static String
GRACE_PERIOD_PARAMETER_NAME
static String
MEDIAN_AVERAGE_ROLE_ID_PARAMETER_NAME
static String
MEDIAN_WINDOW_PER_HOUSE_ROLE_ID_PARAMETER_NAME
protected Map<DataSinkRole,Map<Emitters.Window,List<IndirectionDate>>>
roleToWindowToDates
-
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 D6_JoiningToGroup(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
-
MEDIAN_WINDOW_PER_HOUSE_ROLE_ID_PARAMETER_NAME
public static final String MEDIAN_WINDOW_PER_HOUSE_ROLE_ID_PARAMETER_NAME
- See Also:
- Constant Field Values
-
MEDIAN_AVERAGE_ROLE_ID_PARAMETER_NAME
public static final String MEDIAN_AVERAGE_ROLE_ID_PARAMETER_NAME
- See Also:
- Constant Field Values
-
roleToWindowToDates
protected final Map<DataSinkRole,Map<Emitters.Window,List<IndirectionDate>>> roleToWindowToDates
-
-
Constructor Detail
-
D6_JoiningToGroup
public D6_JoiningToGroup(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
-
-