Class AnyToAllPushingDataChannelWithRDs
- java.lang.Object
-
- org.palladiosimulator.indirections.scheduler.AbstractSimDataChannelResource
-
- org.palladiosimulator.indirections.scheduler.implementations.AnyToAllPushingDataChannelWithRDs
-
- All Implemented Interfaces:
IDataChannelResource
public class AnyToAllPushingDataChannelWithRDs extends AbstractSimDataChannelResource
-
-
Field Summary
Fields Modifier and Type Field Description static String
CPU_ID
protected Map<DataSourceRole,Queue<IndirectionDate>>
data
-
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 AnyToAllPushingDataChannelWithRDs(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
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
-
CPU_ID
public static final String CPU_ID
- See Also:
- Constant Field Values
-
data
protected final Map<DataSourceRole,Queue<IndirectionDate>> data
-
-
Constructor Detail
-
AnyToAllPushingDataChannelWithRDs
public AnyToAllPushingDataChannelWithRDs(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
-
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
-
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
-
-