nakadi-client-0.7.0.0: Client library for the Nakadi Event Broker

Copyright(c) Moritz Clasmeier 2017 2018
LicenseBSD3
Maintainermtesseract@silverratio.net
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Network.Nakadi.Types

Description

This module provides the Nakadi API Types.

Synopsis

Documentation

data CommitStrategy Source #

This type encodes the supported strategies for subscription cursor committing.

Constructors

CommitSync

This strategy synchronously commits every cursor.

CommitAsync CommitBufferingStrategy

This strategy sends cursors to be committed to a dedicated thread responsible for committing them. Cursors are commited one by one, without special buffering logic.

Instances
HasNakadiCommitStrategy (Config m) CommitStrategy 
Instance details

Defined in Network.Nakadi.Internal.Lenses

data CommitBufferingStrategy Source #

This type encodes the supported buffering strategies for asynchronous subscription cursor committing.

Constructors

CommitNoBuffer

No buffering at all.

CommitTimeBuffer Int32

Buffer for the specified duration, given in milliseconds.

CommitSmartBuffer

Buffer for a fixed duration, but committing cursors immediately if the number of events processed since the last commit crosses a threshold derived from maxUncommittedEvents.

class (Monad b, Monad m) => MonadNakadiBase b m where Source #

Minimal complete definition

Nothing

Methods

nakadiLiftBase :: b a -> m a Source #

nakadiLiftBase :: (MonadNakadiBase b n, MonadTrans t, m ~ t n) => b a -> m a Source #

Instances
MonadNakadiBase IO IO Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: IO a -> IO a Source #

MonadNakadiBase b m => MonadNakadiBase b (ResourceT m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> ResourceT m a Source #

MonadNakadiBase b m => MonadNakadiBase b (NoLoggingT m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> NoLoggingT m a Source #

MonadNakadiBase b m => MonadNakadiBase b (LoggingT m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> LoggingT m a Source #

MonadNakadiBase b m => MonadNakadiBase b (StateT s m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> StateT s m a Source #

MonadNakadiBase b m => MonadNakadiBase b (StateT s m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> StateT s m a Source #

(MonadNakadiBase b m, Monoid w) => MonadNakadiBase b (WriterT w m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> WriterT w m a Source #

(MonadNakadiBase b m, Monoid w) => MonadNakadiBase b (WriterT w m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> WriterT w m a Source #

MonadNakadiBase b m => MonadNakadiBase b (NakadiT b m) Source #

MonadNakadiBase

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiLiftBase :: b a -> NakadiT b m a Source #

MonadNakadiBase b m => MonadNakadiBase b (ReaderT r m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: b a -> ReaderT r m a Source #

Monad m => MonadNakadiBase (LoggingT (ReaderT r m)) (LoggingT (ReaderT r m)) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: LoggingT (ReaderT r m) a -> LoggingT (ReaderT r m) a Source #

Monad m => MonadNakadiBase (NakadiBaseT m) (NakadiBaseT m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Monad m => MonadNakadiBase (ReaderT r m) (ReaderT r m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types.Base

Methods

nakadiLiftBase :: ReaderT r m a -> ReaderT r m a Source #

class (MonadNakadiBase b m, MonadThrow b, MonadMask b, MonadThrow m, MonadCatch m) => MonadNakadi b m | m -> b where Source #

The MonadNakadi typeclass is implemented by monads in which Nakadi can be called. The first parameter (b) denotes the `base monad`. This is the monad in which the core actions are run. This includes executing (non-streaming) HTTP requests and running user-provided callbacks. The typeclass provides methods for * retrieving the Nakadi configuration * locally changing the Nakadi configuration * extracting specific Nakadi configuration values * lifting actions from the The MonadNakadi typeclass is modelled closely after MonadReader.

Minimal complete definition

Nothing

Methods

nakadiAsk :: m (Config b) Source #

nakadiAsk :: (MonadNakadi b n, MonadTrans t, m ~ t n) => m (Config b) Source #

Instances
MonadNakadi IO IO Source # 
Instance details

Defined in Network.Nakadi.Internal.Types

MonadNakadi b m => MonadNakadi b (ResourceT m) Source #

ResourceT.

Instance details

Defined in Network.Nakadi.Internal.Types

MonadNakadi b m => MonadNakadi b (NoLoggingT m) Source #

NoLoggingT

Instance details

Defined in Network.Nakadi.Internal.Types

MonadNakadi b m => MonadNakadi b (LoggingT m) Source #

LoggingT

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: LoggingT m (Config b) Source #

MonadNakadi b m => MonadNakadi b (StateT s m) Source #

StateT (lazy)

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: StateT s m (Config b) Source #

MonadNakadi b m => MonadNakadi b (StateT s m) Source #

StateT (strict)

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: StateT s m (Config b) Source #

(MonadNakadi b m, Monoid w) => MonadNakadi b (WriterT w m) Source #

WriterT (strict)

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: WriterT w m (Config b) Source #

(MonadNakadi b m, Monoid w) => MonadNakadi b (WriterT w m) Source #

WriterT (lazy)

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: WriterT w m (Config b) Source #

(MonadCatch m, MonadMask b, MonadNakadiBase b (NakadiT b m)) => MonadNakadi b (NakadiT b m) Source #

NakadiT

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: NakadiT b m (Config b) Source #

(MonadMask b, MonadCatch m, MonadNakadiBase b (ReaderT r m), HasNakadiConfig b r) => MonadNakadi b (ReaderT r m) Source #

ReaderT

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: ReaderT r m (Config b) Source #

class HasNakadiConfig b r | r -> b where Source #

Methods

nakadiConfig :: r -> Config b Source #

data NakadiT b m a Source #

The NakadiT type is just a specialized ReaderT monad.

Instances
(Monad b, MonadReader r m) => MonadReader r (NakadiT b m) Source #

MonadReader

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

ask :: NakadiT b m r #

local :: (r -> r) -> NakadiT b m a -> NakadiT b m a #

reader :: (r -> a) -> NakadiT b m a #

(Monad b, MonadState s m) => MonadState s (NakadiT b m) Source #

MonadState

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

get :: NakadiT b m s #

put :: s -> NakadiT b m () #

state :: (s -> (a, s)) -> NakadiT b m a #

(Monad m, MonadBase b' m) => MonadBase b' (NakadiT b m) Source #

MonadBase

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

liftBase :: b' α -> NakadiT b m α #

MonadBaseControl b' m => MonadBaseControl b' (NakadiT b m) Source #

MonadBaseControl

Instance details

Defined in Network.Nakadi.Internal.Types

Associated Types

type StM (NakadiT b m) a :: Type #

Methods

liftBaseWith :: (RunInBase (NakadiT b m) b' -> b' a) -> NakadiT b m a #

restoreM :: StM (NakadiT b m) a -> NakadiT b m a #

MonadNakadiBase b m => MonadNakadiBase b (NakadiT b m) Source #

MonadNakadiBase

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiLiftBase :: b a -> NakadiT b m a Source #

(MonadCatch m, MonadMask b, MonadNakadiBase b (NakadiT b m)) => MonadNakadi b (NakadiT b m) Source #

NakadiT

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

nakadiAsk :: NakadiT b m (Config b) Source #

MonadTrans (NakadiT b) Source #

MonadTrans

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

lift :: Monad m => m a -> NakadiT b m a #

MonadTransControl (NakadiT b) Source #

MonadTransControl

Instance details

Defined in Network.Nakadi.Internal.Types

Associated Types

type StT (NakadiT b) a :: Type #

Methods

liftWith :: Monad m => (Run (NakadiT b) -> m a) -> NakadiT b m a #

restoreT :: Monad m => m (StT (NakadiT b) a) -> NakadiT b m a #

Monad m => Monad (NakadiT b m) Source #

Monad

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

(>>=) :: NakadiT b m a -> (a -> NakadiT b m b0) -> NakadiT b m b0 #

(>>) :: NakadiT b m a -> NakadiT b m b0 -> NakadiT b m b0 #

return :: a -> NakadiT b m a #

fail :: String -> NakadiT b m a #

Functor m => Functor (NakadiT b m) Source #

Functor for NakadiT.

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

fmap :: (a -> b0) -> NakadiT b m a -> NakadiT b m b0 #

(<$) :: a -> NakadiT b m b0 -> NakadiT b m a #

Applicative m => Applicative (NakadiT b m) Source #

Applicative for NakadiT.

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

pure :: a -> NakadiT b m a #

(<*>) :: NakadiT b m (a -> b0) -> NakadiT b m a -> NakadiT b m b0 #

liftA2 :: (a -> b0 -> c) -> NakadiT b m a -> NakadiT b m b0 -> NakadiT b m c #

(*>) :: NakadiT b m a -> NakadiT b m b0 -> NakadiT b m b0 #

(<*) :: NakadiT b m a -> NakadiT b m b0 -> NakadiT b m a #

(Monad b, MonadIO m) => MonadIO (NakadiT b m) Source #

MonadIO

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

liftIO :: IO a -> NakadiT b m a #

(Monad b, MonadUnliftIO m) => MonadUnliftIO (NakadiT b m) Source #

MonadUnliftIO

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

askUnliftIO :: NakadiT b m (UnliftIO (NakadiT b m)) #

withRunInIO :: ((forall a. NakadiT b m a -> IO a) -> IO b0) -> NakadiT b m b0 #

(Monad b, MonadResource m) => MonadResource (NakadiT b m) Source # 
Instance details

Defined in Network.Nakadi.Internal.Types

Methods

liftResourceT :: ResourceT IO a -> NakadiT b m a #

(Monad b, MonadThrow m) => MonadThrow (NakadiT b m) Source #

MonadThrow

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

throwM :: Exception e => e -> NakadiT b m a #

(Monad b, MonadCatch m) => MonadCatch (NakadiT b m) Source #

MonadCatch

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

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

(Monad b, MonadMask m) => MonadMask (NakadiT b m) Source #

MonadMask

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

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

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

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

MonadLogger m => MonadLogger (NakadiT b m) Source #

MonadLogger

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> NakadiT b m () #

(Monad b, MonadLoggerIO m) => MonadLoggerIO (NakadiT b m) Source #

MonadLoggerIO

Instance details

Defined in Network.Nakadi.Internal.Types

Methods

askLoggerIO :: NakadiT b m (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) #

type StT (NakadiT b) a Source # 
Instance details

Defined in Network.Nakadi.Internal.Types

type StT (NakadiT b) a = a
type StM (NakadiT b m) a Source # 
Instance details

Defined in Network.Nakadi.Internal.Types

type StM (NakadiT b m) a = ComposeSt (NakadiT b) m a

runNakadiT :: Config b -> NakadiT b m a -> m a Source #