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
brokerClientThread ctx ep cmd resp comp killMv = finally brokerClientThread' cleanup brokerClientThread ctx ep cmd resp comp killMv = finally brokerClientThread' cleanup
where where
cleanup = putMVar comp () cleanup = putMVar comp ()
brokerClientThread' = whileM_ (isNothing <$> tryReadMVar killMv) $ do brokerClientThread' = whileM_ (isNothing <$> tryReadMVar killMv) $ withSocket ctx Req (\sock -> do
sock <- socket ctx Req
connect sock $ T.unpack ep connect sock $ T.unpack ep
finally (brokerClientThread'' sock) (close sock) finally (brokerClientThread'' sock) (close sock))
brokerClientThread'' sock = whileM_ (isNothing <$> tryReadMVar killMv) $ do brokerClientThread'' sock = whileM_ (isNothing <$> tryReadMVar killMv) $ do
request <- takeMVar cmd request <- takeMVar cmd
send sock [] (BL.toStrict $ encode request) send sock [] (BL.toStrict $ encode request)

7
src/ATrade/Broker/Server.hs

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

Loading…
Cancel
Save