| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Simplex.Messaging.Agent.Client
Synopsis
- data AgentClient = AgentClient {
- acThread :: TVar (Maybe (Weak ThreadId))
- active :: TVar Bool
- subQ :: TBQueue ATransmission
- msgQ :: TBQueue (ServerTransmissionBatch SMPVersion ErrorType BrokerMsg)
- smpServers :: TMap UserId (UserServers 'PSMP)
- smpClients :: TMap SMPTransportSession SMPClientVar
- smpProxiedRelays :: TMap SMPTransportSession SMPServerWithAuth
- ntfServers :: TVar [NtfServer]
- ntfClients :: TMap NtfTransportSession NtfClientVar
- xftpServers :: TMap UserId (UserServers 'PXFTP)
- xftpClients :: TMap XFTPTransportSession XFTPClientVar
- useNetworkConfig :: TVar (NetworkConfig, NetworkConfig)
- presetDomains :: [HostName]
- presetServers :: [SMPServer]
- userNetworkInfo :: TVar UserNetworkInfo
- userNetworkUpdated :: TVar (Maybe UTCTime)
- subscrConns :: TVar (Set ConnId)
- currentSubs :: TSessionSubs
- removedSubs :: TMap (UserId, SMPServer) (TMap RecipientId SMPClientError)
- clientNotices :: TMap (Maybe SMPServer) (Maybe SystemSeconds)
- clientNoticesLock :: TMVar ()
- workerSeq :: TVar Int
- smpDeliveryWorkers :: TMap SndQAddr (Worker, TMVar ())
- asyncCmdWorkers :: TMap (ConnId, Maybe SMPServer) Worker
- ntfNetworkOp :: TVar AgentOpState
- rcvNetworkOp :: TVar AgentOpState
- msgDeliveryOp :: TVar AgentOpState
- sndNetworkOp :: TVar AgentOpState
- databaseOp :: TVar AgentOpState
- agentState :: TVar AgentState
- getMsgLocks :: TMap (SMPServer, RecipientId) (TMVar ())
- connLocks :: TMap ConnId Lock
- invLocks :: TMap ByteString Lock
- deleteLock :: Lock
- smpSubWorkers :: TMap SMPTransportSession (SessionVar (Async ()))
- clientId :: Int
- agentEnv :: Env
- proxySessTs :: TVar UTCTime
- smpServersStats :: TMap (UserId, SMPServer) AgentSMPServerStats
- xftpServersStats :: TMap (UserId, XFTPServer) AgentXFTPServerStats
- ntfServersStats :: TMap (UserId, NtfServer) AgentNtfServerStats
- srvStatsStartedAt :: TVar UTCTime
- data ProtocolTestFailure = ProtocolTestFailure {}
- data ProtocolTestStep
- data ClntQueueReqData
- = CQRMessaging (Maybe (CQRData (SenderId, QueueLinkData)))
- | CQRContact (Maybe (CQRData (LinkId, (SenderId, QueueLinkData))))
- data CQRData r = CQRData {
- linkKey :: LinkKey
- privSigKey :: PrivateKeyEd25519
- srvReq :: r
- newAgentClient :: Int -> InitialAgentServers -> UTCTime -> Map (Maybe SMPServer) (Maybe SystemSeconds) -> Env -> IO AgentClient
- withConnLock :: AgentClient -> ConnId -> Text -> AM a -> AM a
- withConnLocks :: AgentClient -> Set ConnId -> Text -> AM' a -> AM' a
- withInvLock :: AgentClient -> ByteString -> Text -> AM a -> AM a
- withLockMap :: (Ord k, MonadUnliftIO m) => TMap k Lock -> k -> Text -> m a -> m a
- withLocksMap :: (Ord k, MonadUnliftIO m) => TMap k Lock -> Set k -> Text -> m a -> m a
- getMapLock :: Ord k => TMap k Lock -> k -> STM Lock
- ipAddressProtected :: NetworkConfig -> ProtocolServer p -> Bool
- closeAgentClient :: AgentClient -> IO ()
- closeProtocolServerClients :: ProtocolServerClient v err msg => AgentClient -> (AgentClient -> TMap (TransportSession msg) (ClientVar msg)) -> IO ()
- reconnectServerClients :: ProtocolServerClient v err msg => AgentClient -> (AgentClient -> TMap (TransportSession msg) (ClientVar msg)) -> IO ()
- reconnectSMPServer :: AgentClient -> UserId -> SMPServer -> IO ()
- closeXFTPServerClient :: AgentClient -> UserId -> XFTPServer -> FileDigest -> IO ()
- runSMPServerTest :: AgentClient -> NetworkRequestMode -> UserId -> SMPServerWithAuth -> AM' (Maybe ProtocolTestFailure)
- runXFTPServerTest :: AgentClient -> NetworkRequestMode -> UserId -> XFTPServerWithAuth -> AM' (Maybe ProtocolTestFailure)
- runNTFServerTest :: AgentClient -> NetworkRequestMode -> UserId -> NtfServerWithAuth -> AM' (Maybe ProtocolTestFailure)
- getXFTPWorkPath :: AM' FilePath
- newRcvQueue :: AgentClient -> NetworkRequestMode -> UserId -> ConnId -> SMPServerWithAuth -> VersionRangeSMPC -> SConnectionMode c -> Bool -> SubscriptionMode -> AM (NewRcvQueue, SMPQueueUri, SMPTransportSession, SessionId)
- newRcvQueue_ :: AgentClient -> NetworkRequestMode -> UserId -> ConnId -> SMPServerWithAuth -> VersionRangeSMPC -> ClntQueueReqData -> Bool -> SubscriptionMode -> Maybe CbNonce -> KeyPairX25519 -> AM (NewRcvQueue, SMPQueueUri, SMPTransportSession, SessionId)
- subscribeQueues :: AgentClient -> Bool -> [RcvQueueSub] -> AM' [(RcvQueueSub, Either AgentErrorType (Maybe ServiceId))]
- subscribeUserServerQueues :: AgentClient -> UserId -> SMPServer -> [RcvQueueSub] -> AM' [(RcvQueueSub, Either AgentErrorType (Maybe ServiceId))]
- processClientNotices :: AgentClient -> SMPTransportSession -> [(RcvQueueSub, Maybe ClientNotice)] -> AM' ()
- getQueueMessage :: AgentClient -> RcvQueue -> AM (Maybe SMPMsgMeta)
- decryptSMPMessage :: RcvQueue -> RcvMessage -> AM ClientRcvMsgBody
- failSubscription :: SomeRcvQueue q => AgentClient -> SMPTransportSession -> q -> SMPClientError -> STM ()
- addNewQueueSubscription :: AgentClient -> RcvQueue -> SMPTransportSession -> SessionId -> AM' ()
- getSubscriptions :: AgentClient -> IO (Set ConnId)
- sendConfirmation :: AgentClient -> NetworkRequestMode -> SndQueue -> ByteString -> AM (Maybe SMPServer)
- sendInvitation :: AgentClient -> NetworkRequestMode -> UserId -> ConnId -> Compatible SMPQueueInfo -> Compatible VersionSMPA -> ConnectionRequestUri 'CMInvitation -> ConnInfo -> AM (Maybe SMPServer)
- temporaryAgentError :: AgentErrorType -> Bool
- temporaryOrHostError :: AgentErrorType -> Bool
- serverHostError :: AgentErrorType -> Bool
- secureQueue :: AgentClient -> NetworkRequestMode -> RcvQueue -> SndPublicAuthKey -> AM ()
- secureSndQueue :: AgentClient -> NetworkRequestMode -> SndQueue -> AM ()
- addQueueLink :: AgentClient -> NetworkRequestMode -> RcvQueue -> LinkId -> QueueLinkData -> AM ()
- deleteQueueLink :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM ()
- secureGetQueueLink :: AgentClient -> NetworkRequestMode -> UserId -> InvShortLink -> AM (SenderId, QueueLinkData)
- getQueueLink :: AgentClient -> NetworkRequestMode -> UserId -> SMPServer -> LinkId -> AM (SenderId, QueueLinkData)
- enableQueueNotifications :: AgentClient -> RcvQueue -> NtfPublicAuthKey -> RcvNtfPublicDhKey -> AM (NotifierId, RcvNtfPublicDhKey)
- data EnableQueueNtfReq = EnableQueueNtfReq {}
- enableQueuesNtfs :: AgentClient -> [EnableQueueNtfReq] -> AM' [(EnableQueueNtfReq, Either AgentErrorType (NotifierId, RcvNtfPublicDhKey))]
- disableQueueNotifications :: AgentClient -> RcvQueue -> AM ()
- type DisableQueueNtfReq = (NtfSubscription, RcvQueue)
- disableQueuesNtfs :: AgentClient -> [DisableQueueNtfReq] -> AM' [(DisableQueueNtfReq, Either AgentErrorType ())]
- sendAgentMessage :: AgentClient -> SndQueue -> MsgFlags -> ByteString -> AM (Maybe SMPServer)
- getQueueInfo :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM ServerQueueInfo
- agentNtfRegisterToken :: AgentClient -> NetworkRequestMode -> NtfToken -> NtfPublicAuthKey -> PublicKeyX25519 -> AM (NtfTokenId, PublicKeyX25519)
- agentNtfVerifyToken :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> NtfRegCode -> AM ()
- agentNtfCheckToken :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> AM NtfTknStatus
- agentNtfReplaceToken :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> DeviceToken -> AM ()
- agentNtfDeleteToken :: AgentClient -> NetworkRequestMode -> NtfServer -> APrivateAuthKey -> NtfTokenId -> AM ()
- agentNtfSetCronInterval :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> Word16 -> AM ()
- agentNtfCreateSubscription :: AgentClient -> NtfTokenId -> NtfToken -> SMPQueueNtf -> NtfPrivateAuthKey -> AM NtfSubscriptionId
- agentNtfCreateSubscriptions :: AgentClient -> NtfToken -> NonEmpty (NewNtfEntity 'Subscription) -> AM' (NonEmpty (Either AgentErrorType NtfSubscriptionId))
- agentNtfCheckSubscription :: AgentClient -> NtfToken -> NtfSubscriptionId -> AM NtfSubStatus
- agentNtfCheckSubscriptions :: AgentClient -> NtfToken -> NonEmpty NtfSubscriptionId -> AM' (NonEmpty (Either AgentErrorType NtfSubStatus))
- agentNtfDeleteSubscription :: AgentClient -> NtfSubscriptionId -> NtfToken -> AM ()
- agentXFTPDownloadChunk :: AgentClient -> UserId -> FileDigest -> RcvFileChunkReplica -> XFTPRcvChunkSpec -> AM ()
- agentXFTPNewChunk :: AgentClient -> SndFileChunk -> Int -> XFTPServerWithAuth -> AM NewSndChunkReplica
- agentXFTPUploadChunk :: AgentClient -> UserId -> FileDigest -> SndFileChunkReplica -> XFTPChunkSpec -> AM ()
- agentXFTPAddRecipients :: AgentClient -> UserId -> FileDigest -> SndFileChunkReplica -> Int -> AM (NonEmpty (ChunkReplicaId, APrivateAuthKey))
- agentXFTPDeleteChunk :: AgentClient -> UserId -> DeletedSndChunkReplica -> AM ()
- agentCbDecrypt :: DhSecretX25519 -> CbNonce -> ByteString -> Either AgentErrorType ByteString
- cryptoError :: CryptoError -> AgentErrorType
- sendAck :: AgentClient -> RcvQueue -> MsgId -> AM ()
- suspendQueue :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM ()
- deleteQueue :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM ()
- deleteQueues :: AgentClient -> NetworkRequestMode -> [RcvQueue] -> AM' [(RcvQueue, Either AgentErrorType ())]
- logServer :: MonadIO m => ByteString -> AgentClient -> ProtocolServer s -> EntityId -> ByteString -> m ()
- logSecret :: EntityId -> ByteString
- logSecret' :: ByteString -> ByteString
- removeSubscription :: SomeRcvQueue q => AgentClient -> SMPTransportSession -> ConnId -> q -> STM ()
- removeSubscriptions :: SomeRcvQueue q => AgentClient -> [ConnId] -> [q] -> STM ()
- hasActiveSubscription :: SomeRcvQueue q => AgentClient -> q -> STM Bool
- hasPendingSubscription :: SomeRcvQueue q => AgentClient -> q -> STM Bool
- hasRemovedSubscription :: SomeRcvQueue q => AgentClient -> q -> STM (Maybe SMPClientError)
- hasGetLock :: SomeRcvQueue q => AgentClient -> q -> IO Bool
- releaseGetLock :: SomeRcvQueue q => AgentClient -> q -> STM ()
- activeClientSession :: AgentClient -> SMPTransportSession -> SessionId -> STM Bool
- agentClientStore :: AgentClient -> DBStore
- agentDRG :: AgentClient -> TVar ChaChaDRG
- data ServerQueueInfo = ServerQueueInfo {}
- data AgentServersSummary = AgentServersSummary {
- smpServersStats :: Map (UserId, SMPServer) AgentSMPServerStatsData
- xftpServersStats :: Map (UserId, XFTPServer) AgentXFTPServerStatsData
- ntfServersStats :: Map (UserId, NtfServer) AgentNtfServerStatsData
- statsStartedAt :: UTCTime
- smpServersSessions :: Map (UserId, SMPServer) ServerSessions
- smpServersSubs :: Map (UserId, SMPServer) SMPServerSubs
- xftpServersSessions :: Map (UserId, XFTPServer) ServerSessions
- xftpRcvInProgress :: [XFTPServer]
- xftpSndInProgress :: [XFTPServer]
- xftpDelInProgress :: [XFTPServer]
- ntfServersSessions :: Map (UserId, NtfServer) ServerSessions
- data ServerSessions = ServerSessions {
- ssConnected :: Int
- ssErrors :: Int
- ssConnecting :: Int
- data SMPServerSubs = SMPServerSubs {}
- getAgentSubsTotal :: AgentClient -> [UserId] -> IO (SMPServerSubs, Bool)
- getAgentServersSummary :: AgentClient -> IO AgentServersSummary
- getAgentSubscriptions :: AgentClient -> IO SubscriptionsInfo
- slowNetworkConfig :: NetworkConfig -> NetworkConfig
- protocolClientError :: (Show err, Encoding err) => (HostName -> err -> AgentErrorType) -> HostName -> ProtocolClientError err -> AgentErrorType
- data Worker = Worker {
- workerId :: Int
- doWork :: TMVar ()
- action :: TMVar (Maybe (Weak ThreadId))
- restarts :: TVar RestartCount
- data SessionVar a = SessionVar {
- sessionVar :: TMVar a
- sessionVarId :: Int
- sessionVarTs :: UTCTime
- data SubscriptionsInfo = SubscriptionsInfo {}
- data SubInfo = SubInfo {}
- data AgentOperation
- data AgentOpState = AgentOpState {
- opSuspended :: !Bool
- opsInProgress :: !Int
- data AgentState
- data AgentLocks = AgentLocks {}
- getAgentWorker :: (Ord k, Show k, AnyError e, MonadUnliftIO m) => String -> Bool -> AgentClient -> k -> TMap k Worker -> (Worker -> ExceptT e m ()) -> m Worker
- getAgentWorker' :: forall a k e m. (Ord k, Show k, AnyError e, MonadUnliftIO m) => (a -> Worker) -> (Worker -> STM a) -> String -> Bool -> AgentClient -> k -> TMap k a -> (a -> ExceptT e m ()) -> m a
- cancelWorker :: Worker -> IO ()
- waitForWork :: MonadIO m => TMVar () -> m ()
- hasWorkToDo :: Worker -> STM ()
- hasWorkToDo' :: TMVar () -> STM ()
- withWork :: AgentClient -> TMVar () -> (Connection -> IO (Either StoreError (Maybe a))) -> (a -> AM ()) -> AM ()
- withWork_ :: (AnyStoreError e', MonadIO m) => AgentClient -> TMVar () -> ExceptT e m (Either e' (Maybe a)) -> (a -> ExceptT e m ()) -> ExceptT e m ()
- withWorkItems :: (AnyStoreError e', MonadIO m) => AgentClient -> TMVar () -> ExceptT e m (Either e' [Either e' a]) -> (NonEmpty a -> ExceptT e m ()) -> ExceptT e m ()
- agentOperations :: [AgentClient -> TVar AgentOpState]
- agentOperationBracket :: MonadUnliftIO m => AgentClient -> AgentOperation -> (AgentClient -> IO ()) -> m a -> m a
- waitUntilActive :: AgentClient -> IO ()
- data UserNetworkInfo = UserNetworkInfo {
- networkType :: UserNetworkType
- online :: Bool
- data UserNetworkType
- = UNNone
- | UNCellular
- | UNWifi
- | UNEthernet
- | UNOther
- getFastNetworkConfig :: AgentClient -> IO NetworkConfig
- waitForUserNetwork :: AgentClient -> IO ()
- isNetworkOnline :: AgentClient -> STM Bool
- isOnline :: UserNetworkInfo -> Bool
- throwWhenInactive :: AgentClient -> IO ()
- throwWhenNoDelivery :: AgentClient -> SndQueue -> IO ()
- beginAgentOperation :: AgentClient -> AgentOperation -> STM ()
- endAgentOperation :: AgentClient -> AgentOperation -> STM ()
- waitUntilForeground :: AgentClient -> IO ()
- waitWhileSuspended :: AgentClient -> IO ()
- suspendSendingAndDatabase :: AgentClient -> STM ()
- suspendOperation :: AgentClient -> AgentOperation -> STM () -> STM ()
- notifySuspended :: AgentClient -> STM ()
- whenSuspending :: AgentClient -> STM () -> STM ()
- withStore :: AgentClient -> (Connection -> IO (Either StoreError a)) -> AM a
- withStore' :: AgentClient -> (Connection -> IO a) -> AM a
- withStoreBatch :: Traversable t => AgentClient -> (Connection -> t (IO (Either AgentErrorType a))) -> AM' (t (Either AgentErrorType a))
- withStoreBatch' :: Traversable t => AgentClient -> (Connection -> t (IO a)) -> AM' (t (Either AgentErrorType a))
- unsafeWithStore :: AgentClient -> (Connection -> IO a) -> AM' a
- storeError :: StoreError -> AgentErrorType
- notifySub :: MonadIO m => AgentClient -> AEvent 'AENone -> m ()
- notifySub' :: forall e m. (AEntityI e, MonadIO m) => AgentClient -> ConnId -> AEvent e -> m ()
- userServers :: forall p. (ProtocolTypeI p, UserProtocol p) => AgentClient -> TMap UserId (UserServers p)
- pickServer :: NonEmpty (Maybe OperatorId, ProtoServerWithAuth p) -> AM (ProtoServerWithAuth p)
- getNextServer :: (ProtocolTypeI p, UserProtocol p) => AgentClient -> UserId -> (UserServers p -> NonEmpty (Maybe OperatorId, ProtoServerWithAuth p)) -> [ProtocolServer p] -> AM (ProtoServerWithAuth p)
- withNextSrv :: (ProtocolTypeI p, UserProtocol p) => AgentClient -> UserId -> (UserServers p -> NonEmpty (Maybe OperatorId, ProtoServerWithAuth p)) -> TVar (Set TransportHost) -> [ProtocolServer p] -> (ProtoServerWithAuth p -> AM a) -> AM a
- incSMPServerStat :: AgentClient -> UserId -> SMPServer -> (AgentSMPServerStats -> TVar Int) -> STM ()
- incSMPServerStat' :: AgentClient -> UserId -> SMPServer -> (AgentSMPServerStats -> TVar Int) -> Int -> STM ()
- incXFTPServerStat :: AgentClient -> UserId -> XFTPServer -> (AgentXFTPServerStats -> TVar Int) -> STM ()
- incXFTPServerStat' :: AgentClient -> UserId -> XFTPServer -> (AgentXFTPServerStats -> TVar Int) -> Int -> STM ()
- incXFTPServerSizeStat :: AgentClient -> UserId -> XFTPServer -> (AgentXFTPServerStats -> TVar Int64) -> Int64 -> STM ()
- incNtfServerStat :: AgentClient -> UserId -> NtfServer -> (AgentNtfServerStats -> TVar Int) -> STM ()
- incNtfServerStat' :: AgentClient -> UserId -> NtfServer -> (AgentNtfServerStats -> TVar Int) -> Int -> STM ()
- data AgentWorkersDetails = AgentWorkersDetails {
- smpClients_ :: [Text]
- ntfClients_ :: [Text]
- xftpClients_ :: [Text]
- smpDeliveryWorkers_ :: Map Text WorkersDetails
- asyncCmdWorkers_ :: Map Text WorkersDetails
- smpSubWorkers_ :: [Text]
- ntfWorkers_ :: Map Text WorkersDetails
- ntfSMPWorkers_ :: Map Text WorkersDetails
- xftpRcvWorkers_ :: Map Text WorkersDetails
- xftpSndWorkers_ :: Map Text WorkersDetails
- xftpDelWorkers_ :: Map Text WorkersDetails
- getAgentWorkersDetails :: AgentClient -> IO AgentWorkersDetails
- data AgentWorkersSummary = AgentWorkersSummary {
- smpClientsCount :: Int
- ntfClientsCount :: Int
- xftpClientsCount :: Int
- smpDeliveryWorkersCount :: WorkersSummary
- asyncCmdWorkersCount :: WorkersSummary
- smpSubWorkersCount :: Int
- ntfWorkersCount :: WorkersSummary
- ntfSMPWorkersCount :: WorkersSummary
- xftpRcvWorkersCount :: WorkersSummary
- xftpSndWorkersCount :: WorkersSummary
- xftpDelWorkersCount :: WorkersSummary
- getAgentWorkersSummary :: AgentClient -> IO AgentWorkersSummary
- data AgentQueuesInfo = AgentQueuesInfo {
- msgQInfo :: TBQueueInfo
- subQInfo :: TBQueueInfo
- smpClientsQueues :: Map Text (Int, UTCTime, ClientInfo)
- getAgentQueuesInfo :: AgentClient -> IO AgentQueuesInfo
- type SMPTransportSession = TransportSession BrokerMsg
- type NtfTransportSession = TransportSession NtfResponse
- type XFTPTransportSession = TransportSession FileResponse
- data ProxiedRelay = ProxiedRelay {
- prSessionId :: SessionId
- prVersion :: VersionSMP
- prBasicAuth :: Maybe BasicAuth
- prServerKey :: PublicKeyX25519
- data SMPConnectedClient = SMPConnectedClient {
- connectedClient :: SMPClient
- proxiedRelays :: TMap SMPServer ProxiedRelayVar
Documentation
data AgentClient Source #
Constructors
data ProtocolTestFailure Source #
Constructors
| ProtocolTestFailure | |
Fields | |
Instances
| FromJSON ProtocolTestFailure Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser ProtocolTestFailure parseJSONList :: Value -> Parser [ProtocolTestFailure] omittedField :: Maybe ProtocolTestFailure | |
| ToJSON ProtocolTestFailure Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: ProtocolTestFailure -> Value toEncoding :: ProtocolTestFailure -> Encoding toJSONList :: [ProtocolTestFailure] -> Value toEncodingList :: [ProtocolTestFailure] -> Encoding omitField :: ProtocolTestFailure -> Bool | |
| Show ProtocolTestFailure Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> ProtocolTestFailure -> ShowS show :: ProtocolTestFailure -> String showList :: [ProtocolTestFailure] -> ShowS | |
| Eq ProtocolTestFailure Source # | |
Defined in Simplex.Messaging.Agent.Client Methods (==) :: ProtocolTestFailure -> ProtocolTestFailure -> Bool (/=) :: ProtocolTestFailure -> ProtocolTestFailure -> Bool | |
data ProtocolTestStep Source #
Constructors
| TSConnect | |
| TSDisconnect | |
| TSCreateQueue | |
| TSSecureQueue | |
| TSDeleteQueue | |
| TSCreateFile | |
| TSUploadFile | |
| TSDownloadFile | |
| TSCompareFile | |
| TSDeleteFile | |
| TSCreateNtfToken | |
| TSDeleteNtfToken |
Instances
| FromJSON ProtocolTestStep Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser ProtocolTestStep parseJSONList :: Value -> Parser [ProtocolTestStep] omittedField :: Maybe ProtocolTestStep | |
| ToJSON ProtocolTestStep Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: ProtocolTestStep -> Value toEncoding :: ProtocolTestStep -> Encoding toJSONList :: [ProtocolTestStep] -> Value toEncodingList :: [ProtocolTestStep] -> Encoding omitField :: ProtocolTestStep -> Bool | |
| Show ProtocolTestStep Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> ProtocolTestStep -> ShowS show :: ProtocolTestStep -> String showList :: [ProtocolTestStep] -> ShowS | |
| Eq ProtocolTestStep Source # | |
Defined in Simplex.Messaging.Agent.Client Methods (==) :: ProtocolTestStep -> ProtocolTestStep -> Bool (/=) :: ProtocolTestStep -> ProtocolTestStep -> Bool | |
data ClntQueueReqData Source #
Constructors
| CQRMessaging (Maybe (CQRData (SenderId, QueueLinkData))) | |
| CQRContact (Maybe (CQRData (LinkId, (SenderId, QueueLinkData)))) |
Constructors
| CQRData | |
Fields
| |
newAgentClient :: Int -> InitialAgentServers -> UTCTime -> Map (Maybe SMPServer) (Maybe SystemSeconds) -> Env -> IO AgentClient Source #
Creates an SMP agent client instance that receives commands and sends responses via TBQueues.
withConnLock :: AgentClient -> ConnId -> Text -> AM a -> AM a Source #
withConnLocks :: AgentClient -> Set ConnId -> Text -> AM' a -> AM' a Source #
withInvLock :: AgentClient -> ByteString -> Text -> AM a -> AM a Source #
withLockMap :: (Ord k, MonadUnliftIO m) => TMap k Lock -> k -> Text -> m a -> m a Source #
withLocksMap :: (Ord k, MonadUnliftIO m) => TMap k Lock -> Set k -> Text -> m a -> m a Source #
ipAddressProtected :: NetworkConfig -> ProtocolServer p -> Bool Source #
closeAgentClient :: AgentClient -> IO () Source #
closeProtocolServerClients :: ProtocolServerClient v err msg => AgentClient -> (AgentClient -> TMap (TransportSession msg) (ClientVar msg)) -> IO () Source #
reconnectServerClients :: ProtocolServerClient v err msg => AgentClient -> (AgentClient -> TMap (TransportSession msg) (ClientVar msg)) -> IO () Source #
reconnectSMPServer :: AgentClient -> UserId -> SMPServer -> IO () Source #
closeXFTPServerClient :: AgentClient -> UserId -> XFTPServer -> FileDigest -> IO () Source #
runSMPServerTest :: AgentClient -> NetworkRequestMode -> UserId -> SMPServerWithAuth -> AM' (Maybe ProtocolTestFailure) Source #
runXFTPServerTest :: AgentClient -> NetworkRequestMode -> UserId -> XFTPServerWithAuth -> AM' (Maybe ProtocolTestFailure) Source #
runNTFServerTest :: AgentClient -> NetworkRequestMode -> UserId -> NtfServerWithAuth -> AM' (Maybe ProtocolTestFailure) Source #
getXFTPWorkPath :: AM' FilePath Source #
newRcvQueue :: AgentClient -> NetworkRequestMode -> UserId -> ConnId -> SMPServerWithAuth -> VersionRangeSMPC -> SConnectionMode c -> Bool -> SubscriptionMode -> AM (NewRcvQueue, SMPQueueUri, SMPTransportSession, SessionId) Source #
newRcvQueue_ :: AgentClient -> NetworkRequestMode -> UserId -> ConnId -> SMPServerWithAuth -> VersionRangeSMPC -> ClntQueueReqData -> Bool -> SubscriptionMode -> Maybe CbNonce -> KeyPairX25519 -> AM (NewRcvQueue, SMPQueueUri, SMPTransportSession, SessionId) Source #
subscribeQueues :: AgentClient -> Bool -> [RcvQueueSub] -> AM' [(RcvQueueSub, Either AgentErrorType (Maybe ServiceId))] Source #
Batch by transport session and subscribe queues. The list of results can have a different order.
subscribeUserServerQueues :: AgentClient -> UserId -> SMPServer -> [RcvQueueSub] -> AM' [(RcvQueueSub, Either AgentErrorType (Maybe ServiceId))] Source #
processClientNotices :: AgentClient -> SMPTransportSession -> [(RcvQueueSub, Maybe ClientNotice)] -> AM' () Source #
getQueueMessage :: AgentClient -> RcvQueue -> AM (Maybe SMPMsgMeta) Source #
decryptSMPMessage :: RcvQueue -> RcvMessage -> AM ClientRcvMsgBody Source #
failSubscription :: SomeRcvQueue q => AgentClient -> SMPTransportSession -> q -> SMPClientError -> STM () Source #
addNewQueueSubscription :: AgentClient -> RcvQueue -> SMPTransportSession -> SessionId -> AM' () Source #
getSubscriptions :: AgentClient -> IO (Set ConnId) Source #
sendConfirmation :: AgentClient -> NetworkRequestMode -> SndQueue -> ByteString -> AM (Maybe SMPServer) Source #
sendInvitation :: AgentClient -> NetworkRequestMode -> UserId -> ConnId -> Compatible SMPQueueInfo -> Compatible VersionSMPA -> ConnectionRequestUri 'CMInvitation -> ConnInfo -> AM (Maybe SMPServer) Source #
temporaryAgentError :: AgentErrorType -> Bool Source #
temporaryOrHostError :: AgentErrorType -> Bool Source #
serverHostError :: AgentErrorType -> Bool Source #
secureQueue :: AgentClient -> NetworkRequestMode -> RcvQueue -> SndPublicAuthKey -> AM () Source #
secureSndQueue :: AgentClient -> NetworkRequestMode -> SndQueue -> AM () Source #
addQueueLink :: AgentClient -> NetworkRequestMode -> RcvQueue -> LinkId -> QueueLinkData -> AM () Source #
deleteQueueLink :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM () Source #
secureGetQueueLink :: AgentClient -> NetworkRequestMode -> UserId -> InvShortLink -> AM (SenderId, QueueLinkData) Source #
getQueueLink :: AgentClient -> NetworkRequestMode -> UserId -> SMPServer -> LinkId -> AM (SenderId, QueueLinkData) Source #
enableQueueNotifications :: AgentClient -> RcvQueue -> NtfPublicAuthKey -> RcvNtfPublicDhKey -> AM (NotifierId, RcvNtfPublicDhKey) Source #
data EnableQueueNtfReq Source #
Constructors
| EnableQueueNtfReq | |
Fields | |
enableQueuesNtfs :: AgentClient -> [EnableQueueNtfReq] -> AM' [(EnableQueueNtfReq, Either AgentErrorType (NotifierId, RcvNtfPublicDhKey))] Source #
disableQueueNotifications :: AgentClient -> RcvQueue -> AM () Source #
type DisableQueueNtfReq = (NtfSubscription, RcvQueue) Source #
disableQueuesNtfs :: AgentClient -> [DisableQueueNtfReq] -> AM' [(DisableQueueNtfReq, Either AgentErrorType ())] Source #
sendAgentMessage :: AgentClient -> SndQueue -> MsgFlags -> ByteString -> AM (Maybe SMPServer) Source #
getQueueInfo :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM ServerQueueInfo Source #
agentNtfRegisterToken :: AgentClient -> NetworkRequestMode -> NtfToken -> NtfPublicAuthKey -> PublicKeyX25519 -> AM (NtfTokenId, PublicKeyX25519) Source #
agentNtfVerifyToken :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> NtfRegCode -> AM () Source #
agentNtfCheckToken :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> AM NtfTknStatus Source #
agentNtfReplaceToken :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> DeviceToken -> AM () Source #
agentNtfDeleteToken :: AgentClient -> NetworkRequestMode -> NtfServer -> APrivateAuthKey -> NtfTokenId -> AM () Source #
agentNtfSetCronInterval :: AgentClient -> NetworkRequestMode -> NtfTokenId -> NtfToken -> Word16 -> AM () Source #
agentNtfCreateSubscription :: AgentClient -> NtfTokenId -> NtfToken -> SMPQueueNtf -> NtfPrivateAuthKey -> AM NtfSubscriptionId Source #
agentNtfCreateSubscriptions :: AgentClient -> NtfToken -> NonEmpty (NewNtfEntity 'Subscription) -> AM' (NonEmpty (Either AgentErrorType NtfSubscriptionId)) Source #
agentNtfCheckSubscription :: AgentClient -> NtfToken -> NtfSubscriptionId -> AM NtfSubStatus Source #
agentNtfCheckSubscriptions :: AgentClient -> NtfToken -> NonEmpty NtfSubscriptionId -> AM' (NonEmpty (Either AgentErrorType NtfSubStatus)) Source #
agentNtfDeleteSubscription :: AgentClient -> NtfSubscriptionId -> NtfToken -> AM () Source #
agentXFTPDownloadChunk :: AgentClient -> UserId -> FileDigest -> RcvFileChunkReplica -> XFTPRcvChunkSpec -> AM () Source #
agentXFTPNewChunk :: AgentClient -> SndFileChunk -> Int -> XFTPServerWithAuth -> AM NewSndChunkReplica Source #
agentXFTPUploadChunk :: AgentClient -> UserId -> FileDigest -> SndFileChunkReplica -> XFTPChunkSpec -> AM () Source #
agentXFTPAddRecipients :: AgentClient -> UserId -> FileDigest -> SndFileChunkReplica -> Int -> AM (NonEmpty (ChunkReplicaId, APrivateAuthKey)) Source #
agentXFTPDeleteChunk :: AgentClient -> UserId -> DeletedSndChunkReplica -> AM () Source #
agentCbDecrypt :: DhSecretX25519 -> CbNonce -> ByteString -> Either AgentErrorType ByteString Source #
NaCl crypto-box decrypt - both for messages received from the server and per-queue E2E encrypted messages from the sender that were inside.
suspendQueue :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM () Source #
deleteQueue :: AgentClient -> NetworkRequestMode -> RcvQueue -> AM () Source #
deleteQueues :: AgentClient -> NetworkRequestMode -> [RcvQueue] -> AM' [(RcvQueue, Either AgentErrorType ())] Source #
logServer :: MonadIO m => ByteString -> AgentClient -> ProtocolServer s -> EntityId -> ByteString -> m () Source #
logSecret' :: ByteString -> ByteString Source #
removeSubscription :: SomeRcvQueue q => AgentClient -> SMPTransportSession -> ConnId -> q -> STM () Source #
removeSubscriptions :: SomeRcvQueue q => AgentClient -> [ConnId] -> [q] -> STM () Source #
hasActiveSubscription :: SomeRcvQueue q => AgentClient -> q -> STM Bool Source #
hasPendingSubscription :: SomeRcvQueue q => AgentClient -> q -> STM Bool Source #
hasRemovedSubscription :: SomeRcvQueue q => AgentClient -> q -> STM (Maybe SMPClientError) Source #
hasGetLock :: SomeRcvQueue q => AgentClient -> q -> IO Bool Source #
releaseGetLock :: SomeRcvQueue q => AgentClient -> q -> STM () Source #
activeClientSession :: AgentClient -> SMPTransportSession -> SessionId -> STM Bool Source #
agentDRG :: AgentClient -> TVar ChaChaDRG Source #
data ServerQueueInfo Source #
Constructors
| ServerQueueInfo | |
Instances
| FromJSON ServerQueueInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser ServerQueueInfo parseJSONList :: Value -> Parser [ServerQueueInfo] omittedField :: Maybe ServerQueueInfo | |
| ToJSON ServerQueueInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: ServerQueueInfo -> Value toEncoding :: ServerQueueInfo -> Encoding toJSONList :: [ServerQueueInfo] -> Value toEncodingList :: [ServerQueueInfo] -> Encoding omitField :: ServerQueueInfo -> Bool | |
| Show ServerQueueInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> ServerQueueInfo -> ShowS show :: ServerQueueInfo -> String showList :: [ServerQueueInfo] -> ShowS | |
data AgentServersSummary Source #
Constructors
| AgentServersSummary | |
Fields
| |
Instances
| FromJSON AgentServersSummary Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser AgentServersSummary parseJSONList :: Value -> Parser [AgentServersSummary] omittedField :: Maybe AgentServersSummary | |
| ToJSON AgentServersSummary Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: AgentServersSummary -> Value toEncoding :: AgentServersSummary -> Encoding toJSONList :: [AgentServersSummary] -> Value toEncodingList :: [AgentServersSummary] -> Encoding omitField :: AgentServersSummary -> Bool | |
| Show AgentServersSummary Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentServersSummary -> ShowS show :: AgentServersSummary -> String showList :: [AgentServersSummary] -> ShowS | |
data ServerSessions Source #
Constructors
| ServerSessions | |
Fields
| |
Instances
| FromJSON ServerSessions Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser ServerSessions parseJSONList :: Value -> Parser [ServerSessions] omittedField :: Maybe ServerSessions | |
| ToJSON ServerSessions Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: ServerSessions -> Value toEncoding :: ServerSessions -> Encoding toJSONList :: [ServerSessions] -> Value toEncodingList :: [ServerSessions] -> Encoding omitField :: ServerSessions -> Bool | |
| Show ServerSessions Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> ServerSessions -> ShowS show :: ServerSessions -> String showList :: [ServerSessions] -> ShowS | |
data SMPServerSubs Source #
Constructors
| SMPServerSubs | |
Instances
| FromJSON SMPServerSubs Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser SMPServerSubs parseJSONList :: Value -> Parser [SMPServerSubs] omittedField :: Maybe SMPServerSubs | |
| ToJSON SMPServerSubs Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: SMPServerSubs -> Value toEncoding :: SMPServerSubs -> Encoding toJSONList :: [SMPServerSubs] -> Value toEncodingList :: [SMPServerSubs] -> Encoding omitField :: SMPServerSubs -> Bool | |
| Show SMPServerSubs Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> SMPServerSubs -> ShowS show :: SMPServerSubs -> String showList :: [SMPServerSubs] -> ShowS | |
getAgentSubsTotal :: AgentClient -> [UserId] -> IO (SMPServerSubs, Bool) Source #
protocolClientError :: (Show err, Encoding err) => (HostName -> err -> AgentErrorType) -> HostName -> ProtocolClientError err -> AgentErrorType Source #
data SessionVar a Source #
Constructors
| SessionVar | |
Fields
| |
data SubscriptionsInfo Source #
Constructors
| SubscriptionsInfo | |
Fields
| |
Instances
| FromJSON SubscriptionsInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser SubscriptionsInfo parseJSONList :: Value -> Parser [SubscriptionsInfo] omittedField :: Maybe SubscriptionsInfo | |
| ToJSON SubscriptionsInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: SubscriptionsInfo -> Value toEncoding :: SubscriptionsInfo -> Encoding toJSONList :: [SubscriptionsInfo] -> Value toEncodingList :: [SubscriptionsInfo] -> Encoding omitField :: SubscriptionsInfo -> Bool | |
| Show SubscriptionsInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> SubscriptionsInfo -> ShowS show :: SubscriptionsInfo -> String showList :: [SubscriptionsInfo] -> ShowS | |
Instances
| FromJSON SubInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser SubInfo parseJSONList :: Value -> Parser [SubInfo] omittedField :: Maybe SubInfo | |
| ToJSON SubInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toEncoding :: SubInfo -> Encoding toJSONList :: [SubInfo] -> Value toEncodingList :: [SubInfo] -> Encoding | |
| Show SubInfo Source # | |
data AgentOperation Source #
Constructors
| AONtfNetwork | |
| AORcvNetwork | |
| AOMsgDelivery | |
| AOSndNetwork | |
| AODatabase |
Instances
| Show AgentOperation Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentOperation -> ShowS show :: AgentOperation -> String showList :: [AgentOperation] -> ShowS | |
| Eq AgentOperation Source # | |
Defined in Simplex.Messaging.Agent.Client Methods (==) :: AgentOperation -> AgentOperation -> Bool (/=) :: AgentOperation -> AgentOperation -> Bool | |
data AgentOpState Source #
Constructors
| AgentOpState | |
Fields
| |
data AgentState Source #
Constructors
| ASForeground | |
| ASSuspending | |
| ASSuspended |
Instances
| Show AgentState Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentState -> ShowS show :: AgentState -> String showList :: [AgentState] -> ShowS | |
| Eq AgentState Source # | |
Defined in Simplex.Messaging.Agent.Client | |
data AgentLocks Source #
Constructors
| AgentLocks | |
Instances
| FromJSON AgentLocks Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser AgentLocks parseJSONList :: Value -> Parser [AgentLocks] omittedField :: Maybe AgentLocks | |
| ToJSON AgentLocks Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: AgentLocks -> Value toEncoding :: AgentLocks -> Encoding toJSONList :: [AgentLocks] -> Value toEncodingList :: [AgentLocks] -> Encoding omitField :: AgentLocks -> Bool | |
| Show AgentLocks Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentLocks -> ShowS show :: AgentLocks -> String showList :: [AgentLocks] -> ShowS | |
getAgentWorker :: (Ord k, Show k, AnyError e, MonadUnliftIO m) => String -> Bool -> AgentClient -> k -> TMap k Worker -> (Worker -> ExceptT e m ()) -> m Worker Source #
getAgentWorker' :: forall a k e m. (Ord k, Show k, AnyError e, MonadUnliftIO m) => (a -> Worker) -> (Worker -> STM a) -> String -> Bool -> AgentClient -> k -> TMap k a -> (a -> ExceptT e m ()) -> m a Source #
cancelWorker :: Worker -> IO () Source #
waitForWork :: MonadIO m => TMVar () -> m () Source #
hasWorkToDo :: Worker -> STM () Source #
hasWorkToDo' :: TMVar () -> STM () Source #
withWork :: AgentClient -> TMVar () -> (Connection -> IO (Either StoreError (Maybe a))) -> (a -> AM ()) -> AM () Source #
withWork_ :: (AnyStoreError e', MonadIO m) => AgentClient -> TMVar () -> ExceptT e m (Either e' (Maybe a)) -> (a -> ExceptT e m ()) -> ExceptT e m () Source #
withWorkItems :: (AnyStoreError e', MonadIO m) => AgentClient -> TMVar () -> ExceptT e m (Either e' [Either e' a]) -> (NonEmpty a -> ExceptT e m ()) -> ExceptT e m () Source #
agentOperations :: [AgentClient -> TVar AgentOpState] Source #
agentOperationBracket :: MonadUnliftIO m => AgentClient -> AgentOperation -> (AgentClient -> IO ()) -> m a -> m a Source #
waitUntilActive :: AgentClient -> IO () Source #
data UserNetworkInfo Source #
Constructors
| UserNetworkInfo | |
Fields
| |
Instances
| FromJSON UserNetworkInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser UserNetworkInfo parseJSONList :: Value -> Parser [UserNetworkInfo] omittedField :: Maybe UserNetworkInfo | |
| ToJSON UserNetworkInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: UserNetworkInfo -> Value toEncoding :: UserNetworkInfo -> Encoding toJSONList :: [UserNetworkInfo] -> Value toEncodingList :: [UserNetworkInfo] -> Encoding omitField :: UserNetworkInfo -> Bool | |
| Show UserNetworkInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> UserNetworkInfo -> ShowS show :: UserNetworkInfo -> String showList :: [UserNetworkInfo] -> ShowS | |
data UserNetworkType Source #
Constructors
| UNNone | |
| UNCellular | |
| UNWifi | |
| UNEthernet | |
| UNOther |
Instances
| FromJSON UserNetworkType Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser UserNetworkType parseJSONList :: Value -> Parser [UserNetworkType] omittedField :: Maybe UserNetworkType | |
| ToJSON UserNetworkType Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: UserNetworkType -> Value toEncoding :: UserNetworkType -> Encoding toJSONList :: [UserNetworkType] -> Value toEncodingList :: [UserNetworkType] -> Encoding omitField :: UserNetworkType -> Bool | |
| Show UserNetworkType Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> UserNetworkType -> ShowS show :: UserNetworkType -> String showList :: [UserNetworkType] -> ShowS | |
| Eq UserNetworkType Source # | |
Defined in Simplex.Messaging.Agent.Client Methods (==) :: UserNetworkType -> UserNetworkType -> Bool (/=) :: UserNetworkType -> UserNetworkType -> Bool | |
getFastNetworkConfig :: AgentClient -> IO NetworkConfig Source #
waitForUserNetwork :: AgentClient -> IO () Source #
isNetworkOnline :: AgentClient -> STM Bool Source #
isOnline :: UserNetworkInfo -> Bool Source #
throwWhenInactive :: AgentClient -> IO () Source #
throwWhenNoDelivery :: AgentClient -> SndQueue -> IO () Source #
beginAgentOperation :: AgentClient -> AgentOperation -> STM () Source #
endAgentOperation :: AgentClient -> AgentOperation -> STM () Source #
waitUntilForeground :: AgentClient -> IO () Source #
waitWhileSuspended :: AgentClient -> IO () Source #
suspendSendingAndDatabase :: AgentClient -> STM () Source #
suspendOperation :: AgentClient -> AgentOperation -> STM () -> STM () Source #
notifySuspended :: AgentClient -> STM () Source #
whenSuspending :: AgentClient -> STM () -> STM () Source #
withStore :: AgentClient -> (Connection -> IO (Either StoreError a)) -> AM a Source #
withStore' :: AgentClient -> (Connection -> IO a) -> AM a Source #
withStoreBatch :: Traversable t => AgentClient -> (Connection -> t (IO (Either AgentErrorType a))) -> AM' (t (Either AgentErrorType a)) Source #
withStoreBatch' :: Traversable t => AgentClient -> (Connection -> t (IO a)) -> AM' (t (Either AgentErrorType a)) Source #
unsafeWithStore :: AgentClient -> (Connection -> IO a) -> AM' a Source #
notifySub' :: forall e m. (AEntityI e, MonadIO m) => AgentClient -> ConnId -> AEvent e -> m () Source #
userServers :: forall p. (ProtocolTypeI p, UserProtocol p) => AgentClient -> TMap UserId (UserServers p) Source #
pickServer :: NonEmpty (Maybe OperatorId, ProtoServerWithAuth p) -> AM (ProtoServerWithAuth p) Source #
getNextServer :: (ProtocolTypeI p, UserProtocol p) => AgentClient -> UserId -> (UserServers p -> NonEmpty (Maybe OperatorId, ProtoServerWithAuth p)) -> [ProtocolServer p] -> AM (ProtoServerWithAuth p) Source #
withNextSrv :: (ProtocolTypeI p, UserProtocol p) => AgentClient -> UserId -> (UserServers p -> NonEmpty (Maybe OperatorId, ProtoServerWithAuth p)) -> TVar (Set TransportHost) -> [ProtocolServer p] -> (ProtoServerWithAuth p -> AM a) -> AM a Source #
incSMPServerStat :: AgentClient -> UserId -> SMPServer -> (AgentSMPServerStats -> TVar Int) -> STM () Source #
incSMPServerStat' :: AgentClient -> UserId -> SMPServer -> (AgentSMPServerStats -> TVar Int) -> Int -> STM () Source #
incXFTPServerStat :: AgentClient -> UserId -> XFTPServer -> (AgentXFTPServerStats -> TVar Int) -> STM () Source #
incXFTPServerStat' :: AgentClient -> UserId -> XFTPServer -> (AgentXFTPServerStats -> TVar Int) -> Int -> STM () Source #
incXFTPServerSizeStat :: AgentClient -> UserId -> XFTPServer -> (AgentXFTPServerStats -> TVar Int64) -> Int64 -> STM () Source #
incNtfServerStat :: AgentClient -> UserId -> NtfServer -> (AgentNtfServerStats -> TVar Int) -> STM () Source #
incNtfServerStat' :: AgentClient -> UserId -> NtfServer -> (AgentNtfServerStats -> TVar Int) -> Int -> STM () Source #
data AgentWorkersDetails Source #
Constructors
| AgentWorkersDetails | |
Fields
| |
Instances
| FromJSON AgentWorkersDetails Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser AgentWorkersDetails parseJSONList :: Value -> Parser [AgentWorkersDetails] omittedField :: Maybe AgentWorkersDetails | |
| ToJSON AgentWorkersDetails Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: AgentWorkersDetails -> Value toEncoding :: AgentWorkersDetails -> Encoding toJSONList :: [AgentWorkersDetails] -> Value toEncodingList :: [AgentWorkersDetails] -> Encoding omitField :: AgentWorkersDetails -> Bool | |
| Show AgentWorkersDetails Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentWorkersDetails -> ShowS show :: AgentWorkersDetails -> String showList :: [AgentWorkersDetails] -> ShowS | |
data AgentWorkersSummary Source #
Constructors
| AgentWorkersSummary | |
Fields
| |
Instances
| FromJSON AgentWorkersSummary Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser AgentWorkersSummary parseJSONList :: Value -> Parser [AgentWorkersSummary] omittedField :: Maybe AgentWorkersSummary | |
| ToJSON AgentWorkersSummary Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: AgentWorkersSummary -> Value toEncoding :: AgentWorkersSummary -> Encoding toJSONList :: [AgentWorkersSummary] -> Value toEncodingList :: [AgentWorkersSummary] -> Encoding omitField :: AgentWorkersSummary -> Bool | |
| Show AgentWorkersSummary Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentWorkersSummary -> ShowS show :: AgentWorkersSummary -> String showList :: [AgentWorkersSummary] -> ShowS | |
data AgentQueuesInfo Source #
Constructors
| AgentQueuesInfo | |
Fields
| |
Instances
| FromJSON AgentQueuesInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods parseJSON :: Value -> Parser AgentQueuesInfo parseJSONList :: Value -> Parser [AgentQueuesInfo] omittedField :: Maybe AgentQueuesInfo | |
| ToJSON AgentQueuesInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods toJSON :: AgentQueuesInfo -> Value toEncoding :: AgentQueuesInfo -> Encoding toJSONList :: [AgentQueuesInfo] -> Value toEncodingList :: [AgentQueuesInfo] -> Encoding omitField :: AgentQueuesInfo -> Bool | |
| Show AgentQueuesInfo Source # | |
Defined in Simplex.Messaging.Agent.Client Methods showsPrec :: Int -> AgentQueuesInfo -> ShowS show :: AgentQueuesInfo -> String showList :: [AgentQueuesInfo] -> ShowS | |
getAgentQueuesInfo :: AgentClient -> IO AgentQueuesInfo Source #
data ProxiedRelay Source #
Constructors
| ProxiedRelay | |
Fields
| |
data SMPConnectedClient Source #
Constructors
| SMPConnectedClient | |
Fields
| |