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