aboutsummaryrefslogtreecommitdiff
path: root/hsm-dummy-poller/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'hsm-dummy-poller/Main.hs')
-rw-r--r--hsm-dummy-poller/Main.hs20
1 files changed, 11 insertions, 9 deletions
diff --git a/hsm-dummy-poller/Main.hs b/hsm-dummy-poller/Main.hs
index bc60c7c..8e6908b 100644
--- a/hsm-dummy-poller/Main.hs
+++ b/hsm-dummy-poller/Main.hs
@@ -23,7 +23,7 @@ data Env = Env
{ name :: Text
, subEps :: [Text]
, topics :: [Text]
- , period :: Int
+ , period :: Word
}
$(deriveFromYaml ''Env)
@@ -32,16 +32,18 @@ handle ::
(Concurrent :> es, Log :> es, Reader Env :> es)
=> S.Stream (Eff es) [ByteString]
-> Eff es ()
-handle =
- S.fold S.drain . S.mapM (\ps -> asks period >>= threadDelay >> handler ps)
+handle = S.fold S.drain . S.mapM handler
where
receiverDomain = "receiver"
- handler [] = localDomain receiverDomain $ logInfo_ "No pulse received yet"
- handler ps =
- forM_ ps $ \p ->
- localDomain receiverDomain
- $ logInfo_
- $ "Received pulse #" <> pack (show $ body @Int p)
+ delay = asks period >>= threadDelay . fromIntegral
+ handler [] = do
+ localDomain receiverDomain $ logInfo_ "No pulse received yet"
+ delay
+ handler ps = do
+ localDomain receiverDomain
+ $ forM_ ps
+ $ logInfo_ . mappend "Received pulse #" . pack . show . body @Word
+ delay
-- Dummy poller service:
-- Proof of concept. Polls for "pulses" through ZMQ at a set interval and