Copyright | Copyright (c) 2017 David Sorokin <david.sorokin@gmail.com> |
---|---|
License | BSD3 |
Maintainer | David Sorokin <david.sorokin@gmail.com> |
Stability | experimental |
Safe Haskell | None |
Language | Haskell98 |
Tested with: GHC 8.0.1
This module defines the GPSS Facility entity.
- data Facility m a
- data FacilityPreemptMode m a = FacilityPreemptMode {}
- type FacilityPreemptTransfer m a = Transact m a -> Maybe Double -> Process m ()
- newFacility :: MonadDES m => Event m (Facility m a)
- facilityCount :: MonadDES m => Facility m a -> Event m Int
- facilityCountStats :: MonadDES m => Facility m a -> Event m (TimingStats Int)
- facilityCaptureCount :: MonadDES m => Facility m a -> Event m Int
- facilityUtilisationCount :: MonadDES m => Facility m a -> Event m Int
- facilityUtilisationCountStats :: MonadDES m => Facility m a -> Event m (TimingStats Int)
- facilityQueueCount :: MonadDES m => Facility m a -> Event m Int
- facilityQueueCountStats :: MonadDES m => Facility m a -> Event m (TimingStats Int)
- facilityTotalWaitTime :: MonadDES m => Facility m a -> Event m Double
- facilityWaitTime :: MonadDES m => Facility m a -> Event m (SamplingStats Double)
- facilityTotalHoldingTime :: MonadDES m => Facility m a -> Event m Double
- facilityHoldingTime :: MonadDES m => Facility m a -> Event m (SamplingStats Double)
- facilityInterrupted :: MonadDES m => Facility m a -> Event m Bool
- seizeFacility :: MonadDES m => Facility m a -> Transact m a -> Process m ()
- releaseFacility :: MonadDES m => Facility m a -> Transact m a -> Process m ()
- preemptFacility :: MonadDES m => Facility m a -> Transact m a -> FacilityPreemptMode m a -> Process m ()
- returnFacility :: MonadDES m => Facility m a -> Transact m a -> Process m ()
- resetFacility :: MonadDES m => Facility m a -> Event m ()
- facilityCountChanged :: MonadDES m => Facility m a -> Signal m Int
- facilityCountChanged_ :: MonadDES m => Facility m a -> Signal m ()
- facilityCaptureCountChanged :: MonadDES m => Facility m a -> Signal m Int
- facilityCaptureCountChanged_ :: MonadDES m => Facility m a -> Signal m ()
- facilityUtilisationCountChanged :: MonadDES m => Facility m a -> Signal m Int
- facilityUtilisationCountChanged_ :: MonadDES m => Facility m a -> Signal m ()
- facilityQueueCountChanged :: MonadDES m => Facility m a -> Signal m Int
- facilityQueueCountChanged_ :: MonadDES m => Facility m a -> Signal m ()
- facilityWaitTimeChanged :: MonadDES m => Facility m a -> Signal m (SamplingStats Double)
- facilityWaitTimeChanged_ :: MonadDES m => Facility m a -> Signal m ()
- facilityHoldingTimeChanged :: MonadDES m => Facility m a -> Signal m (SamplingStats Double)
- facilityHoldingTimeChanged_ :: MonadDES m => Facility m a -> Signal m ()
- facilityChanged_ :: MonadDES m => Facility m a -> Signal m ()
Facility Type
Represents a GPSS Facility entity.
data FacilityPreemptMode m a Source #
The facility preemption mode.
FacilityPreemptMode | |
|
type FacilityPreemptTransfer m a = Transact m a -> Maybe Double -> Process m () Source #
Proceed with the computation by the specified preempted transact and remaining time from the process holding computation such as the ADVANCE block.
Creating Facility
Facility Properties
facilityCount :: MonadDES m => Facility m a -> Event m Int Source #
Return the current available count of the facility.
facilityCountStats :: MonadDES m => Facility m a -> Event m (TimingStats Int) Source #
Return the statistics for the available count of the facility.
facilityCaptureCount :: MonadDES m => Facility m a -> Event m Int Source #
Return the current capture count of the facility.
facilityUtilisationCount :: MonadDES m => Facility m a -> Event m Int Source #
Return the current utilisation count of the facility.
facilityUtilisationCountStats :: MonadDES m => Facility m a -> Event m (TimingStats Int) Source #
Return the statistics for the utilisation count of the facility.
facilityQueueCount :: MonadDES m => Facility m a -> Event m Int Source #
Return the current queue length of the facility.
facilityQueueCountStats :: MonadDES m => Facility m a -> Event m (TimingStats Int) Source #
Return the statistics for the queue length of the facility.
facilityTotalWaitTime :: MonadDES m => Facility m a -> Event m Double Source #
Return the total wait time of the facility.
facilityWaitTime :: MonadDES m => Facility m a -> Event m (SamplingStats Double) Source #
Return the statistics for the wait time of the facility.
facilityTotalHoldingTime :: MonadDES m => Facility m a -> Event m Double Source #
Return the total holding time of the facility.
facilityHoldingTime :: MonadDES m => Facility m a -> Event m (SamplingStats Double) Source #
Return the statistics for the holding time of the facility.
facilityInterrupted :: MonadDES m => Facility m a -> Event m Bool Source #
Whether the facility is currently interrupted.
Seizing-Releasing and Preempting-Returning Facility
:: MonadDES m | |
=> Facility m a | the requested facility |
-> Transact m a | the transact that tries to seize the facility |
-> Process m () |
Seize the facility.
:: MonadDES m | |
=> Facility m a | the facility to release |
-> Transact m a | the active transact that tries to release the facility |
-> Process m () |
Release the facility by the active transact.
:: MonadDES m | |
=> Facility m a | the requested facility |
-> Transact m a | the transact that tries to preempt the facility |
-> FacilityPreemptMode m a | the Preempt mode |
-> Process m () |
Preempt the facility.
:: MonadDES m | |
=> Facility m a | the facility to return |
-> Transact m a | the active transact that tries to return the facility |
-> Process m () |
Return the facility by the active transact.
Statistics Reset
Signals
facilityCountChanged :: MonadDES m => Facility m a -> Signal m Int Source #
Signal triggered when the facilityCount
property changes.
facilityCountChanged_ :: MonadDES m => Facility m a -> Signal m () Source #
Signal triggered when the facilityCount
property changes.
facilityCaptureCountChanged :: MonadDES m => Facility m a -> Signal m Int Source #
Signal triggered when the facilityCaptureCount
property changes.
facilityCaptureCountChanged_ :: MonadDES m => Facility m a -> Signal m () Source #
Signal triggered when the facilityCaptureCount
property changes.
facilityUtilisationCountChanged :: MonadDES m => Facility m a -> Signal m Int Source #
Signal triggered when the facilityUtilisationCount
property changes.
facilityUtilisationCountChanged_ :: MonadDES m => Facility m a -> Signal m () Source #
Signal triggered when the facilityUtilisationCount
property changes.
facilityQueueCountChanged :: MonadDES m => Facility m a -> Signal m Int Source #
Signal triggered when the facilityQueueCount
property changes.
facilityQueueCountChanged_ :: MonadDES m => Facility m a -> Signal m () Source #
Signal triggered when the facilityQueueCount
property changes.
facilityWaitTimeChanged :: MonadDES m => Facility m a -> Signal m (SamplingStats Double) Source #
Signal triggered when the facilityTotalWaitTime
and facilityWaitTime
properties change.
facilityWaitTimeChanged_ :: MonadDES m => Facility m a -> Signal m () Source #
Signal triggered when the facilityTotalWaitTime
and facilityWaitTime
properties change.
facilityHoldingTimeChanged :: MonadDES m => Facility m a -> Signal m (SamplingStats Double) Source #
Signal triggered when the facilityTotalHoldingTime
and facilityHoldingTime
properties change.
facilityHoldingTimeChanged_ :: MonadDES m => Facility m a -> Signal m () Source #
Signal triggered when the facilityTotalHoldingTime
and facilityHoldingTime
properties change.