diff --git a/src/Main.hs b/src/Main.hs index 8215da3..aed8fe2 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -26,7 +26,6 @@ import Prelude hiding (log) import System.IO (Handle, IOMode (AppendMode), withFile) import System.ZMQ4 (withContext) -import TickTable (mkTickTable) import qualified TXMLConnector as Connector import Version (transaqConnectorVersionText) diff --git a/src/TickTable.hs b/src/TickTable.hs deleted file mode 100644 index e3335cd..0000000 --- a/src/TickTable.hs +++ /dev/null @@ -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 - diff --git a/transaq-connector.cabal b/transaq-connector.cabal index 3dffdb1..5a70638 100644 --- a/transaq-connector.cabal +++ b/transaq-connector.cabal @@ -18,7 +18,6 @@ executable transaq-connector hs-source-dirs: src main-is: Main.hs other-modules: Config - , TickTable , Transaq , Version , TXML