simplex-chat-6.5.0.7
Safe HaskellNone
LanguageHaskell2010

Simplex.Chat.Remote.Protocol

Synopsis

Documentation

data RemoteCommand Source #

Constructors

RCSend 

Fields

RCRecv 

Fields

RCStoreFile 

Fields

RCGetFile 

Fields

Instances

Instances details
FromJSON RemoteCommand Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

parseJSON :: Value -> Parser RemoteCommand

parseJSONList :: Value -> Parser [RemoteCommand]

omittedField :: Maybe RemoteCommand

ToJSON RemoteCommand Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

toJSON :: RemoteCommand -> Value

toEncoding :: RemoteCommand -> Encoding

toJSONList :: [RemoteCommand] -> Value

toEncodingList :: [RemoteCommand] -> Encoding

omitField :: RemoteCommand -> Bool

Show RemoteCommand Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

showsPrec :: Int -> RemoteCommand -> ShowS

show :: RemoteCommand -> String

showList :: [RemoteCommand] -> ShowS

data RemoteResponse Source #

Constructors

RRChatResponse 
RRChatEvent 

Fields

RRFileStored 

Fields

RRFile 

Fields

RRProtocolError 

Instances

Instances details
FromJSON RemoteResponse Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

parseJSON :: Value -> Parser RemoteResponse

parseJSONList :: Value -> Parser [RemoteResponse]

omittedField :: Maybe RemoteResponse

ToJSON RemoteResponse Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

toJSON :: RemoteResponse -> Value

toEncoding :: RemoteResponse -> Encoding

toJSONList :: [RemoteResponse] -> Value

toEncodingList :: [RemoteResponse] -> Encoding

omitField :: RemoteResponse -> Bool

Show RemoteResponse Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

showsPrec :: Int -> RemoteResponse -> ShowS

show :: RemoteResponse -> String

showList :: [RemoteResponse] -> ShowS

data RRResult r Source #

Constructors

RRResult 

Fields

RRError 

Fields

Instances

Instances details
FromJSON r => FromJSON (RRResult r) Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

parseJSON :: Value -> Parser (RRResult r)

parseJSONList :: Value -> Parser [RRResult r]

omittedField :: Maybe (RRResult r)

ToJSON r => ToJSON (RRResult r) Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

toJSON :: RRResult r -> Value

toEncoding :: RRResult r -> Encoding

toJSONList :: [RRResult r] -> Value

toEncodingList :: [RRResult r] -> Encoding

omitField :: RRResult r -> Bool

Show r => Show (RRResult r) Source # 
Instance details

Defined in Simplex.Chat.Remote.Protocol

Methods

showsPrec :: Int -> RRResult r -> ShowS

show :: RRResult r -> String

showList :: [RRResult r] -> ShowS

Client side / desktop

mkRemoteHostClient :: HTTP2Client -> HostSessKeys -> SessionCode -> FilePath -> HostAppInfo -> CM RemoteHostClient Source #

mkCtrlRemoteCrypto :: CtrlSessKeys -> SessionCode -> CM RemoteCrypto Source #

mkRemoteCrypto :: SessionCode -> TSbChainKeys -> RemoteSignatures -> IO RemoteCrypto Source #

Commands

remoteSend :: RemoteHostClient -> ByteString -> Int -> ExceptT RemoteProtocolError IO (Either ChatError ChatResponse) Source #

remoteRecv :: RemoteHostClient -> Int -> ExceptT RemoteProtocolError IO (Maybe (Either ChatError ChatEvent)) Source #

remoteStoreFile :: RemoteHostClient -> FilePath -> FilePath -> ExceptT RemoteProtocolError IO FilePath Source #

sendRemoteCommand :: RemoteHostClient -> Maybe (Handle, Word32) -> RemoteCommand -> ExceptT RemoteProtocolError IO (SbKeyNonce, Int -> IO ByteString, RemoteResponse) Source #

Transport-level wrappers

owsf2tagged :: Value -> Value Source #

Convert swift single-field sum encoding into tagged/discriminator-field

pattern OwsfTag :: (Key, Value) Source #

encryptEncodeHTTP2Body :: Word32 -> SbKeyNonce -> RemoteCrypto -> LazyByteString -> ExceptT RemoteProtocolError IO Builder Source #

parseDecryptHTTP2Body :: HTTP2BodyChunk a => RemoteCrypto -> a -> HTTP2Body -> ExceptT RemoteProtocolError IO (SbKeyNonce, LazyByteString, Int -> IO ByteString) Source #

Parse and decrypt HTTP2 request/response