erebos-0.1.2: Decentralized messaging and synchronization
Safe HaskellSafe-Inferred
LanguageHaskell2010

Erebos.Network

Documentation

data Peer Source #

Instances

Instances details
Eq Peer Source # 
Instance details

Defined in Erebos.Network

Methods

(==) :: Peer -> Peer -> Bool #

(/=) :: Peer -> Peer -> Bool #

class (Typeable s, Storable s, Typeable (ServiceState s), Typeable (ServiceGlobalState s)) => Service s where Source #

Minimal complete definition

serviceID, serviceHandler

Associated Types

type ServiceAttributes s = attr | attr -> s Source #

type ServiceState s :: Type Source #

type ServiceState s = ()

type ServiceGlobalState s :: Type Source #

type ServiceGlobalState s = ()

Instances

Instances details
Service DirectMessage Source # 
Instance details

Defined in Erebos.Message

Service SyncService Source # 
Instance details

Defined in Erebos.Sync

PairingResult a => Service (PairingService a) Source # 
Instance details

Defined in Erebos.Pairing

sendToPeer :: (Service s, MonadIO m) => Peer -> s -> m () Source #

sendToPeerStored :: (Service s, MonadIO m) => Peer -> Stored s -> m () Source #

sendToPeerWith :: forall s m. (Service s, MonadIO m, MonadError String m) => Peer -> (ServiceState s -> ExceptT String IO (Maybe s, ServiceState s)) -> m () Source #

runPeerService :: forall s m. (Service s, MonadIO m) => Peer -> ServiceHandler s () -> m () Source #