mtgoxapi-0.5: Network/MtGoxAPI/DepthStore/Adapter.hs
module Network.MtGoxAPI.DepthStore.Adapter
( updateDepthStoreFromMessage
, updateDepthStoreFromFullDepth
, skipFullDepthRequest
) where
import Network.MtGoxAPI.Types
import Network.MtGoxAPI.DepthStore
updateDepthStoreFromMessage :: DepthStoreHandle -> StreamMessage -> IO ()
updateDepthStoreFromMessage handle (du@DepthUpdateUSD {}) = do
let t = case duType du of
Ask -> DepthStoreAsk
Bid -> DepthStoreBid
updateDepthStore handle t (duVolume du) (duPrice du)
updateDepthStoreFromMessage _ _ = return ()
updateDepthStoreFromFullDepth :: DepthStoreHandle -> FullDepth -> IO ()
updateDepthStoreFromFullDepth handle depth = do
mapM_ (updateCmd DepthStoreAsk) (fdAsks depth)
mapM_ (updateCmd DepthStoreBid) (fdBids depth)
setHasFullDepth handle
where
updateCmd t (DepthEntry { deAmount = amount, dePrice = price }) =
updateDepthStore handle t amount price
skipFullDepthRequest :: DepthStoreHandle -> IO ()
skipFullDepthRequest = setHasFullDepth