Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ClientSocketEnv = ClientSocketEnv {}
- newtype RaftSocketClientM a = RaftSocketClientM {}
- runRaftSocketClientM :: ClientSocketEnv -> RaftSocketClientM a -> IO a
- selectRndNode :: NodeIds -> IO NodeId
- sendReadRndNode :: (Serialize sm, Serialize v) => Proxy v -> NodeIds -> RaftSocketClientM (Either [Char] (ClientResponse sm))
- sendWriteRndNode :: (Serialize v, Serialize sm) => v -> NodeIds -> RaftSocketClientM (Either [Char] (ClientResponse sm))
- sendRead :: forall v sm. (Serialize sm, Serialize v) => Proxy v -> NodeId -> RaftSocketClientM (Either [Char] (ClientResponse sm))
- sendWrite :: (Serialize v, Serialize sm) => v -> NodeId -> RaftSocketClientM (Either [Char] (ClientResponse sm))
- acceptClientConnections :: Serialize sm => RaftSocketClientM (Either [Char] (ClientResponse sm))
Documentation
data ClientSocketEnv Source #
Instances
Show ClientSocketEnv Source # | |
Defined in Examples.Raft.Socket.Client showsPrec :: Int -> ClientSocketEnv -> ShowS # show :: ClientSocketEnv -> String # showList :: [ClientSocketEnv] -> ShowS # | |
MonadReader ClientSocketEnv RaftSocketClientM Source # | |
Defined in Examples.Raft.Socket.Client ask :: RaftSocketClientM ClientSocketEnv # local :: (ClientSocketEnv -> ClientSocketEnv) -> RaftSocketClientM a -> RaftSocketClientM a # reader :: (ClientSocketEnv -> a) -> RaftSocketClientM a # |
newtype RaftSocketClientM a Source #
Instances
runRaftSocketClientM :: ClientSocketEnv -> RaftSocketClientM a -> IO a Source #
selectRndNode :: NodeIds -> IO NodeId Source #
Randomly select a node from a set of nodes a send a message to it
sendReadRndNode :: (Serialize sm, Serialize v) => Proxy v -> NodeIds -> RaftSocketClientM (Either [Char] (ClientResponse sm)) Source #
Randomly read the state of a random node
sendWriteRndNode :: (Serialize v, Serialize sm) => v -> NodeIds -> RaftSocketClientM (Either [Char] (ClientResponse sm)) Source #
Randomly write to a random node
sendRead :: forall v sm. (Serialize sm, Serialize v) => Proxy v -> NodeId -> RaftSocketClientM (Either [Char] (ClientResponse sm)) Source #
Request the state of a node. It blocks until the node responds
sendWrite :: (Serialize v, Serialize sm) => v -> NodeId -> RaftSocketClientM (Either [Char] (ClientResponse sm)) Source #
Write to a node. It blocks until the node responds
acceptClientConnections :: Serialize sm => RaftSocketClientM (Either [Char] (ClientResponse sm)) Source #
Accept a connection and return the client response synchronously