{-# LANGUAGE OverloadedStrings #-} import System.Environment import Control.Concurrent import Network.HTTP.Types import Network.Wai import Network.Wai.Handler.Warp import Network.Helics import Network.Helics.Wai import qualified Data.ByteString.Char8 as S8 main :: IO () main = do key:_ <- getArgs withHelics def { licenseKey = S8.pack key, appName = "Test3" } $ do _ <- forkIO $ sampler 20 run 3000 $ helics def app app :: Application app req send = case pathInfo req of [] -> threadDelay (10^(5::Int)) >> send (responseLBS status200 [] "root") ["foo"] -> threadDelay (2 * 10^(5::Int)) >> send (responseLBS status200 [] "foo") ["bar"] -> datastoreSegment autoScope (DatastoreSegment "bar" SELECT "SELECT * FROM bar WHERE key = 'baz'" "select bars" Nothing) (threadDelay (3 * 10^(5::Int)) >> send (responseLBS status200 [] "bar")) (transactionId req) _ -> send (responseLBS status404 [] "not found")