| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Simplex.Messaging.Server.MsgStore.Journal
Documentation
data JournalMsgStore (s :: QSType) Source #
Instances
data QStore (s :: QSType) where Source #
Instances
| QueueStoreClass (JournalQueue s) (QStore s) Source # | |||||
Defined in Simplex.Messaging.Server.MsgStore.Journal Associated Types
Methods newQueueStore :: QueueStoreCfg (QStore s) -> IO (QStore s) Source # closeQueueStore :: QStore s -> IO () Source # getEntityCounts :: QStore s -> IO EntityCounts Source # loadedQueues :: QStore s -> TMap RecipientId (JournalQueue s) Source # compactQueues :: QStore s -> IO Int64 Source # addQueue_ :: QStore s -> (RecipientId -> QueueRec -> IO (JournalQueue s)) -> RecipientId -> QueueRec -> IO (Either ErrorType (JournalQueue s)) Source # getQueue_ :: forall (p :: Party). QueueParty p => QStore s -> (Bool -> RecipientId -> QueueRec -> IO (JournalQueue s)) -> SParty p -> QueueId -> IO (Either ErrorType (JournalQueue s)) Source # getQueues_ :: forall (p :: Party). BatchParty p => QStore s -> (Bool -> RecipientId -> QueueRec -> IO (JournalQueue s)) -> SParty p -> [QueueId] -> IO [Either ErrorType (JournalQueue s)] Source # getQueueLinkData :: QStore s -> JournalQueue s -> LinkId -> IO (Either ErrorType QueueLinkData) Source # addQueueLinkData :: QStore s -> JournalQueue s -> LinkId -> QueueLinkData -> IO (Either ErrorType ()) Source # deleteQueueLinkData :: QStore s -> JournalQueue s -> IO (Either ErrorType ()) Source # secureQueue :: QStore s -> JournalQueue s -> SndPublicAuthKey -> IO (Either ErrorType ()) Source # updateKeys :: QStore s -> JournalQueue s -> NonEmpty RcvPublicAuthKey -> IO (Either ErrorType ()) Source # addQueueNotifier :: QStore s -> JournalQueue s -> NtfCreds -> IO (Either ErrorType (Maybe NtfCreds)) Source # deleteQueueNotifier :: QStore s -> JournalQueue s -> IO (Either ErrorType (Maybe NtfCreds)) Source # suspendQueue :: QStore s -> JournalQueue s -> IO (Either ErrorType ()) Source # blockQueue :: QStore s -> JournalQueue s -> BlockingInfo -> IO (Either ErrorType ()) Source # unblockQueue :: QStore s -> JournalQueue s -> IO (Either ErrorType ()) Source # updateQueueTime :: QStore s -> JournalQueue s -> SystemDate -> IO (Either ErrorType QueueRec) Source # deleteStoreQueue :: QStore s -> JournalQueue s -> IO (Either ErrorType QueueRec) Source # getCreateService :: QStore s -> ServiceRec -> IO (Either ErrorType ServiceId) Source # setQueueService :: forall (p :: Party). (PartyI p, ServiceParty p) => QStore s -> JournalQueue s -> SParty p -> Maybe ServiceId -> IO (Either ErrorType ()) Source # getQueueNtfServices :: QStore s -> [(NotifierId, a)] -> IO (Either ErrorType ([(Maybe ServiceId, [(NotifierId, a)])], [(NotifierId, a)])) Source # getServiceQueueCount :: forall (p :: Party). (PartyI p, ServiceParty p) => QStore s -> SParty p -> ServiceId -> IO (Either ErrorType Int64) Source # | |||||
| type QueueStoreCfg (QStore s) Source # | |||||
Defined in Simplex.Messaging.Server.MsgStore.Journal | |||||
data JournalQueue (s :: QSType) Source #
Instances
| StoreQueueClass (JournalQueue s) Source # | |||||
Defined in Simplex.Messaging.Server.MsgStore.Journal Methods recipientId :: JournalQueue s -> RecipientId Source # queueRec :: JournalQueue s -> TVar (Maybe QueueRec) Source # withQueueLock :: JournalQueue s -> Text -> IO a -> IO a Source # | |||||
| QueueStoreClass (JournalQueue s) (QStore s) Source # | |||||
Defined in Simplex.Messaging.Server.MsgStore.Journal Associated Types
Methods newQueueStore :: QueueStoreCfg (QStore s) -> IO (QStore s) Source # closeQueueStore :: QStore s -> IO () Source # getEntityCounts :: QStore s -> IO EntityCounts Source # loadedQueues :: QStore s -> TMap RecipientId (JournalQueue s) Source # compactQueues :: QStore s -> IO Int64 Source # addQueue_ :: QStore s -> (RecipientId -> QueueRec -> IO (JournalQueue s)) -> RecipientId -> QueueRec -> IO (Either ErrorType (JournalQueue s)) Source # getQueue_ :: forall (p :: Party). QueueParty p => QStore s -> (Bool -> RecipientId -> QueueRec -> IO (JournalQueue s)) -> SParty p -> QueueId -> IO (Either ErrorType (JournalQueue s)) Source # getQueues_ :: forall (p :: Party). BatchParty p => QStore s -> (Bool -> RecipientId -> QueueRec -> IO (JournalQueue s)) -> SParty p -> [QueueId] -> IO [Either ErrorType (JournalQueue s)] Source # getQueueLinkData :: QStore s -> JournalQueue s -> LinkId -> IO (Either ErrorType QueueLinkData) Source # addQueueLinkData :: QStore s -> JournalQueue s -> LinkId -> QueueLinkData -> IO (Either ErrorType ()) Source # deleteQueueLinkData :: QStore s -> JournalQueue s -> IO (Either ErrorType ()) Source # secureQueue :: QStore s -> JournalQueue s -> SndPublicAuthKey -> IO (Either ErrorType ()) Source # updateKeys :: QStore s -> JournalQueue s -> NonEmpty RcvPublicAuthKey -> IO (Either ErrorType ()) Source # addQueueNotifier :: QStore s -> JournalQueue s -> NtfCreds -> IO (Either ErrorType (Maybe NtfCreds)) Source # deleteQueueNotifier :: QStore s -> JournalQueue s -> IO (Either ErrorType (Maybe NtfCreds)) Source # suspendQueue :: QStore s -> JournalQueue s -> IO (Either ErrorType ()) Source # blockQueue :: QStore s -> JournalQueue s -> BlockingInfo -> IO (Either ErrorType ()) Source # unblockQueue :: QStore s -> JournalQueue s -> IO (Either ErrorType ()) Source # updateQueueTime :: QStore s -> JournalQueue s -> SystemDate -> IO (Either ErrorType QueueRec) Source # deleteStoreQueue :: QStore s -> JournalQueue s -> IO (Either ErrorType QueueRec) Source # getCreateService :: QStore s -> ServiceRec -> IO (Either ErrorType ServiceId) Source # setQueueService :: forall (p :: Party). (PartyI p, ServiceParty p) => QStore s -> JournalQueue s -> SParty p -> Maybe ServiceId -> IO (Either ErrorType ()) Source # getQueueNtfServices :: QStore s -> [(NotifierId, a)] -> IO (Either ErrorType ([(Maybe ServiceId, [(NotifierId, a)])], [(NotifierId, a)])) Source # getServiceQueueCount :: forall (p :: Party). (PartyI p, ServiceParty p) => QStore s -> SParty p -> ServiceId -> IO (Either ErrorType Int64) Source # | |||||
data JournalMsgQueue (s :: QSType) Source #
data JournalStoreConfig (s :: QSType) Source #
Constructors
| JournalStoreConfig | |
Fields
| |
closeMsgQueue :: forall (s :: QSType). JournalMsgStore s -> JournalQueue s -> IO () Source #
closeMsgQueueHandles :: forall (s :: QSType). JournalMsgStore s -> JournalMsgQueue s -> IO () Source #
data MsgQueueState Source #
Constructors
| MsgQueueState | |
Fields
| |
Instances
| Show MsgQueueState Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Journal Methods showsPrec :: Int -> MsgQueueState -> ShowS show :: MsgQueueState -> String showList :: [MsgQueueState] -> ShowS | |
| StrEncoding MsgQueueState Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Journal Methods strEncode :: MsgQueueState -> ByteString Source # strDecode :: ByteString -> Either String MsgQueueState Source # strP :: Parser MsgQueueState Source # | |
data JournalState (t :: JournalType) Source #
Constructors
| JournalState | |
Fields
| |
Instances
| Show (JournalState t) Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Journal Methods showsPrec :: Int -> JournalState t -> ShowS show :: JournalState t -> String showList :: [JournalState t] -> ShowS | |
| JournalTypeI t => StrEncoding (JournalState t) Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Journal Methods strEncode :: JournalState t -> ByteString Source # strDecode :: ByteString -> Either String (JournalState t) Source # strP :: Parser (JournalState t) Source # | |
data SJournalType (t :: JournalType) where Source #
Constructors
| SJTRead :: SJournalType 'JTRead | |
| SJTWrite :: SJournalType 'JTWrite |
Instances
| Show (SJournalType t) Source # | |
Defined in Simplex.Messaging.Server.MsgStore.Journal Methods showsPrec :: Int -> SJournalType t -> ShowS show :: SJournalType t -> String showList :: [SJournalType t] -> ShowS | |
msgQueueDirectory :: forall (s :: QSType). JournalMsgStore s -> RecipientId -> FilePath Source #
msgQueueStatePath :: FilePath -> RecipientId -> FilePath Source #
readQueueState :: forall (s :: QSType). JournalMsgStore s -> FilePath -> IO (Maybe MsgQueueState, Bool) Source #
newMsgQueueState :: ByteString -> MsgQueueState Source #
getJournalQueueMessages :: forall (s :: QSType). JournalMsgStore s -> JournalQueue s -> IO [Message] Source #
newJournalId :: TVar StdGen -> IO ByteString Source #
appendState :: Handle -> MsgQueueState -> IO () Source #
queueLogFileName :: String Source #
journalFilePath :: FilePath -> ByteString -> FilePath Source #
logFileExt :: String Source #