| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Discord.Internal.Gateway.EventLoop
Description
Provides logic code for interacting with the Discord websocket gateway. Realistically, this is probably lower level than most people will need
Synopsis
- data GatewayException
- data ConnLoopState
- connect :: (Connection -> IO a) -> IO a
- type DiscordHandleGateway = (Chan (Either GatewayException Event), Chan GatewaySendable)
- connectionLoop :: Auth -> DiscordHandleGateway -> Chan Text -> IO ()
- getPayloadTimeout :: Connection -> Int -> Chan Text -> IO (Either ConnectionException GatewayReceivable)
- getPayload :: Connection -> Chan Text -> IO (Either ConnectionException GatewayReceivable)
- heartbeat :: Chan GatewaySendable -> Int -> IORef Integer -> IO ()
- setSequence :: IORef Integer -> Integer -> IO ()
- data ConnectionData = ConnData {}
- startEventStream :: ConnectionData -> Int -> Integer -> Chan GatewaySendable -> Chan Text -> IO ConnLoopState
- eventStream :: ConnectionData -> IORef Integer -> Int -> Chan GatewaySendable -> Chan Text -> IO ConnLoopState
- data Sendables = Sendables {}
- sendableLoop :: Connection -> Sendables -> IO ()
Documentation
data GatewayException Source #
Constructors
| GatewayExceptionCouldNotConnect Text | |
| GatewayExceptionEventParseError Text Text | |
| GatewayExceptionUnexpected GatewayReceivable Text | |
| GatewayExceptionConnection ConnectionException Text |
Instances
| Show GatewayException Source # | |
Defined in Discord.Internal.Gateway.EventLoop Methods showsPrec :: Int -> GatewayException -> ShowS # show :: GatewayException -> String # showList :: [GatewayException] -> ShowS # | |
data ConnLoopState Source #
Constructors
| ConnStart | |
| ConnClosed | |
| ConnReconnect Auth Text Integer |
Instances
| Show ConnLoopState Source # | |
Defined in Discord.Internal.Gateway.EventLoop Methods showsPrec :: Int -> ConnLoopState -> ShowS # show :: ConnLoopState -> String # showList :: [ConnLoopState] -> ShowS # | |
connect :: (Connection -> IO a) -> IO a Source #
Securely run a connection IO action. Send a close on exception
type DiscordHandleGateway = (Chan (Either GatewayException Event), Chan GatewaySendable) Source #
connectionLoop :: Auth -> DiscordHandleGateway -> Chan Text -> IO () Source #
getPayloadTimeout :: Connection -> Int -> Chan Text -> IO (Either ConnectionException GatewayReceivable) Source #
getPayload :: Connection -> Chan Text -> IO (Either ConnectionException GatewayReceivable) Source #
data ConnectionData Source #
What we need to start an event stream
Constructors
| ConnData | |
Fields
| |
startEventStream :: ConnectionData -> Int -> Integer -> Chan GatewaySendable -> Chan Text -> IO ConnLoopState Source #
eventStream :: ConnectionData -> IORef Integer -> Int -> Chan GatewaySendable -> Chan Text -> IO ConnLoopState Source #
Constructors
| Sendables | |
Fields
| |
sendableLoop :: Connection -> Sendables -> IO () Source #