{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE TemplateHaskell #-}
module Simplex.Messaging.Agent.Stats
( AgentSMPServerStats (..),
AgentSMPServerStatsData (..),
OptionalInt (..),
AgentXFTPServerStats (..),
AgentXFTPServerStatsData (..),
AgentNtfServerStats (..),
AgentNtfServerStatsData (..),
AgentPersistedServerStats (..),
OptionalMap (..),
newAgentSMPServerStats,
newAgentSMPServerStatsData,
newAgentSMPServerStats',
getAgentSMPServerStats,
addSMPStatsData,
newAgentXFTPServerStats,
newAgentXFTPServerStatsData,
newAgentXFTPServerStats',
getAgentXFTPServerStats,
addXFTPStatsData,
newAgentNtfServerStats,
newAgentNtfServerStatsData,
newAgentNtfServerStats',
getAgentNtfServerStats,
addNtfStatsData,
) where
import Data.Aeson (FromJSON (..), FromJSONKey, ToJSON (..))
import qualified Data.Aeson.TH as J
import Data.Int (Int64)
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as M
import Simplex.Messaging.Agent.Protocol (UserId)
import Simplex.Messaging.Agent.Store.DB (FromField (..), ToField (..), fromTextField_)
import Simplex.Messaging.Parsers (defaultJSON)
import Simplex.Messaging.Protocol (NtfServer, SMPServer, XFTPServer)
import Simplex.Messaging.Util (decodeJSON, encodeJSON)
import UnliftIO.STM
data AgentSMPServerStats = AgentSMPServerStats
{ AgentSMPServerStats -> TVar Int
sentDirect :: TVar Int,
AgentSMPServerStats -> TVar Int
sentViaProxy :: TVar Int,
AgentSMPServerStats -> TVar Int
sentProxied :: TVar Int,
AgentSMPServerStats -> TVar Int
sentDirectAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
sentViaProxyAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
sentProxiedAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
sentAuthErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
sentQuotaErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
sentExpiredErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
sentOtherErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
recvMsgs :: TVar Int,
AgentSMPServerStats -> TVar Int
recvDuplicates :: TVar Int,
AgentSMPServerStats -> TVar Int
recvCryptoErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
recvErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
ackMsgs :: TVar Int,
AgentSMPServerStats -> TVar Int
ackAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
ackNoMsgErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
ackOtherErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
connCreated :: TVar Int,
AgentSMPServerStats -> TVar Int
connSecured :: TVar Int,
AgentSMPServerStats -> TVar Int
connCompleted :: TVar Int,
AgentSMPServerStats -> TVar Int
connDeleted :: TVar Int,
AgentSMPServerStats -> TVar Int
connDelAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
connDelErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
connSubscribed :: TVar Int,
AgentSMPServerStats -> TVar Int
connSubAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
connSubIgnored :: TVar Int,
AgentSMPServerStats -> TVar Int
connSubErrs :: TVar Int,
AgentSMPServerStats -> TVar Int
ntfKey :: TVar Int,
AgentSMPServerStats -> TVar Int
ntfKeyAttempts :: TVar Int,
AgentSMPServerStats -> TVar Int
ntfKeyDeleted :: TVar Int,
AgentSMPServerStats -> TVar Int
ntfKeyDeleteAttempts :: TVar Int
}
data AgentSMPServerStatsData = AgentSMPServerStatsData
{ AgentSMPServerStatsData -> Int
_sentDirect :: Int,
AgentSMPServerStatsData -> Int
_sentViaProxy :: Int,
AgentSMPServerStatsData -> Int
_sentProxied :: Int,
AgentSMPServerStatsData -> Int
_sentDirectAttempts :: Int,
AgentSMPServerStatsData -> Int
_sentViaProxyAttempts :: Int,
AgentSMPServerStatsData -> Int
_sentProxiedAttempts :: Int,
AgentSMPServerStatsData -> Int
_sentAuthErrs :: Int,
AgentSMPServerStatsData -> Int
_sentQuotaErrs :: Int,
AgentSMPServerStatsData -> Int
_sentExpiredErrs :: Int,
AgentSMPServerStatsData -> Int
_sentOtherErrs :: Int,
AgentSMPServerStatsData -> Int
_recvMsgs :: Int,
AgentSMPServerStatsData -> Int
_recvDuplicates :: Int,
AgentSMPServerStatsData -> Int
_recvCryptoErrs :: Int,
AgentSMPServerStatsData -> Int
_recvErrs :: Int,
AgentSMPServerStatsData -> Int
_ackMsgs :: Int,
AgentSMPServerStatsData -> Int
_ackAttempts :: Int,
AgentSMPServerStatsData -> Int
_ackNoMsgErrs :: Int,
AgentSMPServerStatsData -> Int
_ackOtherErrs :: Int,
AgentSMPServerStatsData -> Int
_connCreated :: Int,
AgentSMPServerStatsData -> Int
_connSecured :: Int,
AgentSMPServerStatsData -> Int
_connCompleted :: Int,
AgentSMPServerStatsData -> Int
_connDeleted :: Int,
AgentSMPServerStatsData -> Int
_connDelAttempts :: Int,
AgentSMPServerStatsData -> Int
_connDelErrs :: Int,
AgentSMPServerStatsData -> Int
_connSubscribed :: Int,
AgentSMPServerStatsData -> Int
_connSubAttempts :: Int,
AgentSMPServerStatsData -> Int
_connSubIgnored :: Int,
AgentSMPServerStatsData -> Int
_connSubErrs :: Int,
AgentSMPServerStatsData -> OptionalInt
_ntfKey :: OptionalInt,
AgentSMPServerStatsData -> OptionalInt
_ntfKeyAttempts :: OptionalInt,
AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleted :: OptionalInt,
AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleteAttempts :: OptionalInt
}
deriving (Int -> AgentSMPServerStatsData -> ShowS
[AgentSMPServerStatsData] -> ShowS
AgentSMPServerStatsData -> String
(Int -> AgentSMPServerStatsData -> ShowS)
-> (AgentSMPServerStatsData -> String)
-> ([AgentSMPServerStatsData] -> ShowS)
-> Show AgentSMPServerStatsData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AgentSMPServerStatsData -> ShowS
showsPrec :: Int -> AgentSMPServerStatsData -> ShowS
$cshow :: AgentSMPServerStatsData -> String
show :: AgentSMPServerStatsData -> String
$cshowList :: [AgentSMPServerStatsData] -> ShowS
showList :: [AgentSMPServerStatsData] -> ShowS
Show)
newtype OptionalInt = OInt {OptionalInt -> Int
toInt :: Int}
deriving (Integer -> OptionalInt
OptionalInt -> OptionalInt
OptionalInt -> OptionalInt -> OptionalInt
(OptionalInt -> OptionalInt -> OptionalInt)
-> (OptionalInt -> OptionalInt -> OptionalInt)
-> (OptionalInt -> OptionalInt -> OptionalInt)
-> (OptionalInt -> OptionalInt)
-> (OptionalInt -> OptionalInt)
-> (OptionalInt -> OptionalInt)
-> (Integer -> OptionalInt)
-> Num OptionalInt
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: OptionalInt -> OptionalInt -> OptionalInt
+ :: OptionalInt -> OptionalInt -> OptionalInt
$c- :: OptionalInt -> OptionalInt -> OptionalInt
- :: OptionalInt -> OptionalInt -> OptionalInt
$c* :: OptionalInt -> OptionalInt -> OptionalInt
* :: OptionalInt -> OptionalInt -> OptionalInt
$cnegate :: OptionalInt -> OptionalInt
negate :: OptionalInt -> OptionalInt
$cabs :: OptionalInt -> OptionalInt
abs :: OptionalInt -> OptionalInt
$csignum :: OptionalInt -> OptionalInt
signum :: OptionalInt -> OptionalInt
$cfromInteger :: Integer -> OptionalInt
fromInteger :: Integer -> OptionalInt
Num, Int -> OptionalInt -> ShowS
[OptionalInt] -> ShowS
OptionalInt -> String
(Int -> OptionalInt -> ShowS)
-> (OptionalInt -> String)
-> ([OptionalInt] -> ShowS)
-> Show OptionalInt
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OptionalInt -> ShowS
showsPrec :: Int -> OptionalInt -> ShowS
$cshow :: OptionalInt -> String
show :: OptionalInt -> String
$cshowList :: [OptionalInt] -> ShowS
showList :: [OptionalInt] -> ShowS
Show, [OptionalInt] -> Encoding
[OptionalInt] -> Value
OptionalInt -> Bool
OptionalInt -> Encoding
OptionalInt -> Value
(OptionalInt -> Value)
-> (OptionalInt -> Encoding)
-> ([OptionalInt] -> Value)
-> ([OptionalInt] -> Encoding)
-> (OptionalInt -> Bool)
-> ToJSON OptionalInt
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: OptionalInt -> Value
toJSON :: OptionalInt -> Value
$ctoEncoding :: OptionalInt -> Encoding
toEncoding :: OptionalInt -> Encoding
$ctoJSONList :: [OptionalInt] -> Value
toJSONList :: [OptionalInt] -> Value
$ctoEncodingList :: [OptionalInt] -> Encoding
toEncodingList :: [OptionalInt] -> Encoding
$comitField :: OptionalInt -> Bool
omitField :: OptionalInt -> Bool
ToJSON)
newAgentSMPServerStats :: STM AgentSMPServerStats
newAgentSMPServerStats :: STM AgentSMPServerStats
newAgentSMPServerStats = do
TVar Int
sentDirect <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentViaProxy <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentProxied <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentDirectAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentViaProxyAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentProxiedAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentAuthErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentQuotaErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentExpiredErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
sentOtherErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
recvMsgs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
recvDuplicates <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
recvCryptoErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
recvErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ackMsgs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ackAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ackNoMsgErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ackOtherErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connCreated <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connSecured <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connCompleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connDeleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connDelAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connDelErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connSubscribed <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connSubAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connSubIgnored <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
connSubErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfKey <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfKeyAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfKeyDeleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfKeyDeleteAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
AgentSMPServerStats -> STM AgentSMPServerStats
forall a. a -> STM a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentSMPServerStats
{ TVar Int
$sel:sentDirect:AgentSMPServerStats :: TVar Int
sentDirect :: TVar Int
sentDirect,
TVar Int
$sel:sentViaProxy:AgentSMPServerStats :: TVar Int
sentViaProxy :: TVar Int
sentViaProxy,
TVar Int
$sel:sentProxied:AgentSMPServerStats :: TVar Int
sentProxied :: TVar Int
sentProxied,
TVar Int
$sel:sentDirectAttempts:AgentSMPServerStats :: TVar Int
sentDirectAttempts :: TVar Int
sentDirectAttempts,
TVar Int
$sel:sentViaProxyAttempts:AgentSMPServerStats :: TVar Int
sentViaProxyAttempts :: TVar Int
sentViaProxyAttempts,
TVar Int
$sel:sentProxiedAttempts:AgentSMPServerStats :: TVar Int
sentProxiedAttempts :: TVar Int
sentProxiedAttempts,
TVar Int
$sel:sentAuthErrs:AgentSMPServerStats :: TVar Int
sentAuthErrs :: TVar Int
sentAuthErrs,
TVar Int
$sel:sentQuotaErrs:AgentSMPServerStats :: TVar Int
sentQuotaErrs :: TVar Int
sentQuotaErrs,
TVar Int
$sel:sentExpiredErrs:AgentSMPServerStats :: TVar Int
sentExpiredErrs :: TVar Int
sentExpiredErrs,
TVar Int
$sel:sentOtherErrs:AgentSMPServerStats :: TVar Int
sentOtherErrs :: TVar Int
sentOtherErrs,
TVar Int
$sel:recvMsgs:AgentSMPServerStats :: TVar Int
recvMsgs :: TVar Int
recvMsgs,
TVar Int
$sel:recvDuplicates:AgentSMPServerStats :: TVar Int
recvDuplicates :: TVar Int
recvDuplicates,
TVar Int
$sel:recvCryptoErrs:AgentSMPServerStats :: TVar Int
recvCryptoErrs :: TVar Int
recvCryptoErrs,
TVar Int
$sel:recvErrs:AgentSMPServerStats :: TVar Int
recvErrs :: TVar Int
recvErrs,
TVar Int
$sel:ackMsgs:AgentSMPServerStats :: TVar Int
ackMsgs :: TVar Int
ackMsgs,
TVar Int
$sel:ackAttempts:AgentSMPServerStats :: TVar Int
ackAttempts :: TVar Int
ackAttempts,
TVar Int
$sel:ackNoMsgErrs:AgentSMPServerStats :: TVar Int
ackNoMsgErrs :: TVar Int
ackNoMsgErrs,
TVar Int
$sel:ackOtherErrs:AgentSMPServerStats :: TVar Int
ackOtherErrs :: TVar Int
ackOtherErrs,
TVar Int
$sel:connCreated:AgentSMPServerStats :: TVar Int
connCreated :: TVar Int
connCreated,
TVar Int
$sel:connSecured:AgentSMPServerStats :: TVar Int
connSecured :: TVar Int
connSecured,
TVar Int
$sel:connCompleted:AgentSMPServerStats :: TVar Int
connCompleted :: TVar Int
connCompleted,
TVar Int
$sel:connDeleted:AgentSMPServerStats :: TVar Int
connDeleted :: TVar Int
connDeleted,
TVar Int
$sel:connDelAttempts:AgentSMPServerStats :: TVar Int
connDelAttempts :: TVar Int
connDelAttempts,
TVar Int
$sel:connDelErrs:AgentSMPServerStats :: TVar Int
connDelErrs :: TVar Int
connDelErrs,
TVar Int
$sel:connSubscribed:AgentSMPServerStats :: TVar Int
connSubscribed :: TVar Int
connSubscribed,
TVar Int
$sel:connSubAttempts:AgentSMPServerStats :: TVar Int
connSubAttempts :: TVar Int
connSubAttempts,
TVar Int
$sel:connSubIgnored:AgentSMPServerStats :: TVar Int
connSubIgnored :: TVar Int
connSubIgnored,
TVar Int
$sel:connSubErrs:AgentSMPServerStats :: TVar Int
connSubErrs :: TVar Int
connSubErrs,
TVar Int
$sel:ntfKey:AgentSMPServerStats :: TVar Int
ntfKey :: TVar Int
ntfKey,
TVar Int
$sel:ntfKeyAttempts:AgentSMPServerStats :: TVar Int
ntfKeyAttempts :: TVar Int
ntfKeyAttempts,
TVar Int
$sel:ntfKeyDeleted:AgentSMPServerStats :: TVar Int
ntfKeyDeleted :: TVar Int
ntfKeyDeleted,
TVar Int
$sel:ntfKeyDeleteAttempts:AgentSMPServerStats :: TVar Int
ntfKeyDeleteAttempts :: TVar Int
ntfKeyDeleteAttempts
}
newAgentSMPServerStatsData :: AgentSMPServerStatsData
newAgentSMPServerStatsData :: AgentSMPServerStatsData
newAgentSMPServerStatsData =
AgentSMPServerStatsData
{ $sel:_sentDirect:AgentSMPServerStatsData :: Int
_sentDirect = Int
0,
$sel:_sentViaProxy:AgentSMPServerStatsData :: Int
_sentViaProxy = Int
0,
$sel:_sentProxied:AgentSMPServerStatsData :: Int
_sentProxied = Int
0,
$sel:_sentDirectAttempts:AgentSMPServerStatsData :: Int
_sentDirectAttempts = Int
0,
$sel:_sentViaProxyAttempts:AgentSMPServerStatsData :: Int
_sentViaProxyAttempts = Int
0,
$sel:_sentProxiedAttempts:AgentSMPServerStatsData :: Int
_sentProxiedAttempts = Int
0,
$sel:_sentAuthErrs:AgentSMPServerStatsData :: Int
_sentAuthErrs = Int
0,
$sel:_sentQuotaErrs:AgentSMPServerStatsData :: Int
_sentQuotaErrs = Int
0,
$sel:_sentExpiredErrs:AgentSMPServerStatsData :: Int
_sentExpiredErrs = Int
0,
$sel:_sentOtherErrs:AgentSMPServerStatsData :: Int
_sentOtherErrs = Int
0,
$sel:_recvMsgs:AgentSMPServerStatsData :: Int
_recvMsgs = Int
0,
$sel:_recvDuplicates:AgentSMPServerStatsData :: Int
_recvDuplicates = Int
0,
$sel:_recvCryptoErrs:AgentSMPServerStatsData :: Int
_recvCryptoErrs = Int
0,
$sel:_recvErrs:AgentSMPServerStatsData :: Int
_recvErrs = Int
0,
$sel:_ackMsgs:AgentSMPServerStatsData :: Int
_ackMsgs = Int
0,
$sel:_ackAttempts:AgentSMPServerStatsData :: Int
_ackAttempts = Int
0,
$sel:_ackNoMsgErrs:AgentSMPServerStatsData :: Int
_ackNoMsgErrs = Int
0,
$sel:_ackOtherErrs:AgentSMPServerStatsData :: Int
_ackOtherErrs = Int
0,
$sel:_connCreated:AgentSMPServerStatsData :: Int
_connCreated = Int
0,
$sel:_connSecured:AgentSMPServerStatsData :: Int
_connSecured = Int
0,
$sel:_connCompleted:AgentSMPServerStatsData :: Int
_connCompleted = Int
0,
$sel:_connDeleted:AgentSMPServerStatsData :: Int
_connDeleted = Int
0,
$sel:_connDelAttempts:AgentSMPServerStatsData :: Int
_connDelAttempts = Int
0,
$sel:_connDelErrs:AgentSMPServerStatsData :: Int
_connDelErrs = Int
0,
$sel:_connSubscribed:AgentSMPServerStatsData :: Int
_connSubscribed = Int
0,
$sel:_connSubAttempts:AgentSMPServerStatsData :: Int
_connSubAttempts = Int
0,
$sel:_connSubIgnored:AgentSMPServerStatsData :: Int
_connSubIgnored = Int
0,
$sel:_connSubErrs:AgentSMPServerStatsData :: Int
_connSubErrs = Int
0,
$sel:_ntfKey:AgentSMPServerStatsData :: OptionalInt
_ntfKey = OptionalInt
0,
$sel:_ntfKeyAttempts:AgentSMPServerStatsData :: OptionalInt
_ntfKeyAttempts = OptionalInt
0,
$sel:_ntfKeyDeleted:AgentSMPServerStatsData :: OptionalInt
_ntfKeyDeleted = OptionalInt
0,
$sel:_ntfKeyDeleteAttempts:AgentSMPServerStatsData :: OptionalInt
_ntfKeyDeleteAttempts = OptionalInt
0
}
newAgentSMPServerStats' :: AgentSMPServerStatsData -> STM AgentSMPServerStats
newAgentSMPServerStats' :: AgentSMPServerStatsData -> STM AgentSMPServerStats
newAgentSMPServerStats' AgentSMPServerStatsData
s = do
TVar Int
sentDirect <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentDirect AgentSMPServerStatsData
s
TVar Int
sentViaProxy <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentViaProxy AgentSMPServerStatsData
s
TVar Int
sentProxied <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentProxied AgentSMPServerStatsData
s
TVar Int
sentDirectAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentDirectAttempts AgentSMPServerStatsData
s
TVar Int
sentViaProxyAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentViaProxyAttempts AgentSMPServerStatsData
s
TVar Int
sentProxiedAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentProxiedAttempts AgentSMPServerStatsData
s
TVar Int
sentAuthErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentAuthErrs AgentSMPServerStatsData
s
TVar Int
sentQuotaErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentQuotaErrs AgentSMPServerStatsData
s
TVar Int
sentExpiredErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentExpiredErrs AgentSMPServerStatsData
s
TVar Int
sentOtherErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_sentOtherErrs AgentSMPServerStatsData
s
TVar Int
recvMsgs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_recvMsgs AgentSMPServerStatsData
s
TVar Int
recvDuplicates <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_recvDuplicates AgentSMPServerStatsData
s
TVar Int
recvCryptoErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_recvCryptoErrs AgentSMPServerStatsData
s
TVar Int
recvErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_recvErrs AgentSMPServerStatsData
s
TVar Int
ackMsgs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_ackMsgs AgentSMPServerStatsData
s
TVar Int
ackAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_ackAttempts AgentSMPServerStatsData
s
TVar Int
ackNoMsgErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_ackNoMsgErrs AgentSMPServerStatsData
s
TVar Int
ackOtherErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_ackOtherErrs AgentSMPServerStatsData
s
TVar Int
connCreated <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connCreated AgentSMPServerStatsData
s
TVar Int
connSecured <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connSecured AgentSMPServerStatsData
s
TVar Int
connCompleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connCompleted AgentSMPServerStatsData
s
TVar Int
connDeleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connDeleted AgentSMPServerStatsData
s
TVar Int
connDelAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connDelAttempts AgentSMPServerStatsData
s
TVar Int
connDelErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connDelErrs AgentSMPServerStatsData
s
TVar Int
connSubscribed <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connSubscribed AgentSMPServerStatsData
s
TVar Int
connSubAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connSubAttempts AgentSMPServerStatsData
s
TVar Int
connSubIgnored <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connSubIgnored AgentSMPServerStatsData
s
TVar Int
connSubErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> Int
_connSubErrs AgentSMPServerStatsData
s
TVar Int
ntfKey <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ OptionalInt -> Int
toInt (OptionalInt -> Int) -> OptionalInt -> Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> OptionalInt
_ntfKey AgentSMPServerStatsData
s
TVar Int
ntfKeyAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ OptionalInt -> Int
toInt (OptionalInt -> Int) -> OptionalInt -> Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> OptionalInt
_ntfKeyAttempts AgentSMPServerStatsData
s
TVar Int
ntfKeyDeleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ OptionalInt -> Int
toInt (OptionalInt -> Int) -> OptionalInt -> Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleted AgentSMPServerStatsData
s
TVar Int
ntfKeyDeleteAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ OptionalInt -> Int
toInt (OptionalInt -> Int) -> OptionalInt -> Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleteAttempts AgentSMPServerStatsData
s
AgentSMPServerStats -> STM AgentSMPServerStats
forall a. a -> STM a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentSMPServerStats
{ TVar Int
$sel:sentDirect:AgentSMPServerStats :: TVar Int
sentDirect :: TVar Int
sentDirect,
TVar Int
$sel:sentViaProxy:AgentSMPServerStats :: TVar Int
sentViaProxy :: TVar Int
sentViaProxy,
TVar Int
$sel:sentProxied:AgentSMPServerStats :: TVar Int
sentProxied :: TVar Int
sentProxied,
TVar Int
$sel:sentDirectAttempts:AgentSMPServerStats :: TVar Int
sentDirectAttempts :: TVar Int
sentDirectAttempts,
TVar Int
$sel:sentViaProxyAttempts:AgentSMPServerStats :: TVar Int
sentViaProxyAttempts :: TVar Int
sentViaProxyAttempts,
TVar Int
$sel:sentProxiedAttempts:AgentSMPServerStats :: TVar Int
sentProxiedAttempts :: TVar Int
sentProxiedAttempts,
TVar Int
$sel:sentAuthErrs:AgentSMPServerStats :: TVar Int
sentAuthErrs :: TVar Int
sentAuthErrs,
TVar Int
$sel:sentQuotaErrs:AgentSMPServerStats :: TVar Int
sentQuotaErrs :: TVar Int
sentQuotaErrs,
TVar Int
$sel:sentExpiredErrs:AgentSMPServerStats :: TVar Int
sentExpiredErrs :: TVar Int
sentExpiredErrs,
TVar Int
$sel:sentOtherErrs:AgentSMPServerStats :: TVar Int
sentOtherErrs :: TVar Int
sentOtherErrs,
TVar Int
$sel:recvMsgs:AgentSMPServerStats :: TVar Int
recvMsgs :: TVar Int
recvMsgs,
TVar Int
$sel:recvDuplicates:AgentSMPServerStats :: TVar Int
recvDuplicates :: TVar Int
recvDuplicates,
TVar Int
$sel:recvCryptoErrs:AgentSMPServerStats :: TVar Int
recvCryptoErrs :: TVar Int
recvCryptoErrs,
TVar Int
$sel:recvErrs:AgentSMPServerStats :: TVar Int
recvErrs :: TVar Int
recvErrs,
TVar Int
$sel:ackMsgs:AgentSMPServerStats :: TVar Int
ackMsgs :: TVar Int
ackMsgs,
TVar Int
$sel:ackAttempts:AgentSMPServerStats :: TVar Int
ackAttempts :: TVar Int
ackAttempts,
TVar Int
$sel:ackNoMsgErrs:AgentSMPServerStats :: TVar Int
ackNoMsgErrs :: TVar Int
ackNoMsgErrs,
TVar Int
$sel:ackOtherErrs:AgentSMPServerStats :: TVar Int
ackOtherErrs :: TVar Int
ackOtherErrs,
TVar Int
$sel:connCreated:AgentSMPServerStats :: TVar Int
connCreated :: TVar Int
connCreated,
TVar Int
$sel:connSecured:AgentSMPServerStats :: TVar Int
connSecured :: TVar Int
connSecured,
TVar Int
$sel:connCompleted:AgentSMPServerStats :: TVar Int
connCompleted :: TVar Int
connCompleted,
TVar Int
$sel:connDeleted:AgentSMPServerStats :: TVar Int
connDeleted :: TVar Int
connDeleted,
TVar Int
$sel:connDelAttempts:AgentSMPServerStats :: TVar Int
connDelAttempts :: TVar Int
connDelAttempts,
TVar Int
$sel:connDelErrs:AgentSMPServerStats :: TVar Int
connDelErrs :: TVar Int
connDelErrs,
TVar Int
$sel:connSubscribed:AgentSMPServerStats :: TVar Int
connSubscribed :: TVar Int
connSubscribed,
TVar Int
$sel:connSubAttempts:AgentSMPServerStats :: TVar Int
connSubAttempts :: TVar Int
connSubAttempts,
TVar Int
$sel:connSubIgnored:AgentSMPServerStats :: TVar Int
connSubIgnored :: TVar Int
connSubIgnored,
TVar Int
$sel:connSubErrs:AgentSMPServerStats :: TVar Int
connSubErrs :: TVar Int
connSubErrs,
TVar Int
$sel:ntfKey:AgentSMPServerStats :: TVar Int
ntfKey :: TVar Int
ntfKey,
TVar Int
$sel:ntfKeyAttempts:AgentSMPServerStats :: TVar Int
ntfKeyAttempts :: TVar Int
ntfKeyAttempts,
TVar Int
$sel:ntfKeyDeleted:AgentSMPServerStats :: TVar Int
ntfKeyDeleted :: TVar Int
ntfKeyDeleted,
TVar Int
$sel:ntfKeyDeleteAttempts:AgentSMPServerStats :: TVar Int
ntfKeyDeleteAttempts :: TVar Int
ntfKeyDeleteAttempts
}
getAgentSMPServerStats :: AgentSMPServerStats -> IO AgentSMPServerStatsData
getAgentSMPServerStats :: AgentSMPServerStats -> IO AgentSMPServerStatsData
getAgentSMPServerStats AgentSMPServerStats
s = do
Int
_sentDirect <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentDirect AgentSMPServerStats
s
Int
_sentViaProxy <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentViaProxy AgentSMPServerStats
s
Int
_sentProxied <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentProxied AgentSMPServerStats
s
Int
_sentDirectAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentDirectAttempts AgentSMPServerStats
s
Int
_sentViaProxyAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentViaProxyAttempts AgentSMPServerStats
s
Int
_sentProxiedAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentProxiedAttempts AgentSMPServerStats
s
Int
_sentAuthErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentAuthErrs AgentSMPServerStats
s
Int
_sentQuotaErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentQuotaErrs AgentSMPServerStats
s
Int
_sentExpiredErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentExpiredErrs AgentSMPServerStats
s
Int
_sentOtherErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
sentOtherErrs AgentSMPServerStats
s
Int
_recvMsgs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
recvMsgs AgentSMPServerStats
s
Int
_recvDuplicates <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
recvDuplicates AgentSMPServerStats
s
Int
_recvCryptoErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
recvCryptoErrs AgentSMPServerStats
s
Int
_recvErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
recvErrs AgentSMPServerStats
s
Int
_ackMsgs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
ackMsgs AgentSMPServerStats
s
Int
_ackAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
ackAttempts AgentSMPServerStats
s
Int
_ackNoMsgErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
ackNoMsgErrs AgentSMPServerStats
s
Int
_ackOtherErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
ackOtherErrs AgentSMPServerStats
s
Int
_connCreated <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connCreated AgentSMPServerStats
s
Int
_connSecured <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connSecured AgentSMPServerStats
s
Int
_connCompleted <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connCompleted AgentSMPServerStats
s
Int
_connDeleted <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connDeleted AgentSMPServerStats
s
Int
_connDelAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connDelAttempts AgentSMPServerStats
s
Int
_connDelErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connDelErrs AgentSMPServerStats
s
Int
_connSubscribed <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connSubscribed AgentSMPServerStats
s
Int
_connSubAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connSubAttempts AgentSMPServerStats
s
Int
_connSubIgnored <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connSubIgnored AgentSMPServerStats
s
Int
_connSubErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentSMPServerStats -> TVar Int
connSubErrs AgentSMPServerStats
s
OptionalInt
_ntfKey <- Int -> OptionalInt
OInt (Int -> OptionalInt) -> IO Int -> IO OptionalInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (AgentSMPServerStats -> TVar Int
ntfKey AgentSMPServerStats
s)
OptionalInt
_ntfKeyAttempts <- Int -> OptionalInt
OInt (Int -> OptionalInt) -> IO Int -> IO OptionalInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (AgentSMPServerStats -> TVar Int
ntfKeyAttempts AgentSMPServerStats
s)
OptionalInt
_ntfKeyDeleted <- Int -> OptionalInt
OInt (Int -> OptionalInt) -> IO Int -> IO OptionalInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (AgentSMPServerStats -> TVar Int
ntfKeyDeleted AgentSMPServerStats
s)
OptionalInt
_ntfKeyDeleteAttempts <- Int -> OptionalInt
OInt (Int -> OptionalInt) -> IO Int -> IO OptionalInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (AgentSMPServerStats -> TVar Int
ntfKeyDeleteAttempts AgentSMPServerStats
s)
AgentSMPServerStatsData -> IO AgentSMPServerStatsData
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentSMPServerStatsData
{ Int
$sel:_sentDirect:AgentSMPServerStatsData :: Int
_sentDirect :: Int
_sentDirect,
Int
$sel:_sentViaProxy:AgentSMPServerStatsData :: Int
_sentViaProxy :: Int
_sentViaProxy,
Int
$sel:_sentProxied:AgentSMPServerStatsData :: Int
_sentProxied :: Int
_sentProxied,
Int
$sel:_sentDirectAttempts:AgentSMPServerStatsData :: Int
_sentDirectAttempts :: Int
_sentDirectAttempts,
Int
$sel:_sentViaProxyAttempts:AgentSMPServerStatsData :: Int
_sentViaProxyAttempts :: Int
_sentViaProxyAttempts,
Int
$sel:_sentProxiedAttempts:AgentSMPServerStatsData :: Int
_sentProxiedAttempts :: Int
_sentProxiedAttempts,
Int
$sel:_sentAuthErrs:AgentSMPServerStatsData :: Int
_sentAuthErrs :: Int
_sentAuthErrs,
Int
$sel:_sentQuotaErrs:AgentSMPServerStatsData :: Int
_sentQuotaErrs :: Int
_sentQuotaErrs,
Int
$sel:_sentExpiredErrs:AgentSMPServerStatsData :: Int
_sentExpiredErrs :: Int
_sentExpiredErrs,
Int
$sel:_sentOtherErrs:AgentSMPServerStatsData :: Int
_sentOtherErrs :: Int
_sentOtherErrs,
Int
$sel:_recvMsgs:AgentSMPServerStatsData :: Int
_recvMsgs :: Int
_recvMsgs,
Int
$sel:_recvDuplicates:AgentSMPServerStatsData :: Int
_recvDuplicates :: Int
_recvDuplicates,
Int
$sel:_recvCryptoErrs:AgentSMPServerStatsData :: Int
_recvCryptoErrs :: Int
_recvCryptoErrs,
Int
$sel:_recvErrs:AgentSMPServerStatsData :: Int
_recvErrs :: Int
_recvErrs,
Int
$sel:_ackMsgs:AgentSMPServerStatsData :: Int
_ackMsgs :: Int
_ackMsgs,
Int
$sel:_ackAttempts:AgentSMPServerStatsData :: Int
_ackAttempts :: Int
_ackAttempts,
Int
$sel:_ackNoMsgErrs:AgentSMPServerStatsData :: Int
_ackNoMsgErrs :: Int
_ackNoMsgErrs,
Int
$sel:_ackOtherErrs:AgentSMPServerStatsData :: Int
_ackOtherErrs :: Int
_ackOtherErrs,
Int
$sel:_connCreated:AgentSMPServerStatsData :: Int
_connCreated :: Int
_connCreated,
Int
$sel:_connSecured:AgentSMPServerStatsData :: Int
_connSecured :: Int
_connSecured,
Int
$sel:_connCompleted:AgentSMPServerStatsData :: Int
_connCompleted :: Int
_connCompleted,
Int
$sel:_connDeleted:AgentSMPServerStatsData :: Int
_connDeleted :: Int
_connDeleted,
Int
$sel:_connDelAttempts:AgentSMPServerStatsData :: Int
_connDelAttempts :: Int
_connDelAttempts,
Int
$sel:_connDelErrs:AgentSMPServerStatsData :: Int
_connDelErrs :: Int
_connDelErrs,
Int
$sel:_connSubscribed:AgentSMPServerStatsData :: Int
_connSubscribed :: Int
_connSubscribed,
Int
$sel:_connSubAttempts:AgentSMPServerStatsData :: Int
_connSubAttempts :: Int
_connSubAttempts,
Int
$sel:_connSubIgnored:AgentSMPServerStatsData :: Int
_connSubIgnored :: Int
_connSubIgnored,
Int
$sel:_connSubErrs:AgentSMPServerStatsData :: Int
_connSubErrs :: Int
_connSubErrs,
OptionalInt
$sel:_ntfKey:AgentSMPServerStatsData :: OptionalInt
_ntfKey :: OptionalInt
_ntfKey,
OptionalInt
$sel:_ntfKeyAttempts:AgentSMPServerStatsData :: OptionalInt
_ntfKeyAttempts :: OptionalInt
_ntfKeyAttempts,
OptionalInt
$sel:_ntfKeyDeleted:AgentSMPServerStatsData :: OptionalInt
_ntfKeyDeleted :: OptionalInt
_ntfKeyDeleted,
OptionalInt
$sel:_ntfKeyDeleteAttempts:AgentSMPServerStatsData :: OptionalInt
_ntfKeyDeleteAttempts :: OptionalInt
_ntfKeyDeleteAttempts
}
addSMPStatsData :: AgentSMPServerStatsData -> AgentSMPServerStatsData -> AgentSMPServerStatsData
addSMPStatsData :: AgentSMPServerStatsData
-> AgentSMPServerStatsData -> AgentSMPServerStatsData
addSMPStatsData AgentSMPServerStatsData
sd1 AgentSMPServerStatsData
sd2 =
AgentSMPServerStatsData
{ $sel:_sentDirect:AgentSMPServerStatsData :: Int
_sentDirect = AgentSMPServerStatsData -> Int
_sentDirect AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentDirect AgentSMPServerStatsData
sd2,
$sel:_sentViaProxy:AgentSMPServerStatsData :: Int
_sentViaProxy = AgentSMPServerStatsData -> Int
_sentViaProxy AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentViaProxy AgentSMPServerStatsData
sd2,
$sel:_sentProxied:AgentSMPServerStatsData :: Int
_sentProxied = AgentSMPServerStatsData -> Int
_sentProxied AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentProxied AgentSMPServerStatsData
sd2,
$sel:_sentDirectAttempts:AgentSMPServerStatsData :: Int
_sentDirectAttempts = AgentSMPServerStatsData -> Int
_sentDirectAttempts AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentDirectAttempts AgentSMPServerStatsData
sd2,
$sel:_sentViaProxyAttempts:AgentSMPServerStatsData :: Int
_sentViaProxyAttempts = AgentSMPServerStatsData -> Int
_sentViaProxyAttempts AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentViaProxyAttempts AgentSMPServerStatsData
sd2,
$sel:_sentProxiedAttempts:AgentSMPServerStatsData :: Int
_sentProxiedAttempts = AgentSMPServerStatsData -> Int
_sentProxiedAttempts AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentProxiedAttempts AgentSMPServerStatsData
sd2,
$sel:_sentAuthErrs:AgentSMPServerStatsData :: Int
_sentAuthErrs = AgentSMPServerStatsData -> Int
_sentAuthErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentAuthErrs AgentSMPServerStatsData
sd2,
$sel:_sentQuotaErrs:AgentSMPServerStatsData :: Int
_sentQuotaErrs = AgentSMPServerStatsData -> Int
_sentQuotaErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentQuotaErrs AgentSMPServerStatsData
sd2,
$sel:_sentExpiredErrs:AgentSMPServerStatsData :: Int
_sentExpiredErrs = AgentSMPServerStatsData -> Int
_sentExpiredErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentExpiredErrs AgentSMPServerStatsData
sd2,
$sel:_sentOtherErrs:AgentSMPServerStatsData :: Int
_sentOtherErrs = AgentSMPServerStatsData -> Int
_sentOtherErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_sentOtherErrs AgentSMPServerStatsData
sd2,
$sel:_recvMsgs:AgentSMPServerStatsData :: Int
_recvMsgs = AgentSMPServerStatsData -> Int
_recvMsgs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_recvMsgs AgentSMPServerStatsData
sd2,
$sel:_recvDuplicates:AgentSMPServerStatsData :: Int
_recvDuplicates = AgentSMPServerStatsData -> Int
_recvDuplicates AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_recvDuplicates AgentSMPServerStatsData
sd2,
$sel:_recvCryptoErrs:AgentSMPServerStatsData :: Int
_recvCryptoErrs = AgentSMPServerStatsData -> Int
_recvCryptoErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_recvCryptoErrs AgentSMPServerStatsData
sd2,
$sel:_recvErrs:AgentSMPServerStatsData :: Int
_recvErrs = AgentSMPServerStatsData -> Int
_recvErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_recvErrs AgentSMPServerStatsData
sd2,
$sel:_ackMsgs:AgentSMPServerStatsData :: Int
_ackMsgs = AgentSMPServerStatsData -> Int
_ackMsgs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_ackMsgs AgentSMPServerStatsData
sd2,
$sel:_ackAttempts:AgentSMPServerStatsData :: Int
_ackAttempts = AgentSMPServerStatsData -> Int
_ackAttempts AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_ackAttempts AgentSMPServerStatsData
sd2,
$sel:_ackNoMsgErrs:AgentSMPServerStatsData :: Int
_ackNoMsgErrs = AgentSMPServerStatsData -> Int
_ackNoMsgErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_ackNoMsgErrs AgentSMPServerStatsData
sd2,
$sel:_ackOtherErrs:AgentSMPServerStatsData :: Int
_ackOtherErrs = AgentSMPServerStatsData -> Int
_ackOtherErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_ackOtherErrs AgentSMPServerStatsData
sd2,
$sel:_connCreated:AgentSMPServerStatsData :: Int
_connCreated = AgentSMPServerStatsData -> Int
_connCreated AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connCreated AgentSMPServerStatsData
sd2,
$sel:_connSecured:AgentSMPServerStatsData :: Int
_connSecured = AgentSMPServerStatsData -> Int
_connSecured AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connSecured AgentSMPServerStatsData
sd2,
$sel:_connCompleted:AgentSMPServerStatsData :: Int
_connCompleted = AgentSMPServerStatsData -> Int
_connCompleted AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connCompleted AgentSMPServerStatsData
sd2,
$sel:_connDeleted:AgentSMPServerStatsData :: Int
_connDeleted = AgentSMPServerStatsData -> Int
_connDeleted AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connDeleted AgentSMPServerStatsData
sd2,
$sel:_connDelAttempts:AgentSMPServerStatsData :: Int
_connDelAttempts = AgentSMPServerStatsData -> Int
_connDelAttempts AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connDelAttempts AgentSMPServerStatsData
sd2,
$sel:_connDelErrs:AgentSMPServerStatsData :: Int
_connDelErrs = AgentSMPServerStatsData -> Int
_connDelErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connDelErrs AgentSMPServerStatsData
sd2,
$sel:_connSubscribed:AgentSMPServerStatsData :: Int
_connSubscribed = AgentSMPServerStatsData -> Int
_connSubscribed AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connSubscribed AgentSMPServerStatsData
sd2,
$sel:_connSubAttempts:AgentSMPServerStatsData :: Int
_connSubAttempts = AgentSMPServerStatsData -> Int
_connSubAttempts AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connSubAttempts AgentSMPServerStatsData
sd2,
$sel:_connSubIgnored:AgentSMPServerStatsData :: Int
_connSubIgnored = AgentSMPServerStatsData -> Int
_connSubIgnored AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connSubIgnored AgentSMPServerStatsData
sd2,
$sel:_connSubErrs:AgentSMPServerStatsData :: Int
_connSubErrs = AgentSMPServerStatsData -> Int
_connSubErrs AgentSMPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> Int
_connSubErrs AgentSMPServerStatsData
sd2,
$sel:_ntfKey:AgentSMPServerStatsData :: OptionalInt
_ntfKey = AgentSMPServerStatsData -> OptionalInt
_ntfKey AgentSMPServerStatsData
sd1 OptionalInt -> OptionalInt -> OptionalInt
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> OptionalInt
_ntfKey AgentSMPServerStatsData
sd2,
$sel:_ntfKeyAttempts:AgentSMPServerStatsData :: OptionalInt
_ntfKeyAttempts = AgentSMPServerStatsData -> OptionalInt
_ntfKeyAttempts AgentSMPServerStatsData
sd1 OptionalInt -> OptionalInt -> OptionalInt
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> OptionalInt
_ntfKeyAttempts AgentSMPServerStatsData
sd2,
$sel:_ntfKeyDeleted:AgentSMPServerStatsData :: OptionalInt
_ntfKeyDeleted = AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleted AgentSMPServerStatsData
sd1 OptionalInt -> OptionalInt -> OptionalInt
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleted AgentSMPServerStatsData
sd2,
$sel:_ntfKeyDeleteAttempts:AgentSMPServerStatsData :: OptionalInt
_ntfKeyDeleteAttempts = AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleteAttempts AgentSMPServerStatsData
sd1 OptionalInt -> OptionalInt -> OptionalInt
forall a. Num a => a -> a -> a
+ AgentSMPServerStatsData -> OptionalInt
_ntfKeyDeleteAttempts AgentSMPServerStatsData
sd2
}
data AgentXFTPServerStats = AgentXFTPServerStats
{ AgentXFTPServerStats -> TVar Int
uploads :: TVar Int,
AgentXFTPServerStats -> TVar Int64
uploadsSize :: TVar Int64,
AgentXFTPServerStats -> TVar Int
uploadAttempts :: TVar Int,
AgentXFTPServerStats -> TVar Int
uploadErrs :: TVar Int,
AgentXFTPServerStats -> TVar Int
downloads :: TVar Int,
AgentXFTPServerStats -> TVar Int64
downloadsSize :: TVar Int64,
AgentXFTPServerStats -> TVar Int
downloadAttempts :: TVar Int,
AgentXFTPServerStats -> TVar Int
downloadAuthErrs :: TVar Int,
AgentXFTPServerStats -> TVar Int
downloadErrs :: TVar Int,
AgentXFTPServerStats -> TVar Int
deletions :: TVar Int,
AgentXFTPServerStats -> TVar Int
deleteAttempts :: TVar Int,
AgentXFTPServerStats -> TVar Int
deleteErrs :: TVar Int
}
data AgentXFTPServerStatsData = AgentXFTPServerStatsData
{ AgentXFTPServerStatsData -> Int
_uploads :: Int,
AgentXFTPServerStatsData -> Int64
_uploadsSize :: Int64,
AgentXFTPServerStatsData -> Int
_uploadAttempts :: Int,
AgentXFTPServerStatsData -> Int
_uploadErrs :: Int,
AgentXFTPServerStatsData -> Int
_downloads :: Int,
AgentXFTPServerStatsData -> Int64
_downloadsSize :: Int64,
AgentXFTPServerStatsData -> Int
_downloadAttempts :: Int,
AgentXFTPServerStatsData -> Int
_downloadAuthErrs :: Int,
AgentXFTPServerStatsData -> Int
_downloadErrs :: Int,
AgentXFTPServerStatsData -> Int
_deletions :: Int,
AgentXFTPServerStatsData -> Int
_deleteAttempts :: Int,
AgentXFTPServerStatsData -> Int
_deleteErrs :: Int
}
deriving (Int -> AgentXFTPServerStatsData -> ShowS
[AgentXFTPServerStatsData] -> ShowS
AgentXFTPServerStatsData -> String
(Int -> AgentXFTPServerStatsData -> ShowS)
-> (AgentXFTPServerStatsData -> String)
-> ([AgentXFTPServerStatsData] -> ShowS)
-> Show AgentXFTPServerStatsData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AgentXFTPServerStatsData -> ShowS
showsPrec :: Int -> AgentXFTPServerStatsData -> ShowS
$cshow :: AgentXFTPServerStatsData -> String
show :: AgentXFTPServerStatsData -> String
$cshowList :: [AgentXFTPServerStatsData] -> ShowS
showList :: [AgentXFTPServerStatsData] -> ShowS
Show)
newAgentXFTPServerStats :: STM AgentXFTPServerStats
newAgentXFTPServerStats :: STM AgentXFTPServerStats
newAgentXFTPServerStats = do
TVar Int
uploads <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int64
uploadsSize <- Int64 -> STM (TVar Int64)
forall a. a -> STM (TVar a)
newTVar Int64
0
TVar Int
uploadAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
uploadErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
downloads <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int64
downloadsSize <- Int64 -> STM (TVar Int64)
forall a. a -> STM (TVar a)
newTVar Int64
0
TVar Int
downloadAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
downloadAuthErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
downloadErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
deletions <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
deleteAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
deleteErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
AgentXFTPServerStats -> STM AgentXFTPServerStats
forall a. a -> STM a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentXFTPServerStats
{ TVar Int
$sel:uploads:AgentXFTPServerStats :: TVar Int
uploads :: TVar Int
uploads,
TVar Int64
$sel:uploadsSize:AgentXFTPServerStats :: TVar Int64
uploadsSize :: TVar Int64
uploadsSize,
TVar Int
$sel:uploadAttempts:AgentXFTPServerStats :: TVar Int
uploadAttempts :: TVar Int
uploadAttempts,
TVar Int
$sel:uploadErrs:AgentXFTPServerStats :: TVar Int
uploadErrs :: TVar Int
uploadErrs,
TVar Int
$sel:downloads:AgentXFTPServerStats :: TVar Int
downloads :: TVar Int
downloads,
TVar Int64
$sel:downloadsSize:AgentXFTPServerStats :: TVar Int64
downloadsSize :: TVar Int64
downloadsSize,
TVar Int
$sel:downloadAttempts:AgentXFTPServerStats :: TVar Int
downloadAttempts :: TVar Int
downloadAttempts,
TVar Int
$sel:downloadAuthErrs:AgentXFTPServerStats :: TVar Int
downloadAuthErrs :: TVar Int
downloadAuthErrs,
TVar Int
$sel:downloadErrs:AgentXFTPServerStats :: TVar Int
downloadErrs :: TVar Int
downloadErrs,
TVar Int
$sel:deletions:AgentXFTPServerStats :: TVar Int
deletions :: TVar Int
deletions,
TVar Int
$sel:deleteAttempts:AgentXFTPServerStats :: TVar Int
deleteAttempts :: TVar Int
deleteAttempts,
TVar Int
$sel:deleteErrs:AgentXFTPServerStats :: TVar Int
deleteErrs :: TVar Int
deleteErrs
}
newAgentXFTPServerStatsData :: AgentXFTPServerStatsData
newAgentXFTPServerStatsData :: AgentXFTPServerStatsData
newAgentXFTPServerStatsData =
AgentXFTPServerStatsData
{ $sel:_uploads:AgentXFTPServerStatsData :: Int
_uploads = Int
0,
$sel:_uploadsSize:AgentXFTPServerStatsData :: Int64
_uploadsSize = Int64
0,
$sel:_uploadAttempts:AgentXFTPServerStatsData :: Int
_uploadAttempts = Int
0,
$sel:_uploadErrs:AgentXFTPServerStatsData :: Int
_uploadErrs = Int
0,
$sel:_downloads:AgentXFTPServerStatsData :: Int
_downloads = Int
0,
$sel:_downloadsSize:AgentXFTPServerStatsData :: Int64
_downloadsSize = Int64
0,
$sel:_downloadAttempts:AgentXFTPServerStatsData :: Int
_downloadAttempts = Int
0,
$sel:_downloadAuthErrs:AgentXFTPServerStatsData :: Int
_downloadAuthErrs = Int
0,
$sel:_downloadErrs:AgentXFTPServerStatsData :: Int
_downloadErrs = Int
0,
$sel:_deletions:AgentXFTPServerStatsData :: Int
_deletions = Int
0,
$sel:_deleteAttempts:AgentXFTPServerStatsData :: Int
_deleteAttempts = Int
0,
$sel:_deleteErrs:AgentXFTPServerStatsData :: Int
_deleteErrs = Int
0
}
newAgentXFTPServerStats' :: AgentXFTPServerStatsData -> STM AgentXFTPServerStats
newAgentXFTPServerStats' :: AgentXFTPServerStatsData -> STM AgentXFTPServerStats
newAgentXFTPServerStats' AgentXFTPServerStatsData
s = do
TVar Int
uploads <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_uploads AgentXFTPServerStatsData
s
TVar Int64
uploadsSize <- Int64 -> STM (TVar Int64)
forall a. a -> STM (TVar a)
newTVar (Int64 -> STM (TVar Int64)) -> Int64 -> STM (TVar Int64)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int64
_uploadsSize AgentXFTPServerStatsData
s
TVar Int
uploadAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_uploadAttempts AgentXFTPServerStatsData
s
TVar Int
uploadErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_uploadErrs AgentXFTPServerStatsData
s
TVar Int
downloads <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_downloads AgentXFTPServerStatsData
s
TVar Int64
downloadsSize <- Int64 -> STM (TVar Int64)
forall a. a -> STM (TVar a)
newTVar (Int64 -> STM (TVar Int64)) -> Int64 -> STM (TVar Int64)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int64
_downloadsSize AgentXFTPServerStatsData
s
TVar Int
downloadAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_downloadAttempts AgentXFTPServerStatsData
s
TVar Int
downloadAuthErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_downloadAuthErrs AgentXFTPServerStatsData
s
TVar Int
downloadErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_downloadErrs AgentXFTPServerStatsData
s
TVar Int
deletions <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_deletions AgentXFTPServerStatsData
s
TVar Int
deleteAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_deleteAttempts AgentXFTPServerStatsData
s
TVar Int
deleteErrs <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStatsData -> Int
_deleteErrs AgentXFTPServerStatsData
s
AgentXFTPServerStats -> STM AgentXFTPServerStats
forall a. a -> STM a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentXFTPServerStats
{ TVar Int
$sel:uploads:AgentXFTPServerStats :: TVar Int
uploads :: TVar Int
uploads,
TVar Int64
$sel:uploadsSize:AgentXFTPServerStats :: TVar Int64
uploadsSize :: TVar Int64
uploadsSize,
TVar Int
$sel:uploadAttempts:AgentXFTPServerStats :: TVar Int
uploadAttempts :: TVar Int
uploadAttempts,
TVar Int
$sel:uploadErrs:AgentXFTPServerStats :: TVar Int
uploadErrs :: TVar Int
uploadErrs,
TVar Int
$sel:downloads:AgentXFTPServerStats :: TVar Int
downloads :: TVar Int
downloads,
TVar Int64
$sel:downloadsSize:AgentXFTPServerStats :: TVar Int64
downloadsSize :: TVar Int64
downloadsSize,
TVar Int
$sel:downloadAttempts:AgentXFTPServerStats :: TVar Int
downloadAttempts :: TVar Int
downloadAttempts,
TVar Int
$sel:downloadAuthErrs:AgentXFTPServerStats :: TVar Int
downloadAuthErrs :: TVar Int
downloadAuthErrs,
TVar Int
$sel:downloadErrs:AgentXFTPServerStats :: TVar Int
downloadErrs :: TVar Int
downloadErrs,
TVar Int
$sel:deletions:AgentXFTPServerStats :: TVar Int
deletions :: TVar Int
deletions,
TVar Int
$sel:deleteAttempts:AgentXFTPServerStats :: TVar Int
deleteAttempts :: TVar Int
deleteAttempts,
TVar Int
$sel:deleteErrs:AgentXFTPServerStats :: TVar Int
deleteErrs :: TVar Int
deleteErrs
}
getAgentXFTPServerStats :: AgentXFTPServerStats -> IO AgentXFTPServerStatsData
getAgentXFTPServerStats :: AgentXFTPServerStats -> IO AgentXFTPServerStatsData
getAgentXFTPServerStats AgentXFTPServerStats
s = do
Int
_uploads <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
uploads AgentXFTPServerStats
s
Int64
_uploadsSize <- TVar Int64 -> IO Int64
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int64 -> IO Int64) -> TVar Int64 -> IO Int64
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int64
uploadsSize AgentXFTPServerStats
s
Int
_uploadAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
uploadAttempts AgentXFTPServerStats
s
Int
_uploadErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
uploadErrs AgentXFTPServerStats
s
Int
_downloads <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
downloads AgentXFTPServerStats
s
Int64
_downloadsSize <- TVar Int64 -> IO Int64
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int64 -> IO Int64) -> TVar Int64 -> IO Int64
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int64
downloadsSize AgentXFTPServerStats
s
Int
_downloadAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
downloadAttempts AgentXFTPServerStats
s
Int
_downloadAuthErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
downloadAuthErrs AgentXFTPServerStats
s
Int
_downloadErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
downloadErrs AgentXFTPServerStats
s
Int
_deletions <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
deletions AgentXFTPServerStats
s
Int
_deleteAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
deleteAttempts AgentXFTPServerStats
s
Int
_deleteErrs <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentXFTPServerStats -> TVar Int
deleteErrs AgentXFTPServerStats
s
AgentXFTPServerStatsData -> IO AgentXFTPServerStatsData
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentXFTPServerStatsData
{ Int
$sel:_uploads:AgentXFTPServerStatsData :: Int
_uploads :: Int
_uploads,
Int64
$sel:_uploadsSize:AgentXFTPServerStatsData :: Int64
_uploadsSize :: Int64
_uploadsSize,
Int
$sel:_uploadAttempts:AgentXFTPServerStatsData :: Int
_uploadAttempts :: Int
_uploadAttempts,
Int
$sel:_uploadErrs:AgentXFTPServerStatsData :: Int
_uploadErrs :: Int
_uploadErrs,
Int
$sel:_downloads:AgentXFTPServerStatsData :: Int
_downloads :: Int
_downloads,
Int64
$sel:_downloadsSize:AgentXFTPServerStatsData :: Int64
_downloadsSize :: Int64
_downloadsSize,
Int
$sel:_downloadAttempts:AgentXFTPServerStatsData :: Int
_downloadAttempts :: Int
_downloadAttempts,
Int
$sel:_downloadAuthErrs:AgentXFTPServerStatsData :: Int
_downloadAuthErrs :: Int
_downloadAuthErrs,
Int
$sel:_downloadErrs:AgentXFTPServerStatsData :: Int
_downloadErrs :: Int
_downloadErrs,
Int
$sel:_deletions:AgentXFTPServerStatsData :: Int
_deletions :: Int
_deletions,
Int
$sel:_deleteAttempts:AgentXFTPServerStatsData :: Int
_deleteAttempts :: Int
_deleteAttempts,
Int
$sel:_deleteErrs:AgentXFTPServerStatsData :: Int
_deleteErrs :: Int
_deleteErrs
}
addXFTPStatsData :: AgentXFTPServerStatsData -> AgentXFTPServerStatsData -> AgentXFTPServerStatsData
addXFTPStatsData :: AgentXFTPServerStatsData
-> AgentXFTPServerStatsData -> AgentXFTPServerStatsData
addXFTPStatsData AgentXFTPServerStatsData
sd1 AgentXFTPServerStatsData
sd2 =
AgentXFTPServerStatsData
{ $sel:_uploads:AgentXFTPServerStatsData :: Int
_uploads = AgentXFTPServerStatsData -> Int
_uploads AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_uploads AgentXFTPServerStatsData
sd2,
$sel:_uploadsSize:AgentXFTPServerStatsData :: Int64
_uploadsSize = AgentXFTPServerStatsData -> Int64
_uploadsSize AgentXFTPServerStatsData
sd1 Int64 -> Int64 -> Int64
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int64
_uploadsSize AgentXFTPServerStatsData
sd2,
$sel:_uploadAttempts:AgentXFTPServerStatsData :: Int
_uploadAttempts = AgentXFTPServerStatsData -> Int
_uploadAttempts AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_uploadAttempts AgentXFTPServerStatsData
sd2,
$sel:_uploadErrs:AgentXFTPServerStatsData :: Int
_uploadErrs = AgentXFTPServerStatsData -> Int
_uploadErrs AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_uploadErrs AgentXFTPServerStatsData
sd2,
$sel:_downloads:AgentXFTPServerStatsData :: Int
_downloads = AgentXFTPServerStatsData -> Int
_downloads AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_downloads AgentXFTPServerStatsData
sd2,
$sel:_downloadsSize:AgentXFTPServerStatsData :: Int64
_downloadsSize = AgentXFTPServerStatsData -> Int64
_downloadsSize AgentXFTPServerStatsData
sd1 Int64 -> Int64 -> Int64
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int64
_downloadsSize AgentXFTPServerStatsData
sd2,
$sel:_downloadAttempts:AgentXFTPServerStatsData :: Int
_downloadAttempts = AgentXFTPServerStatsData -> Int
_downloadAttempts AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_downloadAttempts AgentXFTPServerStatsData
sd2,
$sel:_downloadAuthErrs:AgentXFTPServerStatsData :: Int
_downloadAuthErrs = AgentXFTPServerStatsData -> Int
_downloadAuthErrs AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_downloadAuthErrs AgentXFTPServerStatsData
sd2,
$sel:_downloadErrs:AgentXFTPServerStatsData :: Int
_downloadErrs = AgentXFTPServerStatsData -> Int
_downloadErrs AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_downloadErrs AgentXFTPServerStatsData
sd2,
$sel:_deletions:AgentXFTPServerStatsData :: Int
_deletions = AgentXFTPServerStatsData -> Int
_deletions AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_deletions AgentXFTPServerStatsData
sd2,
$sel:_deleteAttempts:AgentXFTPServerStatsData :: Int
_deleteAttempts = AgentXFTPServerStatsData -> Int
_deleteAttempts AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_deleteAttempts AgentXFTPServerStatsData
sd2,
$sel:_deleteErrs:AgentXFTPServerStatsData :: Int
_deleteErrs = AgentXFTPServerStatsData -> Int
_deleteErrs AgentXFTPServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentXFTPServerStatsData -> Int
_deleteErrs AgentXFTPServerStatsData
sd2
}
data AgentNtfServerStats = AgentNtfServerStats
{ AgentNtfServerStats -> TVar Int
ntfCreated :: TVar Int,
AgentNtfServerStats -> TVar Int
ntfCreateAttempts :: TVar Int,
AgentNtfServerStats -> TVar Int
ntfChecked :: TVar Int,
AgentNtfServerStats -> TVar Int
ntfCheckAttempts :: TVar Int,
AgentNtfServerStats -> TVar Int
ntfDeleted :: TVar Int,
AgentNtfServerStats -> TVar Int
ntfDelAttempts :: TVar Int
}
data AgentNtfServerStatsData = AgentNtfServerStatsData
{ AgentNtfServerStatsData -> Int
_ntfCreated :: Int,
AgentNtfServerStatsData -> Int
_ntfCreateAttempts :: Int,
AgentNtfServerStatsData -> Int
_ntfChecked :: Int,
AgentNtfServerStatsData -> Int
_ntfCheckAttempts :: Int,
AgentNtfServerStatsData -> Int
_ntfDeleted :: Int,
AgentNtfServerStatsData -> Int
_ntfDelAttempts :: Int
}
deriving (Int -> AgentNtfServerStatsData -> ShowS
[AgentNtfServerStatsData] -> ShowS
AgentNtfServerStatsData -> String
(Int -> AgentNtfServerStatsData -> ShowS)
-> (AgentNtfServerStatsData -> String)
-> ([AgentNtfServerStatsData] -> ShowS)
-> Show AgentNtfServerStatsData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AgentNtfServerStatsData -> ShowS
showsPrec :: Int -> AgentNtfServerStatsData -> ShowS
$cshow :: AgentNtfServerStatsData -> String
show :: AgentNtfServerStatsData -> String
$cshowList :: [AgentNtfServerStatsData] -> ShowS
showList :: [AgentNtfServerStatsData] -> ShowS
Show)
newAgentNtfServerStats :: STM AgentNtfServerStats
newAgentNtfServerStats :: STM AgentNtfServerStats
newAgentNtfServerStats = do
TVar Int
ntfCreated <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfCreateAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfChecked <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfCheckAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfDeleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
TVar Int
ntfDelAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar Int
0
AgentNtfServerStats -> STM AgentNtfServerStats
forall a. a -> STM a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentNtfServerStats
{ TVar Int
$sel:ntfCreated:AgentNtfServerStats :: TVar Int
ntfCreated :: TVar Int
ntfCreated,
TVar Int
$sel:ntfCreateAttempts:AgentNtfServerStats :: TVar Int
ntfCreateAttempts :: TVar Int
ntfCreateAttempts,
TVar Int
$sel:ntfChecked:AgentNtfServerStats :: TVar Int
ntfChecked :: TVar Int
ntfChecked,
TVar Int
$sel:ntfCheckAttempts:AgentNtfServerStats :: TVar Int
ntfCheckAttempts :: TVar Int
ntfCheckAttempts,
TVar Int
$sel:ntfDeleted:AgentNtfServerStats :: TVar Int
ntfDeleted :: TVar Int
ntfDeleted,
TVar Int
$sel:ntfDelAttempts:AgentNtfServerStats :: TVar Int
ntfDelAttempts :: TVar Int
ntfDelAttempts
}
newAgentNtfServerStatsData :: AgentNtfServerStatsData
newAgentNtfServerStatsData :: AgentNtfServerStatsData
newAgentNtfServerStatsData =
AgentNtfServerStatsData
{ $sel:_ntfCreated:AgentNtfServerStatsData :: Int
_ntfCreated = Int
0,
$sel:_ntfCreateAttempts:AgentNtfServerStatsData :: Int
_ntfCreateAttempts = Int
0,
$sel:_ntfChecked:AgentNtfServerStatsData :: Int
_ntfChecked = Int
0,
$sel:_ntfCheckAttempts:AgentNtfServerStatsData :: Int
_ntfCheckAttempts = Int
0,
$sel:_ntfDeleted:AgentNtfServerStatsData :: Int
_ntfDeleted = Int
0,
$sel:_ntfDelAttempts:AgentNtfServerStatsData :: Int
_ntfDelAttempts = Int
0
}
newAgentNtfServerStats' :: AgentNtfServerStatsData -> STM AgentNtfServerStats
newAgentNtfServerStats' :: AgentNtfServerStatsData -> STM AgentNtfServerStats
newAgentNtfServerStats' AgentNtfServerStatsData
s = do
TVar Int
ntfCreated <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStatsData -> Int
_ntfCreated AgentNtfServerStatsData
s
TVar Int
ntfCreateAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStatsData -> Int
_ntfCreateAttempts AgentNtfServerStatsData
s
TVar Int
ntfChecked <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStatsData -> Int
_ntfChecked AgentNtfServerStatsData
s
TVar Int
ntfCheckAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStatsData -> Int
_ntfCheckAttempts AgentNtfServerStatsData
s
TVar Int
ntfDeleted <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStatsData -> Int
_ntfDeleted AgentNtfServerStatsData
s
TVar Int
ntfDelAttempts <- Int -> STM (TVar Int)
forall a. a -> STM (TVar a)
newTVar (Int -> STM (TVar Int)) -> Int -> STM (TVar Int)
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStatsData -> Int
_ntfDelAttempts AgentNtfServerStatsData
s
AgentNtfServerStats -> STM AgentNtfServerStats
forall a. a -> STM a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentNtfServerStats
{ TVar Int
$sel:ntfCreated:AgentNtfServerStats :: TVar Int
ntfCreated :: TVar Int
ntfCreated,
TVar Int
$sel:ntfCreateAttempts:AgentNtfServerStats :: TVar Int
ntfCreateAttempts :: TVar Int
ntfCreateAttempts,
TVar Int
$sel:ntfChecked:AgentNtfServerStats :: TVar Int
ntfChecked :: TVar Int
ntfChecked,
TVar Int
$sel:ntfCheckAttempts:AgentNtfServerStats :: TVar Int
ntfCheckAttempts :: TVar Int
ntfCheckAttempts,
TVar Int
$sel:ntfDeleted:AgentNtfServerStats :: TVar Int
ntfDeleted :: TVar Int
ntfDeleted,
TVar Int
$sel:ntfDelAttempts:AgentNtfServerStats :: TVar Int
ntfDelAttempts :: TVar Int
ntfDelAttempts
}
getAgentNtfServerStats :: AgentNtfServerStats -> IO AgentNtfServerStatsData
getAgentNtfServerStats :: AgentNtfServerStats -> IO AgentNtfServerStatsData
getAgentNtfServerStats AgentNtfServerStats
s = do
Int
_ntfCreated <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStats -> TVar Int
ntfCreated AgentNtfServerStats
s
Int
_ntfCreateAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStats -> TVar Int
ntfCreateAttempts AgentNtfServerStats
s
Int
_ntfChecked <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStats -> TVar Int
ntfChecked AgentNtfServerStats
s
Int
_ntfCheckAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStats -> TVar Int
ntfCheckAttempts AgentNtfServerStats
s
Int
_ntfDeleted <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStats -> TVar Int
ntfDeleted AgentNtfServerStats
s
Int
_ntfDelAttempts <- TVar Int -> IO Int
forall (m :: * -> *) a. MonadIO m => TVar a -> m a
readTVarIO (TVar Int -> IO Int) -> TVar Int -> IO Int
forall a b. (a -> b) -> a -> b
$ AgentNtfServerStats -> TVar Int
ntfDelAttempts AgentNtfServerStats
s
AgentNtfServerStatsData -> IO AgentNtfServerStatsData
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
AgentNtfServerStatsData
{ Int
$sel:_ntfCreated:AgentNtfServerStatsData :: Int
_ntfCreated :: Int
_ntfCreated,
Int
$sel:_ntfCreateAttempts:AgentNtfServerStatsData :: Int
_ntfCreateAttempts :: Int
_ntfCreateAttempts,
Int
$sel:_ntfChecked:AgentNtfServerStatsData :: Int
_ntfChecked :: Int
_ntfChecked,
Int
$sel:_ntfCheckAttempts:AgentNtfServerStatsData :: Int
_ntfCheckAttempts :: Int
_ntfCheckAttempts,
Int
$sel:_ntfDeleted:AgentNtfServerStatsData :: Int
_ntfDeleted :: Int
_ntfDeleted,
Int
$sel:_ntfDelAttempts:AgentNtfServerStatsData :: Int
_ntfDelAttempts :: Int
_ntfDelAttempts
}
addNtfStatsData :: AgentNtfServerStatsData -> AgentNtfServerStatsData -> AgentNtfServerStatsData
addNtfStatsData :: AgentNtfServerStatsData
-> AgentNtfServerStatsData -> AgentNtfServerStatsData
addNtfStatsData AgentNtfServerStatsData
sd1 AgentNtfServerStatsData
sd2 =
AgentNtfServerStatsData
{ $sel:_ntfCreated:AgentNtfServerStatsData :: Int
_ntfCreated = AgentNtfServerStatsData -> Int
_ntfCreated AgentNtfServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentNtfServerStatsData -> Int
_ntfCreated AgentNtfServerStatsData
sd2,
$sel:_ntfCreateAttempts:AgentNtfServerStatsData :: Int
_ntfCreateAttempts = AgentNtfServerStatsData -> Int
_ntfCreateAttempts AgentNtfServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentNtfServerStatsData -> Int
_ntfCreateAttempts AgentNtfServerStatsData
sd2,
$sel:_ntfChecked:AgentNtfServerStatsData :: Int
_ntfChecked = AgentNtfServerStatsData -> Int
_ntfChecked AgentNtfServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentNtfServerStatsData -> Int
_ntfChecked AgentNtfServerStatsData
sd2,
$sel:_ntfCheckAttempts:AgentNtfServerStatsData :: Int
_ntfCheckAttempts = AgentNtfServerStatsData -> Int
_ntfCheckAttempts AgentNtfServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentNtfServerStatsData -> Int
_ntfCheckAttempts AgentNtfServerStatsData
sd2,
$sel:_ntfDeleted:AgentNtfServerStatsData :: Int
_ntfDeleted = AgentNtfServerStatsData -> Int
_ntfDeleted AgentNtfServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentNtfServerStatsData -> Int
_ntfDeleted AgentNtfServerStatsData
sd2,
$sel:_ntfDelAttempts:AgentNtfServerStatsData :: Int
_ntfDelAttempts = AgentNtfServerStatsData -> Int
_ntfDelAttempts AgentNtfServerStatsData
sd1 Int -> Int -> Int
forall a. Num a => a -> a -> a
+ AgentNtfServerStatsData -> Int
_ntfDelAttempts AgentNtfServerStatsData
sd2
}
data AgentPersistedServerStats = AgentPersistedServerStats
{ :: Map (UserId, SMPServer) AgentSMPServerStatsData,
:: Map (UserId, XFTPServer) AgentXFTPServerStatsData,
:: OptionalMap (UserId, NtfServer) AgentNtfServerStatsData
}
deriving (Int -> AgentPersistedServerStats -> ShowS
[AgentPersistedServerStats] -> ShowS
AgentPersistedServerStats -> String
(Int -> AgentPersistedServerStats -> ShowS)
-> (AgentPersistedServerStats -> String)
-> ([AgentPersistedServerStats] -> ShowS)
-> Show AgentPersistedServerStats
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AgentPersistedServerStats -> ShowS
showsPrec :: Int -> AgentPersistedServerStats -> ShowS
$cshow :: AgentPersistedServerStats -> String
show :: AgentPersistedServerStats -> String
$cshowList :: [AgentPersistedServerStats] -> ShowS
showList :: [AgentPersistedServerStats] -> ShowS
Show)
instance FromJSON OptionalInt where
parseJSON :: Value -> Parser OptionalInt
parseJSON Value
v = Int -> OptionalInt
OInt (Int -> OptionalInt) -> Parser Int -> Parser OptionalInt
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser Int
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
omittedField :: Maybe OptionalInt
omittedField = OptionalInt -> Maybe OptionalInt
forall a. a -> Maybe a
Just (Int -> OptionalInt
OInt Int
0)
newtype OptionalMap k v = OptionalMap (Map k v)
deriving (Int -> OptionalMap k v -> ShowS
[OptionalMap k v] -> ShowS
OptionalMap k v -> String
(Int -> OptionalMap k v -> ShowS)
-> (OptionalMap k v -> String)
-> ([OptionalMap k v] -> ShowS)
-> Show (OptionalMap k v)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall k v. (Show k, Show v) => Int -> OptionalMap k v -> ShowS
forall k v. (Show k, Show v) => [OptionalMap k v] -> ShowS
forall k v. (Show k, Show v) => OptionalMap k v -> String
$cshowsPrec :: forall k v. (Show k, Show v) => Int -> OptionalMap k v -> ShowS
showsPrec :: Int -> OptionalMap k v -> ShowS
$cshow :: forall k v. (Show k, Show v) => OptionalMap k v -> String
show :: OptionalMap k v -> String
$cshowList :: forall k v. (Show k, Show v) => [OptionalMap k v] -> ShowS
showList :: [OptionalMap k v] -> ShowS
Show, [OptionalMap k v] -> Encoding
[OptionalMap k v] -> Value
OptionalMap k v -> Bool
OptionalMap k v -> Encoding
OptionalMap k v -> Value
(OptionalMap k v -> Value)
-> (OptionalMap k v -> Encoding)
-> ([OptionalMap k v] -> Value)
-> ([OptionalMap k v] -> Encoding)
-> (OptionalMap k v -> Bool)
-> ToJSON (OptionalMap k v)
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
forall k v.
(ToJSON v, ToJSONKey k) =>
[OptionalMap k v] -> Encoding
forall k v. (ToJSON v, ToJSONKey k) => [OptionalMap k v] -> Value
forall k v. (ToJSON v, ToJSONKey k) => OptionalMap k v -> Bool
forall k v. (ToJSON v, ToJSONKey k) => OptionalMap k v -> Encoding
forall k v. (ToJSON v, ToJSONKey k) => OptionalMap k v -> Value
$ctoJSON :: forall k v. (ToJSON v, ToJSONKey k) => OptionalMap k v -> Value
toJSON :: OptionalMap k v -> Value
$ctoEncoding :: forall k v. (ToJSON v, ToJSONKey k) => OptionalMap k v -> Encoding
toEncoding :: OptionalMap k v -> Encoding
$ctoJSONList :: forall k v. (ToJSON v, ToJSONKey k) => [OptionalMap k v] -> Value
toJSONList :: [OptionalMap k v] -> Value
$ctoEncodingList :: forall k v.
(ToJSON v, ToJSONKey k) =>
[OptionalMap k v] -> Encoding
toEncodingList :: [OptionalMap k v] -> Encoding
$comitField :: forall k v. (ToJSON v, ToJSONKey k) => OptionalMap k v -> Bool
omitField :: OptionalMap k v -> Bool
ToJSON)
instance (FromJSONKey k, Ord k, FromJSON v) => FromJSON (OptionalMap k v) where
parseJSON :: Value -> Parser (OptionalMap k v)
parseJSON Value
v = Map k v -> OptionalMap k v
forall k v. Map k v -> OptionalMap k v
OptionalMap (Map k v -> OptionalMap k v)
-> Parser (Map k v) -> Parser (OptionalMap k v)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser (Map k v)
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
omittedField :: Maybe (OptionalMap k v)
omittedField = OptionalMap k v -> Maybe (OptionalMap k v)
forall a. a -> Maybe a
Just (Map k v -> OptionalMap k v
forall k v. Map k v -> OptionalMap k v
OptionalMap Map k v
forall k a. Map k a
M.empty)
$(J.deriveJSON defaultJSON ''AgentSMPServerStatsData)
$(J.deriveJSON defaultJSON ''AgentXFTPServerStatsData)
$(J.deriveJSON defaultJSON ''AgentNtfServerStatsData)
$(J.deriveJSON defaultJSON ''AgentPersistedServerStats)
instance ToField AgentPersistedServerStats where
toField :: AgentPersistedServerStats -> SQLData
toField = Text -> SQLData
forall a. ToField a => a -> SQLData
toField (Text -> SQLData)
-> (AgentPersistedServerStats -> Text)
-> AgentPersistedServerStats
-> SQLData
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AgentPersistedServerStats -> Text
forall a. ToJSON a => a -> Text
encodeJSON
instance FromField AgentPersistedServerStats where
fromField :: FieldParser AgentPersistedServerStats
fromField = (Text -> Maybe AgentPersistedServerStats)
-> FieldParser AgentPersistedServerStats
forall a. Typeable a => (Text -> Maybe a) -> Field -> Ok a
fromTextField_ Text -> Maybe AgentPersistedServerStats
forall a. FromJSON a => Text -> Maybe a
decodeJSON