module Simulation.Aivika.GPSS.Results.Transform where
import Control.Category
import Simulation.Aivika
import qualified Simulation.Aivika.Results.Transform as T
import qualified Simulation.Aivika.GPSS.Queue as Q
import qualified Simulation.Aivika.GPSS.Facility as F
import qualified Simulation.Aivika.GPSS.Storage as S
import Simulation.Aivika.GPSS.Results
import Simulation.Aivika.GPSS.Results.Locale
newtype Queue = Queue ResultTransform
instance T.ResultTransformer Queue where
tr (Queue a) = a
queueNull :: Queue -> ResultTransform
queueNull (Queue a) =
a >>> resultById queueNullId
queueContent :: Queue -> ResultTransform
queueContent (Queue a) =
a >>> resultById queueContentId
queueContentStats :: Queue -> T.TimingStats
queueContentStats (Queue a) =
T.TimingStats (a >>> resultById queueContentStatsId)
enqueueCount :: Queue -> ResultTransform
enqueueCount (Queue a) =
a >>> resultById enqueueCountId
enqueueZeroEntryCount :: Queue -> ResultTransform
enqueueZeroEntryCount (Queue a) =
a >>> resultById enqueueZeroEntryCountId
queueWaitTime :: Queue -> T.SamplingStats
queueWaitTime (Queue a) =
T.SamplingStats (a >>> resultById queueWaitTimeId)
queueNonZeroEntryWaitTime :: Queue -> T.SamplingStats
queueNonZeroEntryWaitTime (Queue a) =
T.SamplingStats (a >>> resultById queueNonZeroEntryWaitTimeId)
queueRate :: Queue -> ResultTransform
queueRate (Queue a) =
a >>> resultById queueRateId
newtype Facility = Facility ResultTransform
instance T.ResultTransformer Facility where
tr (Facility a) = a
facilityCount :: Facility -> ResultTransform
facilityCount (Facility a) =
a >>> resultById facilityCountId
facilityCountStats :: Facility -> T.TimingStats
facilityCountStats (Facility a) =
T.TimingStats (a >>> resultById facilityCountStatsId)
facilityCaptureCount :: Facility -> ResultTransform
facilityCaptureCount (Facility a) =
a >>> resultById facilityCaptureCountId
facilityUtilisationCount :: Facility -> ResultTransform
facilityUtilisationCount (Facility a) =
a >>> resultById facilityUtilisationCountId
facilityUtilisationCountStats :: Facility -> T.TimingStats
facilityUtilisationCountStats (Facility a) =
T.TimingStats (a >>> resultById facilityUtilisationCountStatsId)
facilityQueueCount :: Facility -> ResultTransform
facilityQueueCount (Facility a) =
a >>> resultById facilityQueueCountId
facilityQueueCountStats :: Facility -> T.TimingStats
facilityQueueCountStats (Facility a) =
T.TimingStats (a >>> resultById facilityQueueCountStatsId)
facilityTotalWaitTime :: Facility -> ResultTransform
facilityTotalWaitTime (Facility a) =
a >>> resultById facilityTotalWaitTimeId
facilityWaitTime :: Facility -> T.SamplingStats
facilityWaitTime (Facility a) =
T.SamplingStats (a >>> resultById facilityWaitTimeId)
facilityTotalHoldingTime :: Facility -> ResultTransform
facilityTotalHoldingTime (Facility a) =
a >>> resultById facilityTotalHoldingTimeId
facilityHoldingTime :: Facility -> T.SamplingStats
facilityHoldingTime (Facility a) =
T.SamplingStats (a >>> resultById facilityHoldingTimeId)
facilityInterrupted :: Facility -> ResultTransform
facilityInterrupted (Facility a) =
a >>> resultById facilityInterruptedId
newtype Storage = Storage ResultTransform
instance T.ResultTransformer Storage where
tr (Storage a) = a
storageCapacity :: Storage -> ResultTransform
storageCapacity (Storage a) =
a >>> resultById storageCapacityId
storageEmpty :: Storage -> ResultTransform
storageEmpty (Storage a) =
a >>> resultById storageEmptyId
storageFull :: Storage -> ResultTransform
storageFull (Storage a) =
a >>> resultById storageFullId
storageContent :: Storage -> ResultTransform
storageContent (Storage a) =
a >>> resultById storageContentId
storageContentStats :: Storage -> T.TimingStats
storageContentStats (Storage a) =
T.TimingStats (a >>> resultById storageContentStatsId)
storageUseCount :: Storage -> ResultTransform
storageUseCount (Storage a) =
a >>> resultById storageUseCountId
storageUsedContent :: Storage -> ResultTransform
storageUsedContent (Storage a) =
a >>> resultById storageUsedContentId
storageUtilisationCount :: Storage -> ResultTransform
storageUtilisationCount (Storage a) =
a >>> resultById storageUtilisationCountId
storageUtilisationCountStats :: Storage -> T.TimingStats
storageUtilisationCountStats (Storage a) =
T.TimingStats (a >>> resultById storageUtilisationCountStatsId)
storageQueueCount :: Storage -> ResultTransform
storageQueueCount (Storage a) =
a >>> resultById storageQueueCountId
storageQueueCountStats :: Storage -> T.TimingStats
storageQueueCountStats (Storage a) =
T.TimingStats (a >>> resultById storageQueueCountStatsId)
storageTotalWaitTime :: Storage -> ResultTransform
storageTotalWaitTime (Storage a) =
a >>> resultById storageTotalWaitTimeId
storageWaitTime :: Storage -> T.SamplingStats
storageWaitTime (Storage a) =
T.SamplingStats (a >>> resultById storageWaitTimeId)
storageAverageHoldingTime :: Storage -> ResultTransform
storageAverageHoldingTime (Storage a) =
a >>> resultById storageAverageHoldingTimeId