{-# LANGUAGE OverloadedStrings, ScopedTypeVariables #-}
import Data.Conduit.Pool (Pool, createPool)
import Network.Riak (defaultClient, connect, disconnect,
Client(port), Connection)
import Control.Exception (assert)
import Control.Monad (mapM)
import System.ZMQ as ZMQ
import System.IO
import qualified Data.ByteString.Lazy as BW
import Data.Maybe
import Network.Riak.MontageClient
import Utils (putDecimal, generateUI)
threadCount :: Int
threadCount = 1
main :: IO ()
main = do
ctx <- ZMQ.init 1
-- Montage ZeroMQ
montageZpool <- createPool (do
s <- ZMQ.socket ctx Req
ZMQ.connect s "tcp://localhost:7078"
return s
) ZMQ.close 1 5 threadCount
let (bucket, key) = ("u-info", 1) :: (BW.ByteString, Int)
let d = generateUI (key,1)
mr <- montagePut montageZpool d
assert ((data' $ fromMaybe (error "failed put") mr) == data' d) $ return ()
-- test delete
montageDelete montageZpool bucket (putDecimal key)
mr <- montageGet montageZpool bucket (putDecimal key)
assert (isNothing mr) $ return ()
hPutStrLn stdout "\nsuccessfully deleted\n"