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

Simplex.Messaging.Server.MsgStore.Types

Documentation

class (Monad (StoreMonad s), QueueStoreClass (StoreQueue s) (QueueStore s)) => MsgStoreClass s where Source #

Associated Types

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

type MsgStoreConfig s = c | c -> s Source #

type MsgQueue s = q | q -> s Source #

type StoreQueue s = q | q -> s Source #

type QueueStore s = qs | qs -> s Source #

Methods

newMsgStore :: MsgStoreConfig s -> IO s Source #

closeMsgStore :: s -> IO () Source #

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

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

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

logQueueStates :: s -> IO () Source #

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

queueStore :: s -> QueueStore s Source #

loadedQueueCounts :: s -> IO LoadedQueueCounts Source #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

getQueueSize :: s -> StoreQueue s -> ExceptT ErrorType IO Int 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 #

MsgStoreClass (JournalMsgStore s) Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.Journal

Associated Types

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

type MsgStoreConfig (JournalMsgStore s) = (c :: Type) Source #

type MsgQueue (JournalMsgStore s) = (q :: Type) Source #

type StoreQueue (JournalMsgStore s) = (q :: Type) Source #

type QueueStore (JournalMsgStore s) = (qs :: Type) Source #

Methods

newMsgStore :: MsgStoreConfig (JournalMsgStore s) -> IO (JournalMsgStore s) Source #

closeMsgStore :: JournalMsgStore s -> IO () Source #

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

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

expireOldMessages :: Bool -> JournalMsgStore s -> Int64 -> Int64 -> IO MessageStats Source #

logQueueStates :: JournalMsgStore s -> IO () Source #

logQueueState :: StoreQueue (JournalMsgStore s) -> StoreMonad (JournalMsgStore s) () Source #

queueStore :: JournalMsgStore s -> QueueStore (JournalMsgStore s) Source #

loadedQueueCounts :: JournalMsgStore s -> IO LoadedQueueCounts Source #

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

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

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

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

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

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

getQueueMessages_ :: Bool -> StoreQueue (JournalMsgStore s) -> MsgQueue (JournalMsgStore s) -> StoreMonad (JournalMsgStore s) [Message] Source #

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

setOverQuota_ :: StoreQueue (JournalMsgStore s) -> IO () Source #

getQueueSize_ :: MsgQueue (JournalMsgStore s) -> StoreMonad (JournalMsgStore s) Int Source #

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

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

isolateQueue :: JournalMsgStore s -> StoreQueue (JournalMsgStore s) -> Text -> StoreMonad (JournalMsgStore s) a -> ExceptT ErrorType IO a Source #

unsafeRunStore :: StoreQueue (JournalMsgStore s) -> Text -> StoreMonad (JournalMsgStore s) a -> IO a Source #

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

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

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

deleteExpiredMsgs :: JournalMsgStore s -> StoreQueue (JournalMsgStore s) -> Int64 -> ExceptT ErrorType IO Int Source #

getQueueSize :: JournalMsgStore s -> StoreQueue (JournalMsgStore s) -> ExceptT ErrorType IO Int Source #

data QSType Source #

Constructors

QSMemory 
QSPostgres 

data SQSType :: QSType -> Type where Source #

data MessageStats Source #

Constructors

MessageStats 

Fields

Instances

Instances details
Monoid MessageStats Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.Types

Semigroup MessageStats Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.Types

Show MessageStats Source # 
Instance details

Defined in Simplex.Messaging.Server.MsgStore.Types

Methods

showsPrec :: Int -> MessageStats -> ShowS

show :: MessageStats -> String

showList :: [MessageStats] -> ShowS

getQueue :: (MsgStoreClass s, QueueParty p) => s -> SParty p -> QueueId -> IO (Either ErrorType (StoreQueue s)) Source #

getQueues :: (MsgStoreClass s, BatchParty p) => s -> SParty p -> [QueueId] -> IO [Either ErrorType (StoreQueue s)] Source #

readQueueRec :: StoreQueueClass q => q -> IO (Either ErrorType (q, QueueRec)) Source #

withPeekMsgQueue :: MsgStoreClass s => s -> StoreQueue s -> Text -> (Maybe (MsgQueue s, Message) -> StoreMonad s a) -> ExceptT ErrorType IO a Source #