packages feed

memcache-haskell-0.0.10: sample/sample-client.hs

import Control.Exception
import Control.Monad.Trans.Resource (allocate, release, runResourceT)
import Control.Monad.IO.Class
import Network.Memcache
import System.Environment


main :: IO ()
main = do
  args <- getArgs
  case args of
    [] -> main' "127.0.0.1:11211"
    (nk:_) -> main' nk

main' :: Nodekey -> IO ()
main' nodekey = runResourceT $ do
  (rkeyClient , client) <- flip allocate closeClient $ do
    c <- openClient nodekey
    case c of
      Just client -> return (client)
      Nothing -> liftIO $ do
        throwIO (userError "could not open.")
  liftIO $ do
    ret <- set client "key" "foo"
    print ret
    ret' <- get client "key" :: IO (Maybe String)
    print ret'
  release rkeyClient