acid-state-0.7.10: examples/RemoteServer.hs
{-# LANGUAGE DeriveDataTypeable, TypeFamilies, TemplateHaskell #-}
module Main (main) where
import Data.Acid
import Data.Acid.Local
import Data.Acid.Remote (acidServer)
import Control.Exception (bracket)
import Data.Typeable
import Network
import RemoteCommon
-- open a server on port 8080
main :: IO ()
main =
bracket
(do putStrLn "Loading checkpoint"
mkAcid <- prepareLocalState $ StressState 0
putStrLn "Waiting for lock/replaying events"
acid <- mkAcid
putStrLn "Done."
return acid)
closeAcidState
(\s -> acidServer s (PortNumber 8080))