simplexmq-6.5.0.16: SimpleXMQ message broker
Safe HaskellSafe-Inferred
LanguageHaskell2010

Simplex.Messaging.Server.MsgStore.STM

Documentation

data STMMsgStore Source #

Instances

Instances details
MsgStoreClass STMMsgStore Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

Associated Types

type StoreMonad STMMsgStore = (m :: Type -> Type) Source #

type MsgStoreConfig STMMsgStore = (c :: Type) Source #

type MsgQueue STMMsgStore = (q :: Type) Source #

type StoreQueue STMMsgStore = (q :: Type) Source #

type QueueStore STMMsgStore = (qs :: Type) Source #

Methods

newMsgStore :: MsgStoreConfig STMMsgStore -> IO STMMsgStore Source #

closeMsgStore :: STMMsgStore -> IO () Source #

withActiveMsgQueues :: Monoid a => STMMsgStore -> (StoreQueue STMMsgStore -> IO a) -> IO a Source #

unsafeWithAllMsgQueues :: Monoid a => Bool -> STMMsgStore -> (StoreQueue STMMsgStore -> IO a) -> IO a Source #

expireOldMessages :: Bool -> STMMsgStore -> Int64 -> Int64 -> IO MessageStats Source #

logQueueStates :: STMMsgStore -> IO () Source #

logQueueState :: StoreQueue STMMsgStore -> StoreMonad STMMsgStore () Source #

queueStore :: STMMsgStore -> QueueStore STMMsgStore Source #

loadedQueueCounts :: STMMsgStore -> IO LoadedQueueCounts Source #

mkQueue :: STMMsgStore -> Bool -> RecipientId -> QueueRec -> IO (StoreQueue STMMsgStore) Source #

getMsgQueue :: STMMsgStore -> StoreQueue STMMsgStore -> Bool -> StoreMonad STMMsgStore (MsgQueue STMMsgStore) Source #

getPeekMsgQueue :: STMMsgStore -> StoreQueue STMMsgStore -> StoreMonad STMMsgStore (Maybe (MsgQueue STMMsgStore, Message)) Source #

withIdleMsgQueue :: Int64 -> STMMsgStore -> StoreQueue STMMsgStore -> (MsgQueue STMMsgStore -> StoreMonad STMMsgStore a) -> StoreMonad STMMsgStore (Maybe a, Int) Source #

deleteQueue :: STMMsgStore -> StoreQueue STMMsgStore -> IO (Either ErrorType QueueRec) Source #

deleteQueueSize :: STMMsgStore -> StoreQueue STMMsgStore -> IO (Either ErrorType (QueueRec, Int)) Source #

getQueueMessages_ :: Bool -> StoreQueue STMMsgStore -> MsgQueue STMMsgStore -> StoreMonad STMMsgStore [Message] Source #

writeMsg :: STMMsgStore -> StoreQueue STMMsgStore -> Bool -> Message -> ExceptT ErrorType IO (Maybe (Message, Bool)) Source #

setOverQuota_ :: StoreQueue STMMsgStore -> IO () Source #

getQueueSize_ :: MsgQueue STMMsgStore -> StoreMonad STMMsgStore Int Source #

tryPeekMsg_ :: StoreQueue STMMsgStore -> MsgQueue STMMsgStore -> StoreMonad STMMsgStore (Maybe Message) Source #

tryDeleteMsg_ :: StoreQueue STMMsgStore -> MsgQueue STMMsgStore -> Bool -> StoreMonad STMMsgStore () Source #

isolateQueue :: STMMsgStore -> StoreQueue STMMsgStore -> Text -> StoreMonad STMMsgStore a -> ExceptT ErrorType IO a Source #

unsafeRunStore :: StoreQueue STMMsgStore -> Text -> StoreMonad STMMsgStore a -> IO a Source #

tryPeekMsg :: STMMsgStore -> StoreQueue STMMsgStore -> ExceptT ErrorType IO (Maybe Message) Source #

tryDelMsg :: STMMsgStore -> StoreQueue STMMsgStore -> MsgId -> ExceptT ErrorType IO (Maybe Message) Source #

tryDelPeekMsg :: STMMsgStore -> StoreQueue STMMsgStore -> MsgId -> ExceptT ErrorType IO (Maybe Message, Maybe Message) Source #

deleteExpiredMsgs :: STMMsgStore -> StoreQueue STMMsgStore -> Int64 -> ExceptT ErrorType IO Int Source #

getQueueSize :: STMMsgStore -> StoreQueue STMMsgStore -> ExceptT ErrorType IO Int Source #

type MsgQueue STMMsgStore Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

type MsgStoreConfig STMMsgStore Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

type QueueStore STMMsgStore Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

type StoreMonad STMMsgStore Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

type StoreQueue STMMsgStore Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

data STMStoreConfig Source #

Constructors

STMStoreConfig 

Fields

data STMQueue Source #

Instances

Instances details
StoreQueueClass STMQueue Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.STM

Methods

recipientId :: STMQueue -> RecipientId Source #

queueRec :: STMQueue -> TVar (Maybe QueueRec) Source #

withQueueLock :: STMQueue -> Text -> IO a -> IO a Source #