| Copyright | (C) 2020 Martins Erts |
|---|---|
| License | MIT |
| Maintainer | Martins Erts <martins.erts@gmail.com> |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
BfHaskell.StreamingAPI.StreamingComm
Description
Synopsis
- data StreamingControlMessage
- data CommCentre = CommCentre {
- _ccMarketCache :: TVar MarketCache
- _ccOrderCache :: TVar OrderCache
- _ccUpdates :: TBQueue StreamingMessage
- _ccControl :: TBQueue StreamingControlMessage
- _ccConnection :: TVar (Maybe TLSConnection)
- _ccLastMessageId :: TVar Int
- ccMarketCache :: Lens' CommCentre (TVar MarketCache)
- ccOrderCache :: Lens' CommCentre (TVar OrderCache)
- ccUpdates :: Lens' CommCentre (TBQueue StreamingMessage)
- ccControl :: Lens' CommCentre (TBQueue StreamingControlMessage)
- ccConnection :: Lens' CommCentre (TVar (Maybe TLSConnection))
- ccLastMessageId :: Lens' CommCentre (TVar Int)
- newCommCentre :: MonadIO m => m CommCentre
- modifyMarketCache :: MonadIO m => CommCentre -> (MarketCache -> (MarketCache, a)) -> m a
- modifyOrderCache :: MonadIO m => CommCentre -> (OrderCache -> (OrderCache, a)) -> m a
- addClientUpdate :: MonadIO m => CommCentre -> StreamingMessage -> m ()
- addControlMessage :: MonadIO m => CommCentre -> StreamingControlMessage -> m ()
- readClientUpdate :: MonadIO m => CommCentre -> m StreamingMessage
- tryReadClientUpdate :: MonadIO m => CommCentre -> m (Maybe StreamingMessage)
- readControlMessage :: MonadIO m => CommCentre -> m StreamingControlMessage
- readConnection :: MonadIO m => CommCentre -> m (Maybe TLSConnection)
- storeConnection :: MonadIO m => CommCentre -> Maybe TLSConnection -> m ()
- getNextMessageId :: MonadIO m => CommCentre -> m Int
Documentation
data StreamingControlMessage Source #
Instances
| Show StreamingControlMessage Source # | |
Defined in BfHaskell.StreamingAPI.StreamingComm Methods showsPrec :: Int -> StreamingControlMessage -> ShowS # show :: StreamingControlMessage -> String # showList :: [StreamingControlMessage] -> ShowS # | |
data CommCentre Source #
Contains market and order caches and communication queues Used by both - stream processor and client
Constructors
| CommCentre | |
Fields
| |
ccMarketCache :: Lens' CommCentre (TVar MarketCache) Source #
ccOrderCache :: Lens' CommCentre (TVar OrderCache) Source #
ccUpdates :: Lens' CommCentre (TBQueue StreamingMessage) Source #
ccControl :: Lens' CommCentre (TBQueue StreamingControlMessage) Source #
ccConnection :: Lens' CommCentre (TVar (Maybe TLSConnection)) Source #
ccLastMessageId :: Lens' CommCentre (TVar Int) Source #
newCommCentre :: MonadIO m => m CommCentre Source #
Creates the default comm centre
modifyMarketCache :: MonadIO m => CommCentre -> (MarketCache -> (MarketCache, a)) -> m a Source #
Modify market cache
modifyOrderCache :: MonadIO m => CommCentre -> (OrderCache -> (OrderCache, a)) -> m a Source #
Modify market cache
addClientUpdate :: MonadIO m => CommCentre -> StreamingMessage -> m () Source #
Add client update to queue
addControlMessage :: MonadIO m => CommCentre -> StreamingControlMessage -> m () Source #
Add control message to queue
readClientUpdate :: MonadIO m => CommCentre -> m StreamingMessage Source #
tryReadClientUpdate :: MonadIO m => CommCentre -> m (Maybe StreamingMessage) Source #
readControlMessage :: MonadIO m => CommCentre -> m StreamingControlMessage Source #
readConnection :: MonadIO m => CommCentre -> m (Maybe TLSConnection) Source #
storeConnection :: MonadIO m => CommCentre -> Maybe TLSConnection -> m () Source #
getNextMessageId :: MonadIO m => CommCentre -> m Int Source #