module Simulation.Aivika.GPSS.Results () where
import Control.Monad
import Control.Monad.Trans
import Simulation.Aivika
import qualified Simulation.Aivika.GPSS.Queue as Q
import Simulation.Aivika.GPSS.Facility
import Simulation.Aivika.GPSS.Storage
import Simulation.Aivika.GPSS.Results.Locale
queueResultSource :: ResultContainer Q.Queue
-> ResultSource
queueResultSource :: ResultContainer Queue -> ResultSource
queueResultSource ResultContainer Queue
c =
ResultObject -> ResultSource
ResultObjectSource forall a b. (a -> b) -> a -> b
$
ResultObject {
resultObjectName :: ResultName
resultObjectName = forall e. ResultContainer e -> ResultName
resultContainerName ResultContainer Queue
c,
resultObjectId :: ResultId
resultObjectId = forall e. ResultContainer e -> ResultId
resultContainerId ResultContainer Queue
c,
resultObjectTypeId :: ResultId
resultObjectTypeId = ResultId
queueId,
resultObjectSignal :: ResultSignal
resultObjectSignal = forall e. ResultContainer e -> ResultSignal
resultContainerSignal ResultContainer Queue
c,
resultObjectSummary :: ResultSource
resultObjectSummary = ResultContainer Queue -> ResultSource
queueResultSummary ResultContainer Queue
c,
resultObjectProperties :: [ResultProperty]
resultObjectProperties = [
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueNull" ResultId
queueNullId Queue -> Event Bool
Q.queueNull Queue -> Signal ()
Q.queueNullChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueContent" ResultId
queueContentId Queue -> Event Int
Q.queueContent Queue -> Signal ()
Q.queueContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueContentStats" ResultId
queueContentStatsId Queue -> Event (TimingStats Int)
Q.queueContentStats Queue -> Signal ()
Q.queueContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"enqueueCount" ResultId
enqueueCountId Queue -> Event Int
Q.enqueueCount Queue -> Signal ()
Q.enqueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"enqueueZeroEntryCount" ResultId
enqueueZeroEntryCountId Queue -> Event Int
Q.enqueueZeroEntryCount Queue -> Signal ()
Q.enqueueZeroEntryCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueWaitTime" ResultId
queueWaitTimeId Queue -> Event (SamplingStats Double)
Q.queueWaitTime Queue -> Signal ()
Q.queueWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueNonZeroEntryWaitTime" ResultId
queueNonZeroEntryWaitTimeId Queue -> Event (SamplingStats Double)
Q.queueNonZeroEntryWaitTime Queue -> Signal ()
Q.queueNonZeroEntryWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueRate" ResultId
queueRateId Queue -> Event Double
Q.queueRate Queue -> Signal ()
Q.queueRateChanged_ ] }
queueResultSummary :: ResultContainer Q.Queue
-> ResultSource
queueResultSummary :: ResultContainer Queue -> ResultSource
queueResultSummary ResultContainer Queue
c =
ResultObject -> ResultSource
ResultObjectSource forall a b. (a -> b) -> a -> b
$
ResultObject {
resultObjectName :: ResultName
resultObjectName = forall e. ResultContainer e -> ResultName
resultContainerName ResultContainer Queue
c,
resultObjectId :: ResultId
resultObjectId = forall e. ResultContainer e -> ResultId
resultContainerId ResultContainer Queue
c,
resultObjectTypeId :: ResultId
resultObjectTypeId = ResultId
queueId,
resultObjectSignal :: ResultSignal
resultObjectSignal = forall e. ResultContainer e -> ResultSignal
resultContainerSignal ResultContainer Queue
c,
resultObjectSummary :: ResultSource
resultObjectSummary = ResultContainer Queue -> ResultSource
queueResultSummary ResultContainer Queue
c,
resultObjectProperties :: [ResultProperty]
resultObjectProperties = [
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueContentStats" ResultId
queueContentStatsId Queue -> Event (TimingStats Int)
Q.queueContentStats Queue -> Signal ()
Q.queueContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"enqueueCount" ResultId
enqueueCountId Queue -> Event Int
Q.enqueueCount Queue -> Signal ()
Q.enqueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"enqueueZeroEntryCount" ResultId
enqueueZeroEntryCountId Queue -> Event Int
Q.enqueueZeroEntryCount Queue -> Signal ()
Q.enqueueZeroEntryCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueWaitTime" ResultId
queueWaitTimeId Queue -> Event (SamplingStats Double)
Q.queueWaitTime Queue -> Signal ()
Q.queueWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueNonZeroEntryWaitTime" ResultId
queueNonZeroEntryWaitTimeId Queue -> Event (SamplingStats Double)
Q.queueNonZeroEntryWaitTime Queue -> Signal ()
Q.queueNonZeroEntryWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Queue
c ResultName
"queueRate" ResultId
queueRateId Queue -> Event Double
Q.queueRate Queue -> Signal ()
Q.queueRateChanged_ ] }
facilityResultSource :: ResultContainer (Facility a)
-> ResultSource
facilityResultSource :: forall a. ResultContainer (Facility a) -> ResultSource
facilityResultSource ResultContainer (Facility a)
c =
ResultObject -> ResultSource
ResultObjectSource forall a b. (a -> b) -> a -> b
$
ResultObject {
resultObjectName :: ResultName
resultObjectName = forall e. ResultContainer e -> ResultName
resultContainerName ResultContainer (Facility a)
c,
resultObjectId :: ResultId
resultObjectId = forall e. ResultContainer e -> ResultId
resultContainerId ResultContainer (Facility a)
c,
resultObjectTypeId :: ResultId
resultObjectTypeId = ResultId
facilityId,
resultObjectSignal :: ResultSignal
resultObjectSignal = forall e. ResultContainer e -> ResultSignal
resultContainerSignal ResultContainer (Facility a)
c,
resultObjectSummary :: ResultSource
resultObjectSummary = forall a. ResultContainer (Facility a) -> ResultSource
facilityResultSummary ResultContainer (Facility a)
c,
resultObjectProperties :: [ResultProperty]
resultObjectProperties = [
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"queueCount" ResultId
facilityQueueCountId forall a. Facility a -> Event Int
facilityQueueCount forall a. Facility a -> Signal ()
facilityQueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"queueCountStats" ResultId
facilityQueueCountStatsId forall a. Facility a -> Event (TimingStats Int)
facilityQueueCountStats forall a. Facility a -> Signal ()
facilityQueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"totalWaitTime" ResultId
facilityTotalWaitTimeId forall a. Facility a -> Event Double
facilityTotalWaitTime forall a. Facility a -> Signal ()
facilityWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"waitTime" ResultId
facilityWaitTimeId forall a. Facility a -> Event (SamplingStats Double)
facilityWaitTime forall a. Facility a -> Signal ()
facilityWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"totalHoldingTime" ResultId
facilityTotalHoldingTimeId forall a. Facility a -> Event Double
facilityTotalHoldingTime forall a. Facility a -> Signal ()
facilityHoldingTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"holdingTime" ResultId
facilityHoldingTimeId forall a. Facility a -> Event (SamplingStats Double)
facilityHoldingTime forall a. Facility a -> Signal ()
facilityHoldingTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> Event b) -> ResultProperty
resultContainerIntegProperty ResultContainer (Facility a)
c ResultName
"interrupted" ResultId
facilityInterruptedId forall a. Facility a -> Event Bool
facilityInterrupted,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"count" ResultId
facilityCountId forall a. Facility a -> Event Int
facilityCount forall a. Facility a -> Signal ()
facilityCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"countStats" ResultId
facilityCountStatsId forall a. Facility a -> Event (TimingStats Int)
facilityCountStats forall a. Facility a -> Signal ()
facilityCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"captureCount" ResultId
facilityCaptureCountId forall a. Facility a -> Event Int
facilityCaptureCount forall a. Facility a -> Signal ()
facilityCaptureCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"utilisationCount" ResultId
facilityUtilisationCountId forall a. Facility a -> Event Int
facilityUtilisationCount forall a. Facility a -> Signal ()
facilityUtilisationCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"utilisationCountStats" ResultId
facilityUtilisationCountStatsId forall a. Facility a -> Event (TimingStats Int)
facilityUtilisationCountStats forall a. Facility a -> Signal ()
facilityUtilisationCountChanged_ ] }
facilityResultSummary :: ResultContainer (Facility a)
-> ResultSource
facilityResultSummary :: forall a. ResultContainer (Facility a) -> ResultSource
facilityResultSummary ResultContainer (Facility a)
c =
ResultObject -> ResultSource
ResultObjectSource forall a b. (a -> b) -> a -> b
$
ResultObject {
resultObjectName :: ResultName
resultObjectName = forall e. ResultContainer e -> ResultName
resultContainerName ResultContainer (Facility a)
c,
resultObjectId :: ResultId
resultObjectId = forall e. ResultContainer e -> ResultId
resultContainerId ResultContainer (Facility a)
c,
resultObjectTypeId :: ResultId
resultObjectTypeId = ResultId
facilityId,
resultObjectSignal :: ResultSignal
resultObjectSignal = forall e. ResultContainer e -> ResultSignal
resultContainerSignal ResultContainer (Facility a)
c,
resultObjectSummary :: ResultSource
resultObjectSummary = forall a. ResultContainer (Facility a) -> ResultSource
facilityResultSummary ResultContainer (Facility a)
c,
resultObjectProperties :: [ResultProperty]
resultObjectProperties = [
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"queueCountStats" ResultId
facilityQueueCountStatsId forall a. Facility a -> Event (TimingStats Int)
facilityQueueCountStats forall a. Facility a -> Signal ()
facilityQueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"waitTime" ResultId
facilityWaitTimeId forall a. Facility a -> Event (SamplingStats Double)
facilityWaitTime forall a. Facility a -> Signal ()
facilityWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"holdingTime" ResultId
facilityHoldingTimeId forall a. Facility a -> Event (SamplingStats Double)
facilityHoldingTime forall a. Facility a -> Signal ()
facilityHoldingTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"countStats" ResultId
facilityCountStatsId forall a. Facility a -> Event (TimingStats Int)
facilityCountStats forall a. Facility a -> Signal ()
facilityCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"captureCount" ResultId
facilityCaptureCountId forall a. Facility a -> Event Int
facilityCaptureCount forall a. Facility a -> Signal ()
facilityCaptureCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer (Facility a)
c ResultName
"utilisationCountStats" ResultId
facilityUtilisationCountStatsId forall a. Facility a -> Event (TimingStats Int)
facilityUtilisationCountStats forall a. Facility a -> Signal ()
facilityUtilisationCountChanged_ ] }
storageResultSource :: ResultContainer Storage
-> ResultSource
storageResultSource :: ResultContainer Storage -> ResultSource
storageResultSource ResultContainer Storage
c =
ResultObject -> ResultSource
ResultObjectSource forall a b. (a -> b) -> a -> b
$
ResultObject {
resultObjectName :: ResultName
resultObjectName = forall e. ResultContainer e -> ResultName
resultContainerName ResultContainer Storage
c,
resultObjectId :: ResultId
resultObjectId = forall e. ResultContainer e -> ResultId
resultContainerId ResultContainer Storage
c,
resultObjectTypeId :: ResultId
resultObjectTypeId = ResultId
storageId,
resultObjectSignal :: ResultSignal
resultObjectSignal = forall e. ResultContainer e -> ResultSignal
resultContainerSignal ResultContainer Storage
c,
resultObjectSummary :: ResultSource
resultObjectSummary = ResultContainer Storage -> ResultSource
storageResultSummary ResultContainer Storage
c,
resultObjectProperties :: [ResultProperty]
resultObjectProperties = [
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> b) -> ResultProperty
resultContainerConstProperty ResultContainer Storage
c ResultName
"capacity" ResultId
storageCapacityId Storage -> Int
storageCapacity,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> Event b) -> ResultProperty
resultContainerIntegProperty ResultContainer Storage
c ResultName
"empty" ResultId
storageEmptyId Storage -> Event Bool
storageEmpty,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> Event b) -> ResultProperty
resultContainerIntegProperty ResultContainer Storage
c ResultName
"full" ResultId
storageFullId Storage -> Event Bool
storageFull,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"queueCount" ResultId
storageQueueCountId Storage -> Event Int
storageQueueCount Storage -> Signal ()
storageQueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"queueCountStats" ResultId
storageQueueCountStatsId Storage -> Event (TimingStats Int)
storageQueueCountStats Storage -> Signal ()
storageQueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"totalWaitTime" ResultId
storageTotalWaitTimeId Storage -> Event Double
storageTotalWaitTime Storage -> Signal ()
storageWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"waitTime" ResultId
storageWaitTimeId Storage -> Event (SamplingStats Double)
storageWaitTime Storage -> Signal ()
storageWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> Event b) -> ResultProperty
resultContainerIntegProperty ResultContainer Storage
c ResultName
"averageHoldingTime" ResultId
storageAverageHoldingTimeId Storage -> Event Double
storageAverageHoldingTime,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"content" ResultId
storageContentId Storage -> Event Int
storageContent Storage -> Signal ()
storageContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"contentStats" ResultId
storageContentStatsId Storage -> Event (TimingStats Int)
storageContentStats Storage -> Signal ()
storageContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"useCount" ResultId
storageUseCountId Storage -> Event Int
storageUseCount Storage -> Signal ()
storageUseCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"usedContent" ResultId
storageUsedContentId Storage -> Event Int
storageUsedContent Storage -> Signal ()
storageUsedContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"utilisationCount" ResultId
storageUtilisationCountId Storage -> Event Int
storageUtilisationCount Storage -> Signal ()
storageUtilisationCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"utilisationCountStats" ResultId
storageUtilisationCountStatsId Storage -> Event (TimingStats Int)
storageUtilisationCountStats Storage -> Signal ()
storageUtilisationCountChanged_ ] }
storageResultSummary :: ResultContainer Storage
-> ResultSource
storageResultSummary :: ResultContainer Storage -> ResultSource
storageResultSummary ResultContainer Storage
c =
ResultObject -> ResultSource
ResultObjectSource forall a b. (a -> b) -> a -> b
$
ResultObject {
resultObjectName :: ResultName
resultObjectName = forall e. ResultContainer e -> ResultName
resultContainerName ResultContainer Storage
c,
resultObjectId :: ResultId
resultObjectId = forall e. ResultContainer e -> ResultId
resultContainerId ResultContainer Storage
c,
resultObjectTypeId :: ResultId
resultObjectTypeId = ResultId
storageId,
resultObjectSignal :: ResultSignal
resultObjectSignal = forall e. ResultContainer e -> ResultSignal
resultContainerSignal ResultContainer Storage
c,
resultObjectSummary :: ResultSource
resultObjectSummary = ResultContainer Storage -> ResultSource
storageResultSummary ResultContainer Storage
c,
resultObjectProperties :: [ResultProperty]
resultObjectProperties = [
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> b) -> ResultProperty
resultContainerConstProperty ResultContainer Storage
c ResultName
"capacity" ResultId
storageCapacityId Storage -> Int
storageCapacity,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"queueCountStats" ResultId
storageQueueCountStatsId Storage -> Event (TimingStats Int)
storageQueueCountStats Storage -> Signal ()
storageQueueCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"waitTime" ResultId
storageWaitTimeId Storage -> Event (SamplingStats Double)
storageWaitTime Storage -> Signal ()
storageWaitTimeChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName -> ResultId -> (a -> Event b) -> ResultProperty
resultContainerIntegProperty ResultContainer Storage
c ResultName
"averageHoldingTime" ResultId
storageAverageHoldingTimeId Storage -> Event Double
storageAverageHoldingTime,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"contentStats" ResultId
storageContentStatsId Storage -> Event (TimingStats Int)
storageContentStats Storage -> Signal ()
storageContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"useCount" ResultId
storageUseCountId Storage -> Event Int
storageUseCount Storage -> Signal ()
storageUseCountChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"usedContent" ResultId
storageUsedContentId Storage -> Event Int
storageUsedContent Storage -> Signal ()
storageUsedContentChanged_,
forall b a.
ResultItemable (ResultValue b) =>
ResultContainer a
-> ResultName
-> ResultId
-> (a -> Event b)
-> (a -> Signal ())
-> ResultProperty
resultContainerProperty ResultContainer Storage
c ResultName
"utilisationCountStats" ResultId
storageUtilisationCountStatsId Storage -> Event (TimingStats Int)
storageUtilisationCountStats Storage -> Signal ()
storageUtilisationCountChanged_ ] }
instance ResultProvider Q.Queue where
resultSource' :: ResultName
-> [ResultName] -> ResultId -> [ResultId] -> Queue -> ResultSource
resultSource' ResultName
name [ResultName]
names ResultId
i [ResultId]
is Queue
m =
ResultContainer Queue -> ResultSource
queueResultSource forall a b. (a -> b) -> a -> b
$ forall e.
ResultName
-> [ResultName]
-> ResultId
-> [ResultId]
-> e
-> ResultSignal
-> ResultContainer e
ResultContainer ResultName
name [ResultName]
names ResultId
i [ResultId]
is Queue
m (Signal () -> ResultSignal
ResultSignal forall a b. (a -> b) -> a -> b
$ Queue -> Signal ()
Q.queueChanged_ Queue
m)
instance ResultProvider (Facility a) where
resultSource' :: ResultName
-> [ResultName]
-> ResultId
-> [ResultId]
-> Facility a
-> ResultSource
resultSource' ResultName
name [ResultName]
names ResultId
i [ResultId]
is Facility a
m =
forall a. ResultContainer (Facility a) -> ResultSource
facilityResultSource forall a b. (a -> b) -> a -> b
$ forall e.
ResultName
-> [ResultName]
-> ResultId
-> [ResultId]
-> e
-> ResultSignal
-> ResultContainer e
ResultContainer ResultName
name [ResultName]
names ResultId
i [ResultId]
is Facility a
m (Signal () -> ResultSignal
ResultSignal forall a b. (a -> b) -> a -> b
$ forall a. Facility a -> Signal ()
facilityChanged_ Facility a
m)
instance ResultProvider Storage where
resultSource' :: ResultName
-> [ResultName]
-> ResultId
-> [ResultId]
-> Storage
-> ResultSource
resultSource' ResultName
name [ResultName]
names ResultId
i [ResultId]
is Storage
m =
ResultContainer Storage -> ResultSource
storageResultSource forall a b. (a -> b) -> a -> b
$ forall e.
ResultName
-> [ResultName]
-> ResultId
-> [ResultId]
-> e
-> ResultSignal
-> ResultContainer e
ResultContainer ResultName
name [ResultName]
names ResultId
i [ResultId]
is Storage
m (Signal () -> ResultSignal
ResultSignal forall a b. (a -> b) -> a -> b
$ Storage -> Signal ()
storageChanged_ Storage
m)