Browse Source

Refactoring

master
Denis Tereshkin 9 years ago
parent
commit
22343510f5
  1. 5
      src/ATrade/Broker/Client.hs
  2. 7
      src/ATrade/Broker/Server.hs

5
src/ATrade/Broker/Client.hs

@ -43,10 +43,9 @@ brokerClientThread :: Context -> T.Text -> MVar BrokerServerRequest -> MVar Brok @@ -43,10 +43,9 @@ brokerClientThread :: Context -> T.Text -> MVar BrokerServerRequest -> MVar Brok
brokerClientThread ctx ep cmd resp comp killMv = finally brokerClientThread' cleanup
where
cleanup = putMVar comp ()
brokerClientThread' = whileM_ (isNothing <$> tryReadMVar killMv) $ do
sock <- socket ctx Req
brokerClientThread' = whileM_ (isNothing <$> tryReadMVar killMv) $ withSocket ctx Req (\sock -> do
connect sock $ T.unpack ep
finally (brokerClientThread'' sock) (close sock)
finally (brokerClientThread'' sock) (close sock))
brokerClientThread'' sock = whileM_ (isNothing <$> tryReadMVar killMv) $ do
request <- takeMVar cmd
send sock [] (BL.toStrict $ encode request)

7
src/ATrade/Broker/Server.hs

@ -135,7 +135,8 @@ brokerServerThread state = finally brokerServerThread' cleanup @@ -135,7 +135,8 @@ brokerServerThread state = finally brokerServerThread' cleanup
handleMessage peerId request = do
bros <- brokers <$> readIORef state
case request of
RequestSubmitOrder sqnum order ->
RequestSubmitOrder sqnum order -> do
debugM "Broker.Server" $ "Request: submit order:" ++ show request
case findBrokerForAccount (orderAccountId order) bros of
Just bro -> do
oid <- nextOrderId
@ -145,7 +146,9 @@ brokerServerThread state = finally brokerServerThread' cleanup @@ -145,7 +146,9 @@ brokerServerThread state = finally brokerServerThread' cleanup
submitOrder bro order { orderId = oid }
return $ ResponseOrderSubmitted oid
Nothing -> return $ ResponseError "Unknown account"
Nothing -> do
debugM "Broker.Server" $ "Unknown account: " ++ T.unpack (orderAccountId order)
return $ ResponseError "Unknown account"
RequestCancelOrder sqnum oid -> do
m <- orderToBroker <$> readIORef state
case M.lookup oid m of

Loading…
Cancel
Save