Browse Source

Cleanup

master
Denis Tereshkin 9 years ago
parent
commit
54de94ada7
  1. 7
      src/Data/ATrade.hs
  2. 4
      src/QuoteSource/DataImport.hs
  3. 3
      src/QuoteSource/Server.hs

7
src/Data/ATrade.hs

@ -61,12 +61,11 @@ data Tick = Tick { @@ -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 @@ -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)

4
src/QuoteSource/DataImport.hs

@ -30,8 +30,8 @@ ddeCallback state topic table = do @@ -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

3
src/QuoteSource/Server.hs

@ -16,8 +16,7 @@ data QuoteSourceServer = QuoteSourceServerState { @@ -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

Loading…
Cancel
Save