| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Simplex.Messaging.Agent.Store
Synopsis
- type RcvQueue = StoredRcvQueue 'DBStored
- type NewRcvQueue = StoredRcvQueue 'DBNew
- data StoredRcvQueue (q :: DBStored) = RcvQueue {
- userId :: UserId
- connId :: ConnId
- server :: SMPServer
- rcvId :: RecipientId
- rcvPrivateKey :: RcvPrivateAuthKey
- rcvDhSecret :: RcvDhSecret
- e2ePrivKey :: PrivateKeyX25519
- e2eDhSecret :: Maybe DhSecretX25519
- sndId :: SenderId
- queueMode :: Maybe QueueMode
- shortLink :: Maybe ShortLinkCreds
- clientService :: Maybe (StoredClientService q)
- status :: QueueStatus
- enableNtfs :: Bool
- clientNoticeId :: Maybe NoticeId
- dbQueueId :: DBEntityId' q
- primary :: Bool
- dbReplaceQueueId :: Maybe Int64
- rcvSwchStatus :: Maybe RcvSwitchStatus
- smpClientVersion :: VersionSMPC
- clientNtfCreds :: Maybe ClientNtfCreds
- deleteErrors :: Int
- data RcvQueueSub = RcvQueueSub {
- userId :: UserId
- connId :: ConnId
- server :: SMPServer
- rcvId :: RecipientId
- rcvPrivateKey :: RcvPrivateAuthKey
- status :: QueueStatus
- enableNtfs :: Bool
- clientNoticeId :: Maybe NoticeId
- dbQueueId :: Int64
- primary :: Bool
- dbReplaceQueueId :: Maybe Int64
- data ClientNtfCreds = ClientNtfCreds {}
- data InvShortLink = InvShortLink {
- server :: SMPServer
- linkId :: LinkId
- linkKey :: LinkKey
- sndPrivateKey :: SndPrivateAuthKey
- sndId :: Maybe SenderId
- type SndQueue = StoredSndQueue 'DBStored
- type NewSndQueue = StoredSndQueue 'DBNew
- data StoredSndQueue (q :: DBStored) = SndQueue {
- userId :: UserId
- connId :: ConnId
- server :: SMPServer
- sndId :: SenderId
- queueMode :: Maybe QueueMode
- sndPrivateKey :: SndPrivateAuthKey
- e2ePubKey :: Maybe PublicKeyX25519
- e2eDhSecret :: DhSecretX25519
- status :: QueueStatus
- dbQueueId :: DBEntityId' q
- primary :: Bool
- dbReplaceQueueId :: Maybe Int64
- sndSwchStatus :: Maybe SndSwitchStatus
- smpClientVersion :: VersionSMPC
- class SMPQueue q => SMPQueueRec q where
- class SMPQueueRec q => SomeRcvQueue q where
- rcvAuthKey :: q -> RcvPrivateAuthKey
- data ConnType
- data Connection' (d :: ConnType) rq sq where
- NewConnection :: ConnData -> Connection' CNew rq sq
- RcvConnection :: ConnData -> rq -> Connection' CRcv rq sq
- SndConnection :: ConnData -> sq -> Connection' CSnd rq sq
- DuplexConnection :: ConnData -> NonEmpty rq -> NonEmpty sq -> Connection' CDuplex rq sq
- ContactConnection :: ConnData -> rq -> Connection' CContact rq sq
- type Connection d = Connection' d RcvQueue SndQueue
- data SConnType :: ConnType -> Type where
- data SomeConn' rq sq = forall d. SomeConn (SConnType d) (Connection' d rq sq)
- type SomeConn = SomeConn' RcvQueue SndQueue
- type SomeConnSub = SomeConn' RcvQueueSub SndQueue
- data ConnData = ConnData {
- connId :: ConnId
- userId :: UserId
- connAgentVersion :: VersionSMPA
- enableNtfs :: Bool
- lastExternalSndId :: PrevExternalSndId
- deleted :: Bool
- ratchetSyncState :: RatchetSyncState
- pqSupport :: PQSupport
- type NoticeId = Int64
- data PendingCommand = PendingCommand {
- cmdId :: AsyncCmdId
- corrId :: ACorrId
- userId :: UserId
- connId :: ConnId
- command :: AgentCommand
- data AgentCmdType
- data AgentCommand
- data AgentCommandTag
- data InternalCommand
- data InternalCommandTag
- data NewConfirmation = NewConfirmation {}
- data AcceptedConfirmation = AcceptedConfirmation {}
- data NewInvitation = NewInvitation {}
- data Invitation = Invitation {
- invitationId :: InvitationId
- contactConnId_ :: Maybe ConnId
- connReq :: ConnectionRequestUri 'CMInvitation
- recipientConnInfo :: ConnInfo
- ownConnInfo :: Maybe ConnInfo
- accepted :: Bool
- type PrevExternalSndId = Int64
- type PrevRcvMsgHash = MsgHash
- type PrevSndMsgHash = MsgHash
- data RcvMsgData = RcvMsgData {}
- data RcvMsg = RcvMsg {
- internalId :: InternalId
- msgMeta :: MsgMeta
- msgType :: AgentMessageType
- msgBody :: MsgBody
- internalHash :: MsgHash
- msgReceipt :: Maybe MsgReceipt
- userAck :: Bool
- data SndMsgData = SndMsgData {}
- data SndMsgPrepData = SndMsgPrepData {
- encryptKey :: MsgEncryptKeyX448
- paddedLen :: Int
- sndMsgBodyId :: Int64
- data SndMsg = SndMsg {}
- data PendingMsgData = PendingMsgData {}
- data PendingMsgPrepData = PendingMsgPrepData {
- encryptKey :: MsgEncryptKeyX448
- paddedLen :: Int
- sndMsgBody :: AMessage
- newtype InternalRcvId = InternalRcvId {
- unRcvId :: Int64
- type ExternalSndId = Int64
- type ExternalSndTs = UTCTime
- type BrokerId = MsgId
- type BrokerTs = UTCTime
- newtype InternalSndId = InternalSndId {
- unSndId :: Int64
- data MsgBase = MsgBase {}
- newtype InternalId = InternalId {
- unId :: Int64
- type InternalTs = UTCTime
- type AsyncCmdId = Int64
- data StoreError
- = SEInternal ByteString
- | SEDatabaseBusy ByteString
- | SEUniqueID
- | SEUserNotFound
- | SEConnNotFound
- | SEServerNotFound
- | SEConnDuplicate
- | SESndQueueExists
- | SEBadConnType String ConnType
- | SEConfirmationNotFound
- | SEInvitationNotFound String InvitationId
- | SEMsgNotFound String
- | SECmdNotFound
- | SEBadQueueStatus
- | SERatchetNotFound
- | SEX3dhKeysNotFound
- | SEAgentError AgentErrorType
- | SEXFTPServerNotFound
- | SEFileNotFound
- | SEDeletedSndChunkReplicaNotFound
- | SEWorkItemError {
- errContext :: String
- | SEServersStatsNotFound
- class (Show e, AnyError e) => AnyStoreError e where
- isWorkItemError :: e -> Bool
- mkWorkItemError :: String -> e
- createStore :: DBOpts -> MigrationConfig -> IO (Either MigrationError DBStore)
- rcvQueueSub :: RcvQueue -> RcvQueueSub
- clientServiceId :: RcvQueue -> Maybe ClientServiceId
- rcvSMPQueueAddress :: RcvQueue -> SMPQueueAddress
- canAbortRcvSwitch :: RcvQueue -> Bool
- findQ :: SMPQueue q => (SMPServer, QueueId) -> NonEmpty q -> Maybe q
- removeQ :: SMPQueue q => (SMPServer, QueueId) -> NonEmpty q -> Maybe (q, [q])
- removeQP :: (q -> Bool) -> NonEmpty q -> Maybe (q, [q])
- sndAddress :: RcvQueue -> (SMPServer, SenderId)
- findRQ :: (SMPServer, SenderId) -> NonEmpty RcvQueue -> Maybe RcvQueue
- switchingRQ :: NonEmpty RcvQueue -> Maybe RcvQueue
- updatedQs :: SMPQueueRec q => q -> NonEmpty q -> NonEmpty q
- toConnData :: Connection' d rq sq -> ConnData
- updateConnection :: ConnData -> Connection' d rq sq -> Connection' d rq sq
- connType :: SConnType c -> ConnType
- ratchetSyncAllowed :: ConnData -> Bool
- ratchetSyncSendProhibited :: ConnData -> Bool
- agentCommandTag :: AgentCommand -> AgentCommandTag
- internalCmdTag :: InternalCommand -> InternalCommandTag
Documentation
type RcvQueue = StoredRcvQueue 'DBStored Source #
type NewRcvQueue = StoredRcvQueue 'DBNew Source #
data StoredRcvQueue (q :: DBStored) Source #
A receive queue. SMP queue through which the agent receives messages from a sender.
Constructors
| RcvQueue | |
Fields
| |
Instances
| SMPQueue NewRcvQueue Source # | |
Defined in Simplex.Messaging.Agent.Store | |
| SMPQueue RcvQueue Source # | |
| SMPQueueRec RcvQueue Source # | |
| SomeRcvQueue RcvQueue Source # | |
Defined in Simplex.Messaging.Agent.Store Methods | |
| Show (StoredRcvQueue q) Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> StoredRcvQueue q -> ShowS show :: StoredRcvQueue q -> String showList :: [StoredRcvQueue q] -> ShowS | |
data RcvQueueSub Source #
Constructors
| RcvQueueSub | |
Fields
| |
Instances
| Show RcvQueueSub Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> RcvQueueSub -> ShowS show :: RcvQueueSub -> String showList :: [RcvQueueSub] -> ShowS | |
| SMPQueue RcvQueueSub Source # | |
Defined in Simplex.Messaging.Agent.Store | |
| SMPQueueRec RcvQueueSub Source # | |
Defined in Simplex.Messaging.Agent.Store Methods qUserId :: RcvQueueSub -> UserId Source # qConnId :: RcvQueueSub -> ConnId Source # dbQId :: RcvQueueSub -> Int64 Source # qPrimary :: RcvQueueSub -> Bool Source # dbReplaceQId :: RcvQueueSub -> Maybe Int64 Source # | |
| SomeRcvQueue RcvQueueSub Source # | |
Defined in Simplex.Messaging.Agent.Store Methods | |
data ClientNtfCreds Source #
Constructors
| ClientNtfCreds | |
Fields
| |
Instances
| Show ClientNtfCreds Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> ClientNtfCreds -> ShowS show :: ClientNtfCreds -> String showList :: [ClientNtfCreds] -> ShowS | |
data InvShortLink Source #
Constructors
| InvShortLink | |
Fields
| |
Instances
| Show InvShortLink Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> InvShortLink -> ShowS show :: InvShortLink -> String showList :: [InvShortLink] -> ShowS | |
type SndQueue = StoredSndQueue 'DBStored Source #
type NewSndQueue = StoredSndQueue 'DBNew Source #
data StoredSndQueue (q :: DBStored) Source #
A send queue. SMP queue through which the agent sends messages to a recipient.
Constructors
| SndQueue | |
Fields
| |
Instances
| SMPQueue SndQueue Source # | |
| SMPQueueRec SndQueue Source # | |
| Show (StoredSndQueue q) Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> StoredSndQueue q -> ShowS show :: StoredSndQueue q -> String showList :: [StoredSndQueue q] -> ShowS | |
class SMPQueue q => SMPQueueRec q where Source #
Methods
qUserId :: q -> UserId Source #
qConnId :: q -> ConnId Source #
qPrimary :: q -> Bool Source #
dbReplaceQId :: q -> Maybe Int64 Source #
Instances
| SMPQueueRec RcvQueue Source # | |
| SMPQueueRec RcvQueueSub Source # | |
Defined in Simplex.Messaging.Agent.Store Methods qUserId :: RcvQueueSub -> UserId Source # qConnId :: RcvQueueSub -> ConnId Source # dbQId :: RcvQueueSub -> Int64 Source # qPrimary :: RcvQueueSub -> Bool Source # dbReplaceQId :: RcvQueueSub -> Maybe Int64 Source # | |
| SMPQueueRec SndQueue Source # | |
class SMPQueueRec q => SomeRcvQueue q where Source #
Methods
rcvAuthKey :: q -> RcvPrivateAuthKey Source #
Instances
| SomeRcvQueue RcvQueue Source # | |
Defined in Simplex.Messaging.Agent.Store Methods | |
| SomeRcvQueue RcvQueueSub Source # | |
Defined in Simplex.Messaging.Agent.Store Methods | |
Type of a connection.
data Connection' (d :: ConnType) rq sq where Source #
Connection of a specific type.
- RcvConnection is a connection that only has a receive queue set up, typically created by a recipient initiating a duplex connection.
- SndConnection is a connection that only has a send queue set up, typically created by a sender joining a duplex connection through a recipient's invitation.
- DuplexConnection is a connection that has both receive and send queues set up, typically created by upgrading a receive or a send connection with a missing queue.
Constructors
| NewConnection :: ConnData -> Connection' CNew rq sq | |
| RcvConnection :: ConnData -> rq -> Connection' CRcv rq sq | |
| SndConnection :: ConnData -> sq -> Connection' CSnd rq sq | |
| DuplexConnection :: ConnData -> NonEmpty rq -> NonEmpty sq -> Connection' CDuplex rq sq | |
| ContactConnection :: ConnData -> rq -> Connection' CContact rq sq |
Instances
| (Show rq, Show sq) => Show (Connection' d rq sq) Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> Connection' d rq sq -> ShowS show :: Connection' d rq sq -> String showList :: [Connection' d rq sq] -> ShowS | |
type Connection d = Connection' d RcvQueue SndQueue Source #
data SConnType :: ConnType -> Type where Source #
Constructors
| SCNew :: SConnType CNew | |
| SCRcv :: SConnType CRcv | |
| SCSnd :: SConnType CSnd | |
| SCDuplex :: SConnType CDuplex | |
| SCContact :: SConnType CContact |
Instances
| TestEquality SConnType Source # | |
Defined in Simplex.Messaging.Agent.Store Methods testEquality :: forall (a :: k) (b :: k). SConnType a -> SConnType b -> Maybe (a :~: b) | |
| Show (SConnType d) Source # | |
Connection of an unknown type. Used to refer to an arbitrary connection when retrieving from store.
Constructors
| forall d. SomeConn (SConnType d) (Connection' d rq sq) |
type SomeConnSub = SomeConn' RcvQueueSub SndQueue Source #
Constructors
| ConnData | |
Fields
| |
data PendingCommand Source #
Constructors
| PendingCommand | |
Fields
| |
data AgentCmdType Source #
Constructors
| ACClient | |
| ACInternal |
Instances
| StrEncoding AgentCmdType Source # | |
Defined in Simplex.Messaging.Agent.Store Methods strEncode :: AgentCmdType -> ByteString Source # strDecode :: ByteString -> Either String AgentCmdType Source # strP :: Parser AgentCmdType Source # | |
data AgentCommand Source #
Constructors
| AClientCommand ACommand | |
| AInternalCommand InternalCommand |
Instances
| StrEncoding AgentCommand Source # | |
Defined in Simplex.Messaging.Agent.Store Methods strEncode :: AgentCommand -> ByteString Source # strDecode :: ByteString -> Either String AgentCommand Source # strP :: Parser AgentCommand Source # | |
| FromField AgentCommand Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods fromField :: FieldParser AgentCommand # | |
| ToField AgentCommand Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods toField :: AgentCommand -> SQLData # | |
data AgentCommandTag Source #
Instances
| Show AgentCommandTag Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> AgentCommandTag -> ShowS show :: AgentCommandTag -> String showList :: [AgentCommandTag] -> ShowS | |
| StrEncoding AgentCommandTag Source # | |
Defined in Simplex.Messaging.Agent.Store Methods strEncode :: AgentCommandTag -> ByteString Source # strDecode :: ByteString -> Either String AgentCommandTag Source # strP :: Parser AgentCommandTag Source # | |
| FromField AgentCommandTag Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods fromField :: FieldParser AgentCommandTag # | |
| ToField AgentCommandTag Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods toField :: AgentCommandTag -> SQLData # | |
data InternalCommand Source #
Constructors
Instances
| StrEncoding InternalCommand Source # | |
Defined in Simplex.Messaging.Agent.Store Methods strEncode :: InternalCommand -> ByteString Source # strDecode :: ByteString -> Either String InternalCommand Source # strP :: Parser InternalCommand Source # | |
data InternalCommandTag Source #
Constructors
| ICAck_ | |
| ICAckDel_ | |
| ICAllowSecure_ | |
| ICDuplexSecure_ | |
| ICDeleteConn_ | |
| ICDeleteRcvQueue_ | |
| ICQSecure_ | |
| ICQDelete_ |
Instances
| Show InternalCommandTag Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> InternalCommandTag -> ShowS show :: InternalCommandTag -> String showList :: [InternalCommandTag] -> ShowS | |
| StrEncoding InternalCommandTag Source # | |
Defined in Simplex.Messaging.Agent.Store Methods strEncode :: InternalCommandTag -> ByteString Source # strDecode :: ByteString -> Either String InternalCommandTag Source # strP :: Parser InternalCommandTag Source # | |
data NewConfirmation Source #
Constructors
| NewConfirmation | |
Fields | |
data AcceptedConfirmation Source #
Constructors
| AcceptedConfirmation | |
Fields | |
data NewInvitation Source #
Constructors
| NewInvitation | |
Fields | |
data Invitation Source #
Constructors
| Invitation | |
Fields
| |
type PrevExternalSndId = Int64 Source #
Corresponds to last_external_snd_msg_id in connections table
type PrevRcvMsgHash = MsgHash Source #
Corresponds to last_rcv_msg_hash in connections table
type PrevSndMsgHash = MsgHash Source #
Corresponds to last_snd_msg_hash in connections table
data RcvMsgData Source #
Constructors
| RcvMsgData | |
Fields | |
Constructors
| RcvMsg | |
Fields
| |
data SndMsgData Source #
Constructors
| SndMsgData | |
Fields
| |
data SndMsgPrepData Source #
Constructors
| SndMsgPrepData | |
Fields
| |
Instances
| Show SndMsgPrepData Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> SndMsgPrepData -> ShowS show :: SndMsgPrepData -> String showList :: [SndMsgPrepData] -> ShowS | |
Constructors
| SndMsg | |
Fields
| |
data PendingMsgData Source #
Constructors
| PendingMsgData | |
Fields
| |
Instances
| Show PendingMsgData Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> PendingMsgData -> ShowS show :: PendingMsgData -> String showList :: [PendingMsgData] -> ShowS | |
data PendingMsgPrepData Source #
Constructors
| PendingMsgPrepData | |
Fields
| |
Instances
| Show PendingMsgPrepData Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> PendingMsgPrepData -> ShowS show :: PendingMsgPrepData -> String showList :: [PendingMsgPrepData] -> ShowS | |
newtype InternalRcvId Source #
Constructors
| InternalRcvId | |
Fields
| |
Instances
| Show InternalRcvId Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> InternalRcvId -> ShowS show :: InternalRcvId -> String showList :: [InternalRcvId] -> ShowS | |
| Eq InternalRcvId Source # | |
Defined in Simplex.Messaging.Agent.Store | |
| FromField InternalRcvId Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods fromField :: FieldParser InternalRcvId # | |
| ToField InternalRcvId Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods toField :: InternalRcvId -> SQLData # | |
type ExternalSndId = Int64 Source #
type ExternalSndTs = UTCTime Source #
newtype InternalSndId Source #
Constructors
| InternalSndId | |
Fields
| |
Instances
| Show InternalSndId Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> InternalSndId -> ShowS show :: InternalSndId -> String showList :: [InternalSndId] -> ShowS | |
| Eq InternalSndId Source # | |
Defined in Simplex.Messaging.Agent.Store | |
| FromField InternalSndId Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods fromField :: FieldParser InternalSndId # | |
| ToField InternalSndId Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods toField :: InternalSndId -> SQLData # | |
Base message data independent of direction.
Constructors
| MsgBase | |
Fields
| |
Instances
newtype InternalId Source #
Constructors
| InternalId | |
Fields
| |
Instances
| Show InternalId Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> InternalId -> ShowS show :: InternalId -> String showList :: [InternalId] -> ShowS | |
| Eq InternalId Source # | |
Defined in Simplex.Messaging.Agent.Store | |
| StrEncoding InternalId Source # | |
Defined in Simplex.Messaging.Agent.Store Methods strEncode :: InternalId -> ByteString Source # strDecode :: ByteString -> Either String InternalId Source # strP :: Parser InternalId Source # | |
| FromField InternalId Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods fromField :: FieldParser InternalId # | |
| ToField InternalId Source # | |
Defined in Simplex.Messaging.Agent.Store.AgentStore Methods toField :: InternalId -> SQLData # | |
type InternalTs = UTCTime Source #
type AsyncCmdId = Int64 Source #
data StoreError Source #
Agent store error.
Constructors
| SEInternal ByteString | IO exceptions in store actions. |
| SEDatabaseBusy ByteString | Database busy |
| SEUniqueID | Failed to generate unique random ID |
| SEUserNotFound | User ID not found |
| SEConnNotFound | Connection not found (or both queues absent). |
| SEServerNotFound | Server not found. |
| SEConnDuplicate | Connection already used. |
| SESndQueueExists | Confirmed snd queue already exists. |
| SEBadConnType String ConnType | Wrong connection type, e.g. "send" connection when "receive" or "duplex" is expected, or vice versa.
|
| SEConfirmationNotFound | Confirmation not found. |
| SEInvitationNotFound String InvitationId | Invitation not found |
| SEMsgNotFound String | Message not found |
| SECmdNotFound | Command not found |
| SEBadQueueStatus | Currently not used. The intention was to pass current expected queue status in methods, as we always know what it should be at any stage of the protocol, and in case it does not match use this error. |
| SERatchetNotFound | connection does not have associated double-ratchet state |
| SEX3dhKeysNotFound | connection does not have associated x3dh keys |
| SEAgentError AgentErrorType | Used to wrap agent errors inside store operations to avoid race conditions |
| SEXFTPServerNotFound | XFTP Server not found. |
| SEFileNotFound | XFTP File not found. |
| SEDeletedSndChunkReplicaNotFound | XFTP Deleted snd chunk replica not found. |
| SEWorkItemError | Error when reading work item that suspends worker - do not use! |
Fields
| |
| SEServersStatsNotFound | Servers stats not found. |
Instances
| Exception StoreError Source # | |
Defined in Simplex.Messaging.Agent.Store Methods toException :: StoreError -> SomeException fromException :: SomeException -> Maybe StoreError displayException :: StoreError -> String | |
| Show StoreError Source # | |
Defined in Simplex.Messaging.Agent.Store Methods showsPrec :: Int -> StoreError -> ShowS show :: StoreError -> String showList :: [StoreError] -> ShowS | |
| Eq StoreError Source # | |
Defined in Simplex.Messaging.Agent.Store | |
| AnyStoreError StoreError Source # | |
Defined in Simplex.Messaging.Agent.Store Methods isWorkItemError :: StoreError -> Bool Source # mkWorkItemError :: String -> StoreError Source # | |
| AnyError StoreError Source # | |
Defined in Simplex.Messaging.Agent.Store Methods fromSomeException :: SomeException -> StoreError Source # | |
class (Show e, AnyError e) => AnyStoreError e where Source #
Instances
| AnyStoreError StoreError Source # | |
Defined in Simplex.Messaging.Agent.Store Methods isWorkItemError :: StoreError -> Bool Source # mkWorkItemError :: String -> StoreError Source # | |
createStore :: DBOpts -> MigrationConfig -> IO (Either MigrationError DBStore) Source #
rcvQueueSub :: RcvQueue -> RcvQueueSub Source #
clientServiceId :: RcvQueue -> Maybe ClientServiceId Source #
canAbortRcvSwitch :: RcvQueue -> Bool Source #
switchingRQ :: NonEmpty RcvQueue -> Maybe RcvQueue Source #
updatedQs :: SMPQueueRec q => q -> NonEmpty q -> NonEmpty q Source #
toConnData :: Connection' d rq sq -> ConnData Source #
updateConnection :: ConnData -> Connection' d rq sq -> Connection' d rq sq Source #
ratchetSyncAllowed :: ConnData -> Bool Source #
ratchetSyncSendProhibited :: ConnData -> Bool Source #