bf-haskell-0.1.0.0: Betfair Exchange API

Copyright(C) 2020 Martins Erts
LicenseMIT
MaintainerMartins Erts <martins.erts@gmail.com>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

BfHaskell.DSL.Streaming

Contents

Description

 
Synopsis

Effect

data StreamingHandler m a where Source #

Streaming DSL

Constructors

GetNextStreamMessage :: StreamingHandler m StreamingMessage

Gets next message from queue. Blocks if there are no messages.

TryGetNextStreamMessage :: StreamingHandler m (Maybe StreamingMessage)

Tries to get next message from queue. Returns Nothing, if queue is empty.

SubscribeToMarkets :: MarketFilter -> StreamingHandler m ()

Subscribes to market stream specified by MarketFilter. There is only one one current market subscription. Following calls overwrite previous subscriptions.

GetMarketCache :: StreamingHandler m (Map MarketId MarketDetails)

Retrieves market cache.

SubscribeToOrders :: StreamingHandler m ()

Subscribes to order stream.

GetOrderCache :: StreamingHandler m (Map MarketId OrderRunnerTable)

Retrieves order cache.

Instances
type DefiningModule (StreamingHandler :: k -> Type -> Type) Source # 
Instance details

Defined in BfHaskell.StreamingAPI.Types

type DefiningModule (StreamingHandler :: k -> Type -> Type) = "BfHaskell.StreamingAPI.Types"

Actions

getNextStreamMessage :: Member StreamingHandler r => Sem r StreamingMessage Source #

Gets next message from queue. Blocks if there are no messages.

tryGetNextStreamMessage :: Member StreamingHandler r => Sem r (Maybe StreamingMessage) Source #

Tries to get next message from queue. Returns Nothing, if queue is empty.

subscribeToMarkets :: Member StreamingHandler r => MarketFilter -> Sem r () Source #

Subscribes to market stream specified by MarketFilter. There is only one one current market subscription. Following calls overwrite previous subscriptions.

getMarketCache :: Member StreamingHandler r => Sem r (Map MarketId MarketDetails) Source #

Retrieves market cache.

subscribeToOrders :: Member StreamingHandler r => Sem r () Source #

Subscribes to order stream.

getOrderCache :: Member StreamingHandler r => Sem r (Map MarketId OrderRunnerTable) Source #

Retrieves order cache.

Interpretations

runStreamingHandler Source #

Arguments

:: Members '[Embed IO, Output LogMessage, Async, Resource, LoginHandler, Error String] r 
=> StreamingConnectionInfo

Streaming configuration

-> InterpreterFor StreamingHandler r 

Runs StreamingHandler interpreter

Helpers

mkMarketListFilter :: [MarketId] -> MarketFilter Source #

Helper to create market filter containing list for market ids

Data types

data MarketDetails Source #

Market details

Instances
Default MarketDetails Source # 
Instance details

Defined in BfHaskell.StreamingAPI.Types

Methods

def :: MarketDetails

data MarketRunner Source #

Market runner

Constructors

MarketRunner 

Fields

Instances
Show MarketRunner Source # 
Instance details

Defined in BfHaskell.StreamingAPI.Types

Default MarketRunner Source # 
Instance details

Defined in BfHaskell.StreamingAPI.Types

Methods

def :: MarketRunner

data StreamingConnectionInfo Source #

Streaming API connection details

Constructors

StreamingConnectionInfo 

Fields

data StreamingMessage Source #

Streaming update message to be received by client

Constructors

SMConnectionStateChanged SMConnectionState

Connection state changed

SMMarketUpdate [MarketId]

Market data updated

SMOrderUpdate [MarketId]

Order data updated

data OrderRunner Source #

Order runner

Constructors

OrderRunner 

Fields

Instances
Show OrderRunner Source # 
Instance details

Defined in BfHaskell.StreamingAPI.Types

Default OrderRunner Source # 
Instance details

Defined in BfHaskell.StreamingAPI.Types

Methods

def :: OrderRunner

Lens