Browse Source

cleanup: remove old TickTable

master
Denis Tereshkin 3 years ago
parent
commit
9699fed0d5
  1. 1
      src/Main.hs
  2. 46
      src/TickTable.hs
  3. 1
      transaq-connector.cabal

1
src/Main.hs

@ -26,7 +26,6 @@ import Prelude hiding (log)
import System.IO (Handle, IOMode (AppendMode), import System.IO (Handle, IOMode (AppendMode),
withFile) withFile)
import System.ZMQ4 (withContext) import System.ZMQ4 (withContext)
import TickTable (mkTickTable)
import qualified TXMLConnector as Connector import qualified TXMLConnector as Connector
import Version (transaqConnectorVersionText) import Version (transaqConnectorVersionText)

46
src/TickTable.hs

@ -1,46 +0,0 @@
module TickTable (
mkTickTable,
TickKey(..),
getTick,
TickTableH
) where
import ATrade.Types (DataType (..), Tick (..),
TickerId (..))
import Control.Concurrent (forkIO)
import Control.Concurrent.BoundedChan (BoundedChan, readChan)
import Control.Concurrent.MVar (newEmptyMVar)
import Control.Concurrent.MVar (readMVar)
import Control.Concurrent.STM (TVar, atomically, modifyTVar',
newTVarIO, readTVarIO)
import Control.Monad (forever, void)
import Control.Monad.Extra (whileM)
import Data.IORef (readIORef)
import qualified Data.Map.Strict as M
import qualified Data.Text as T
import System.ZMQ4 (Context)
data TickKey = TickKey TickerId DataType
deriving (Show, Ord, Eq)
data TickTable = TickTable {
ticks :: !(M.Map TickKey Tick)
}
type TickTableH = TVar TickTable
mkTickTable :: BoundedChan Tick -> IO (TVar TickTable)
mkTickTable chan = do
shutdownMVar <- newEmptyMVar
r <- newTVarIO TickTable { ticks = M.empty }
void $ forkIO $ tickTableThread r shutdownMVar
return r
where
tickTableThread r shutdownMVar = whileM $ do
t <- readChan chan
atomically $ modifyTVar' r (\s -> s { ticks = M.insert (TickKey (security t) (datatype t)) t $! ticks s })
readMVar shutdownMVar
getTick :: TickTableH -> TickKey -> IO (Maybe Tick)
getTick r key = M.lookup key . ticks <$> readTVarIO r

1
transaq-connector.cabal

@ -18,7 +18,6 @@ executable transaq-connector
hs-source-dirs: src hs-source-dirs: src
main-is: Main.hs main-is: Main.hs
other-modules: Config other-modules: Config
, TickTable
, Transaq , Transaq
, Version , Version
, TXML , TXML

Loading…
Cancel
Save