| Copyright | (C) 2020 Martins Erts |
|---|---|
| License | MIT |
| Maintainer | Martins Erts <martins.erts@gmail.com> |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
BfHaskell.StreamingAPI.Types
Description
Synopsis
- crlf :: ByteString
- data StreamCache c k v = StreamCache {
- _scSubscriptionId :: Int
- _scClk :: Maybe Text
- _scInitialClk :: Maybe Text
- _scPt :: Maybe Integer
- _scHeartbeatMs :: Maybe Integer
- _scConflateMs :: Maybe Integer
- _scStatus :: Maybe Int
- _scStore :: Map k v
- _scSegments :: Seq [c]
- scSubscriptionId :: forall c k v. Lens' (StreamCache c k v) Int
- scClk :: forall c k v. Lens' (StreamCache c k v) (Maybe Text)
- scInitialClk :: forall c k v. Lens' (StreamCache c k v) (Maybe Text)
- scPt :: forall c k v. Lens' (StreamCache c k v) (Maybe Integer)
- scHeartbeatMs :: forall c k v. Lens' (StreamCache c k v) (Maybe Integer)
- scConflateMs :: forall c k v. Lens' (StreamCache c k v) (Maybe Integer)
- scStatus :: forall c k v. Lens' (StreamCache c k v) (Maybe Int)
- scStore :: forall c k v k v. Lens (StreamCache c k v) (StreamCache c k v) (Map k v) (Map k v)
- scSegments :: forall c k v c. Lens (StreamCache c k v) (StreamCache c k v) (Seq [c]) (Seq [c])
- class StreamMessageParser msg c | msg -> c where
- getMessageId :: msg -> Maybe Int
- getCt :: msg -> Maybe E'Ct
- getInitialClk :: msg -> Maybe Text
- getClk :: msg -> Maybe Text
- getHeartbeatMs :: msg -> Maybe Integer
- getPt :: msg -> Maybe Integer
- getConflateMs :: msg -> Maybe Integer
- getSegmentType :: msg -> Maybe E'SegmentType
- getStatus :: msg -> Maybe Int
- getChanges :: msg -> Maybe [c]
- data StreamingState = StreamingState {}
- ssStreamBuffer :: Lens' StreamingState ByteString
- ssConnectionId :: Lens' StreamingState (Maybe Text)
- ssAuthMsgId :: Lens' StreamingState (Maybe Int)
- data SMConnectionState
- type BetId = Text
- type MarketId = Text
- type Handicap = Maybe Double
- type SelectionId = Integer
- data StreamingMessage
- data MarketDetails = MarketDetails {}
- type MarketRunnerTable = Map MarketRunnerKey MarketRunner
- mdMarketDefinition :: Lens' MarketDetails (Maybe MarketDefinition)
- mdTv :: Lens' MarketDetails (Maybe Double)
- mdMarketRunners :: Lens' MarketDetails MarketRunnerTable
- data MarketRunner = MarketRunner {}
- type MarketRunnerKey = (SelectionId, Handicap)
- mrBackPrices :: Lens' MarketRunner LadderPrices
- mrLayPrices :: Lens' MarketRunner LadderPrices
- mrDispBackPrices :: Lens' MarketRunner LadderPrices
- mrDispLayPrices :: Lens' MarketRunner LadderPrices
- mrTv :: Lens' MarketRunner (Maybe Double)
- mrLtp :: Lens' MarketRunner (Maybe Double)
- data OrderRunner = OrderRunner {}
- type OrderRunnerTable = Map MarketRunnerKey OrderRunner
- orMatchedBacks :: Lens' OrderRunner PricePoints
- orMatchedLays :: Lens' OrderRunner PricePoints
- orOrders :: Lens' OrderRunner (Map BetId Order)
- data StreamingHandler m a where
- GetNextStreamMessage :: StreamingHandler m StreamingMessage
- TryGetNextStreamMessage :: StreamingHandler m (Maybe StreamingMessage)
- SubscribeToMarkets :: MarketFilter -> StreamingHandler m ()
- GetMarketCache :: StreamingHandler m (Map MarketId MarketDetails)
- SubscribeToOrders :: StreamingHandler m ()
- GetOrderCache :: StreamingHandler m (Map MarketId OrderRunnerTable)
- getNextStreamMessage :: Member StreamingHandler r => Sem r StreamingMessage
- tryGetNextStreamMessage :: Member StreamingHandler r => Sem r (Maybe StreamingMessage)
- subscribeToMarkets :: Member StreamingHandler r => MarketFilter -> Sem r ()
- getMarketCache :: Member StreamingHandler r => Sem r (Map MarketId MarketDetails)
- subscribeToOrders :: Member StreamingHandler r => Sem r ()
- getOrderCache :: Member StreamingHandler r => Sem r (Map MarketId OrderRunnerTable)
- data StreamingConnectionInfo = StreamingConnectionInfo {
- _sciHostName :: Text
- _sciPort :: Int
- sciHostName :: Lens' StreamingConnectionInfo Text
- sciPort :: Lens' StreamingConnectionInfo Int
Documentation
crlf :: ByteString Source #
Stream message delimiter
data StreamCache c k v Source #
Cache type used by market and order data caching
Constructors
| StreamCache | |
Fields
| |
Instances
| (Show k, Show v, Show c) => Show (StreamCache c k v) Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods showsPrec :: Int -> StreamCache c k v -> ShowS # show :: StreamCache c k v -> String # showList :: [StreamCache c k v] -> ShowS # | |
| Default (StreamCache c k v) Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods def :: StreamCache c k v | |
scSubscriptionId :: forall c k v. Lens' (StreamCache c k v) Int Source #
scInitialClk :: forall c k v. Lens' (StreamCache c k v) (Maybe Text) Source #
scHeartbeatMs :: forall c k v. Lens' (StreamCache c k v) (Maybe Integer) Source #
scConflateMs :: forall c k v. Lens' (StreamCache c k v) (Maybe Integer) Source #
scStore :: forall c k v k v. Lens (StreamCache c k v) (StreamCache c k v) (Map k v) (Map k v) Source #
scSegments :: forall c k v c. Lens (StreamCache c k v) (StreamCache c k v) (Seq [c]) (Seq [c]) Source #
class StreamMessageParser msg c | msg -> c where Source #
Describes market and order data parser capabilities
Methods
getMessageId :: msg -> Maybe Int Source #
getCt :: msg -> Maybe E'Ct Source #
getInitialClk :: msg -> Maybe Text Source #
getClk :: msg -> Maybe Text Source #
getHeartbeatMs :: msg -> Maybe Integer Source #
getPt :: msg -> Maybe Integer Source #
getConflateMs :: msg -> Maybe Integer Source #
getSegmentType :: msg -> Maybe E'SegmentType Source #
getStatus :: msg -> Maybe Int Source #
getChanges :: msg -> Maybe [c] Source #
Instances
data StreamingState Source #
State used internally by streaming API
Constructors
| StreamingState | |
Fields
| |
Instances
| Default StreamingState Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods | |
ssStreamBuffer :: Lens' StreamingState ByteString Source #
ssConnectionId :: Lens' StreamingState (Maybe Text) Source #
ssAuthMsgId :: Lens' StreamingState (Maybe Int) Source #
data SMConnectionState Source #
Streaming API connection state
Constructors
| SMCSConnected | |
| SMCSDisconnected |
Instances
| Eq SMConnectionState Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods (==) :: SMConnectionState -> SMConnectionState -> Bool # (/=) :: SMConnectionState -> SMConnectionState -> Bool # | |
| Show SMConnectionState Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods showsPrec :: Int -> SMConnectionState -> ShowS # show :: SMConnectionState -> String # showList :: [SMConnectionState] -> ShowS # | |
type SelectionId = Integer Source #
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 |
Instances
| Show StreamingMessage Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods showsPrec :: Int -> StreamingMessage -> ShowS # show :: StreamingMessage -> String # showList :: [StreamingMessage] -> ShowS # | |
data MarketDetails Source #
Market details
Constructors
| MarketDetails | |
Fields
| |
Instances
| Default MarketDetails Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods def :: MarketDetails | |
mdMarketDefinition :: Lens' MarketDetails (Maybe MarketDefinition) Source #
mdMarketRunners :: Lens' MarketDetails MarketRunnerTable Source #
data MarketRunner Source #
Market runner
Constructors
| MarketRunner | |
Fields
| |
Instances
| Show MarketRunner Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods showsPrec :: Int -> MarketRunner -> ShowS # show :: MarketRunner -> String # showList :: [MarketRunner] -> ShowS # | |
| Default MarketRunner Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods def :: MarketRunner | |
type MarketRunnerKey = (SelectionId, Handicap) Source #
mrBackPrices :: Lens' MarketRunner LadderPrices Source #
mrLayPrices :: Lens' MarketRunner LadderPrices Source #
mrDispBackPrices :: Lens' MarketRunner LadderPrices Source #
mrDispLayPrices :: Lens' MarketRunner LadderPrices Source #
data OrderRunner Source #
Order runner
Constructors
| OrderRunner | |
Fields
| |
Instances
| Show OrderRunner Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods showsPrec :: Int -> OrderRunner -> ShowS # show :: OrderRunner -> String # showList :: [OrderRunner] -> ShowS # | |
| Default OrderRunner Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods def :: OrderRunner | |
orMatchedBacks :: Lens' OrderRunner PricePoints Source #
orMatchedLays :: Lens' OrderRunner PricePoints Source #
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 |
| SubscribeToMarkets :: MarketFilter -> StreamingHandler m () | Subscribes to market stream specified by |
| 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 # | |
Defined in BfHaskell.StreamingAPI.Types | |
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.
data StreamingConnectionInfo Source #
Streaming API connection details
Constructors
| StreamingConnectionInfo | |
Fields
| |
Instances
| Show StreamingConnectionInfo Source # | |
Defined in BfHaskell.StreamingAPI.Types Methods showsPrec :: Int -> StreamingConnectionInfo -> ShowS # show :: StreamingConnectionInfo -> String # showList :: [StreamingConnectionInfo] -> ShowS # | |
sciHostName :: Lens' StreamingConnectionInfo Text Source #
sciPort :: Lens' StreamingConnectionInfo Int Source #