-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Read and write from appropriate persistent sql instances in replicated environments. -- -- Please see the README on GitHub at -- https://github.com/iand675/multipool#readme @package multipool-persistent @version 0.2.0.0 module Data.MultiPool.Persist.Sql class Monad m => MultiPoolBackend (m :: Type -> Type) backend where { type family Primaries backend :: Type; type family Replicas backend :: Type; type family LocalPrimary backend :: Type; type family LocalReplica backend :: Type; type family PrimaryConnection backend :: Type; type family ReplicaConnection backend :: Type; type family PrimaryIdentifier backend :: Type; type family ReplicaIdentifier backend :: Type; } runWriteAny :: MultiPoolBackend m backend => MultiPool backend -> ReaderT (PrimaryConnection backend) m a -> m a runWrite :: MultiPoolBackend m backend => MultiPool backend -> PrimaryIdentifier backend -> ReaderT (PrimaryConnection backend) m a -> m a runReadPrimary :: MultiPoolBackend m backend => MultiPool backend -> PrimaryIdentifier backend -> ReaderT (ReplicaConnection backend) m a -> m a runReadAnyPrimary :: MultiPoolBackend m backend => MultiPool backend -> ReaderT (ReplicaConnection backend) m a -> m a runReadAny :: MultiPoolBackend m backend => MultiPool backend -> ReaderT (ReplicaConnection backend) m a -> m a runRead :: MultiPoolBackend m backend => MultiPool backend -> ReplicaIdentifier backend -> ReaderT (ReplicaConnection backend) m a -> m a takePrimary :: MultiPoolBackend m backend => MultiPool backend -> PrimaryIdentifier backend -> m (PrimaryConnection backend, LocalPrimary backend) putPrimary :: MultiPoolBackend m backend => MultiPool backend -> LocalPrimary backend -> PrimaryConnection backend -> m () takeReplica :: MultiPoolBackend m backend => MultiPool backend -> ReplicaIdentifier backend -> m (ReplicaConnection backend, LocalReplica backend) putReplica :: MultiPoolBackend m backend => MultiPool backend -> LocalReplica backend -> ReplicaConnection backend -> m () unsafeRead :: ReaderT SqlBackend m a -> ReaderT SqlReadBackend m a instance Control.Monad.IO.Unlift.MonadUnliftIO m => Data.MultiPool.MultiPoolBackend m Database.Persist.Sql.Types.Internal.SqlBackend