| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Simplex.Messaging.Server.MsgStore.Types
Documentation
class (Monad (StoreMonad s), QueueStoreClass (StoreQueue s) (QueueStore s)) => MsgStoreClass s where Source #
Minimal complete definition
newMsgStore, closeMsgStore, withActiveMsgQueues, unsafeWithAllMsgQueues, expireOldMessages, logQueueStates, logQueueState, queueStore, loadedQueueCounts, mkQueue, getMsgQueue, getPeekMsgQueue, withIdleMsgQueue, deleteQueue, deleteQueueSize, getQueueMessages_, writeMsg, setOverQuota_, getQueueSize_, tryPeekMsg_, tryDeleteMsg_, isolateQueue, unsafeRunStore
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
Constructors
| QSMemory | |
| QSPostgres |
data SMSType :: MSType -> Type where Source #
Constructors
| SMSMemory :: SMSType 'MSMemory | |
| SMSJournal :: SMSType 'MSJournal | |
| SMSPostgres :: SMSType 'MSPostgres |
data SQSType :: QSType -> Type where Source #
Constructors
| SQSMemory :: SQSType 'QSMemory | |
| SQSPostgres :: SQSType 'QSPostgres |
data MessageStats Source #
Constructors
| MessageStats | |
Fields
| |
Instances
| Monoid MessageStats Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Types Methods mappend :: MessageStats -> MessageStats -> MessageStats mconcat :: [MessageStats] -> MessageStats | |
| Semigroup MessageStats Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Types Methods (<>) :: MessageStats -> MessageStats -> MessageStats sconcat :: NonEmpty MessageStats -> MessageStats stimes :: Integral b => b -> MessageStats -> MessageStats | |
| Show MessageStats Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Types Methods showsPrec :: Int -> MessageStats -> ShowS show :: MessageStats -> String showList :: [MessageStats] -> ShowS | |
data LoadedQueueCounts Source #
Constructors
| LoadedQueueCounts | |
Fields
| |
addQueue :: MsgStoreClass s => s -> RecipientId -> QueueRec -> IO (Either ErrorType (StoreQueue s)) Source #
getQueue :: (MsgStoreClass s, QueueParty p) => s -> SParty p -> QueueId -> IO (Either ErrorType (StoreQueue s)) Source #
getQueueRec :: (MsgStoreClass s, QueueParty p) => s -> SParty p -> QueueId -> IO (Either ErrorType (StoreQueue s, QueueRec)) Source #
getQueues :: (MsgStoreClass s, BatchParty p) => s -> SParty p -> [QueueId] -> IO [Either ErrorType (StoreQueue s)] Source #
getQueueRecs :: (MsgStoreClass s, BatchParty p) => s -> SParty p -> [QueueId] -> IO [Either ErrorType (StoreQueue s, QueueRec)] 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 #
expireQueueMsgs :: MsgStoreClass s => s -> Int64 -> Int64 -> StoreQueue s -> StoreMonad s MessageStats Source #
deleteExpireMsgs_ :: MsgStoreClass s => Int64 -> StoreQueue s -> MsgQueue s -> StoreMonad s Int Source #