diff --git a/src/Data/ATrade.hs b/src/Data/ATrade.hs index 71d4010..5df7d73 100644 --- a/src/Data/ATrade.hs +++ b/src/Data/ATrade.hs @@ -61,12 +61,11 @@ data Tick = Tick { } deriving (Show, Eq) serializeTick :: Tick -> [ByteString] -serializeTick tick = do - header : [rawdata] +serializeTick tick = header : [rawdata] where header = B.fromChunks [ E.encodeUtf8 . T.pack $ security tick ] rawdata = toLazyByteString $ mconcat [ - putWord32le $ fromIntegral 1, + putWord32le 1, putWord64le $ fromIntegral . toSeconds . timestamp $ tick, putWord32le $ fromIntegral . truncate . (* 1000000) . fractionalPart . utctDayTime . timestamp $ tick, putWord32le $ fromIntegral . fromEnum . datatype $ tick, @@ -74,5 +73,5 @@ serializeTick tick = do putWord32le $ truncate . (* 1000000000) . fractionalPart $ value tick, putWord32le $ fromIntegral $ volume tick ] fractionalPart :: (RealFrac a) => a -> a - fractionalPart x = x - (fromIntegral (floor x)) + fractionalPart x = x - fromIntegral (floor x) diff --git a/src/QuoteSource/DataImport.hs b/src/QuoteSource/DataImport.hs index 2859341..79a9efa 100644 --- a/src/QuoteSource/DataImport.hs +++ b/src/QuoteSource/DataImport.hs @@ -30,8 +30,8 @@ ddeCallback state topic table = do Just (MkTableParser myParser) -> do timeHint <- getCurrentTime let stateWithTimeHint = giveTimestampHint myParser timeHint - let (ticks, newState) = runState (parseXlTable table) $ stateWithTimeHint - modifyIORef (parsers state) (\m -> M.insert topic (MkTableParser newState) m) + let (ticks, newState) = runState (parseXlTable table) stateWithTimeHint + modifyIORef (parsers state) (M.insert topic (MkTableParser newState)) writeList2Chan (tickChannel state) ticks return True _ -> return False diff --git a/src/QuoteSource/Server.hs b/src/QuoteSource/Server.hs index e47f986..53e9f2f 100644 --- a/src/QuoteSource/Server.hs +++ b/src/QuoteSource/Server.hs @@ -16,8 +16,7 @@ data QuoteSourceServer = QuoteSourceServerState { } serverThread :: QuoteSourceServer -> IO () -serverThread state = do - finally serverThread' cleanup +serverThread state = finally serverThread' cleanup where cleanup = close $ outSocket state