libraft-0.5.0.0: Raft consensus algorithm

Safe HaskellNone
LanguageHaskell2010

Raft.Log.PostgreSQL

Synopsis

Documentation

newtype RaftPostgresT m a Source #

A single threaded PostgreSQL storage monad transformer

Constructors

RaftPostgresT 

Fields

Instances
MonadTrans RaftPostgresT Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

lift :: Monad m => m a -> RaftPostgresT m a #

MonadRaftChan v m => MonadRaftChan v (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftEventChan v (RaftPostgresT m) :: Type Source #

Monad m => Monad (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

(>>=) :: RaftPostgresT m a -> (a -> RaftPostgresT m b) -> RaftPostgresT m b #

(>>) :: RaftPostgresT m a -> RaftPostgresT m b -> RaftPostgresT m b #

return :: a -> RaftPostgresT m a #

fail :: String -> RaftPostgresT m a #

Functor m => Functor (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

fmap :: (a -> b) -> RaftPostgresT m a -> RaftPostgresT m b #

(<$) :: a -> RaftPostgresT m b -> RaftPostgresT m a #

MonadFail m => MonadFail (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

fail :: String -> RaftPostgresT m a #

Applicative m => Applicative (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

pure :: a -> RaftPostgresT m a #

(<*>) :: RaftPostgresT m (a -> b) -> RaftPostgresT m a -> RaftPostgresT m b #

liftA2 :: (a -> b -> c) -> RaftPostgresT m a -> RaftPostgresT m b -> RaftPostgresT m c #

(*>) :: RaftPostgresT m a -> RaftPostgresT m b -> RaftPostgresT m b #

(<*) :: RaftPostgresT m a -> RaftPostgresT m b -> RaftPostgresT m a #

Alternative m => Alternative (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

MonadPlus m => MonadPlus (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

MonadIO m => MonadIO (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

liftIO :: IO a -> RaftPostgresT m a #

MonadThrow m => MonadThrow (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

throwM :: Exception e => e -> RaftPostgresT m a #

MonadCatch m => MonadCatch (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

catch :: Exception e => RaftPostgresT m a -> (e -> RaftPostgresT m a) -> RaftPostgresT m a #

MonadMask m => MonadMask (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Methods

mask :: ((forall a. RaftPostgresT m a -> RaftPostgresT m a) -> RaftPostgresT m b) -> RaftPostgresT m b #

uninterruptibleMask :: ((forall a. RaftPostgresT m a -> RaftPostgresT m a) -> RaftPostgresT m b) -> RaftPostgresT m b #

generalBracket :: RaftPostgresT m a -> (a -> ExitCase b -> RaftPostgresT m c) -> (a -> RaftPostgresT m b) -> RaftPostgresT m (b, c) #

RaftPersist m => RaftPersist (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftPersistError (RaftPostgresT m) :: Type Source #

(MonadIO m, MonadRaftFork m) => MonadRaftFork (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftThreadId (RaftPostgresT m) :: Type Source #

(Typeable v, Serialize v, MonadIO m) => RaftReadLog (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftReadLogError (RaftPostgresT m) :: Type Source #

(Serialize v, MonadIO m) => RaftDeleteLog (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftDeleteLogError (RaftPostgresT m) :: Type Source #

(Serialize v, MonadIO m) => RaftWriteLog (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftWriteLogError (RaftPostgresT m) :: Type Source #

MonadIO m => RaftInitLog (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftInitLogError (RaftPostgresT m) :: Type Source #

(Monad m, RaftRecvRPC m v) => RaftRecvRPC (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftRecvRPCError (RaftPostgresT m) v :: Type Source #

(Monad m, RaftSendRPC m v) => RaftSendRPC (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

(Monad m, RaftRecvClient m v) => RaftRecvClient (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

Associated Types

type RaftRecvClientError (RaftPostgresT m) v :: Type Source #

RaftStateMachine m sm v => RaftStateMachine (RaftPostgresT m) sm v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

(Monad m, RaftSendClient m sm v) => RaftSendClient (RaftPostgresT m) sm v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftEventChan v (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftPersistError (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftReadLogError (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftDeleteLogError (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftWriteLogError (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftInitLogError (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftThreadId (RaftPostgresT m) Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftRecvRPCError (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

type RaftRecvClientError (RaftPostgresT m) v Source # 
Instance details

Defined in Raft.Log.PostgreSQL

runRaftPostgresT :: MonadIO m => ConnectInfo -> RaftPostgresT m a -> m a Source #

Run a RaftPostgresT computation by supplying the database connection info

runRaftPostgresM :: ConnectInfo -> RaftPostgresM a -> IO a Source #

setupDB :: ConnectInfo -> IO (Either PGError Connection) Source #

Create the libraft database to store all log entries