snaplet-sedna-0.0.1.0: src/Snap/Snaplet/Sedna/Types.hs
module Snap.Snaplet.Sedna.Types where
import Prelude hiding (catch)
import Control.Monad.IO.Control
import Control.Monad.State
import Database.SednaTypes
import Database.SednaBindings
import Data.Pool
class ConnSrc s where
withConn :: (MonadControlIO m) => s SednaConnection -> (SednaConnection -> m b) -> m b
closeConn :: (MonadControlIO m) => s SednaConnection -> SednaConnection -> m ()
instance ConnSrc Pool where
withConn = withResource
closeConn _ _ = return ()
instance ConnSrc IO where
withConn conn fn = do
conn' <- liftIO conn
fn conn'
closeConn _ = liftIO . sednaCloseConnection