packages feed

snaplet-amqp 1.0.1.2 → 1.1.0.0

raw patch · 3 files changed

+18/−13 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Snap.Snaplet.AMQP: mkAmqpPool :: MonadIO m => Config -> m AmqpPool
+ Snap.Snaplet.AMQP: mkAmqpPool :: MonadIO m => Config -> m (AmqpPool, Connection)
- Snap.Snaplet.AMQP: runAmqp :: HasAmqpPool m => (Connection -> Channel -> IO ()) -> m ()
+ Snap.Snaplet.AMQP: runAmqp :: HasAmqpPool m => (Channel -> IO ()) -> m ()

Files

README.org view
@@ -51,7 +51,7 @@           exchange'   = "myExchange"           routingKey  = "myKey" -      _ <- runAmqp $ \_ chan -> do+      _ <- runAmqp $ \chan -> do           _ <- declareQueue chan newQueue {queueName = serverQueue}            declareExchange chan newExchange { exchangeName = exchange'
snaplet-amqp.cabal view
@@ -1,5 +1,5 @@ Name:                snaplet-amqp-Version:             1.0.1.2+Version:             1.1.0.0 Synopsis:            Snap framework snaplet for the AMQP library Homepage:            https://github.com/ixmatus/snaplet-amqp License:             BSD3@@ -12,8 +12,8 @@ Stability:           stable Bug-reports:         https://github.com/ixmatus/snaplet-amqp/issues Package-url:         http://hackage.haskell.org/package/snaplet-amqp-Tested-with:         GHC == 7.6.3-Cabal-version:       >=1.14.0+Tested-with:         GHC == 7.6.3, GHC == 7.8.3+Cabal-version:       >=1.10  description: 
src/Snap/Snaplet/AMQP.hs view
@@ -24,7 +24,7 @@ import           Snap.Snaplet  --------------------------------------------------------------------------------type AmqpPool = Pool Connection+type AmqpPool = Pool Channel  newtype AmqpState = AmqpState { amqpPool :: AmqpPool } @@ -41,9 +41,11 @@ -- | Initialize the AMQP Snaplet. initAMQP :: SnapletInit b AmqpState initAMQP = makeSnaplet "amqp" description datadir $ do-    p <- mkSnapletAmqpPool+    (p, c) <- mkSnapletAmqpPool +    -- Cleanup     onUnload (destroyAllResources p)+    onUnload (closeConnection c)      return $ AmqpState p @@ -53,14 +55,14 @@  ------------------------------------------------------------------------------- -- | Constructs a connection in a snaplet context.-mkSnapletAmqpPool :: (MonadIO (m b v), MonadSnaplet m) => m b v AmqpPool+mkSnapletAmqpPool :: (MonadIO (m b v), MonadSnaplet m) => m b v (AmqpPool, Connection) mkSnapletAmqpPool = do   conf <- getSnapletUserConfig   mkAmqpPool conf  ------------------------------------------------------------------------------- -- | Constructs a connect from Config.-mkAmqpPool :: MonadIO m => Config -> m AmqpPool+mkAmqpPool :: MonadIO m => Config -> m (AmqpPool, Connection) mkAmqpPool conf = do   host  <- liftIO $ require conf "host"   port  <- liftIO $ require conf "port"@@ -73,13 +75,16 @@                    , coVHost   = vhost                    , coAuth    = [plain login pass]                    }-  return =<< liftIO $ createPool (openConnection'' connOpts) closeConnection 1 30 10 +  conn <- liftIO $ openConnection'' connOpts+  chp  <- liftIO $ createPool (openChannel conn) closeChannel 1 30 10++  return (chp, conn)+ ------------------------------------------------------------------------------- -- | Runs an AMQP action in any monad with a HasAmqpPoolonn instance.-runAmqp :: (HasAmqpPool m) => (Connection -> Channel -> IO ()) -> m ()+runAmqp :: (HasAmqpPool m) => (Channel -> IO ()) -> m () runAmqp action = do     pool <- getAmqpPool-    liftIO $ withResource pool $! \conn -> do-        chan <- liftIO $ openChannel conn-        liftIO $! action conn chan+    liftIO $ withResource pool $! \chan -> do+        liftIO $! action chan