erebos-0.1.9: Decentralized messaging and synchronization
Safe HaskellNone
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 (ServiceAttributes s), Typeable (ServiceState s), Typeable (ServiceGlobalState s)) => Service s where Source #

Minimal complete definition

serviceID, serviceHandler

Associated Types

type ServiceAttributes s = (attr :: Type) | attr -> s Source #

type ServiceState s Source #

type ServiceState s = ()

type ServiceGlobalState s Source #

type ServiceGlobalState s = ()

Instances

Instances details
Service ChatroomService Source # 
Instance details

Defined in Erebos.Chatroom

Service DiscoveryService Source # 
Instance details

Defined in Erebos.Discovery

Service DirectMessage Source # 
Instance details

Defined in Erebos.Message

Associated Types

type ServiceAttributes DirectMessage 
Instance details

Defined in Erebos.Message

type ServiceState DirectMessage 
Instance details

Defined in Erebos.Message

type ServiceGlobalState DirectMessage 
Instance details

Defined in Erebos.Message

Service SyncService Source # 
Instance details

Defined in Erebos.Sync

Associated Types

type ServiceAttributes SyncService 
Instance details

Defined in Erebos.Sync

type ServiceState SyncService 
Instance details

Defined in Erebos.Sync

type ServiceGlobalState SyncService 
Instance details

Defined in Erebos.Sync

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

Defined in Erebos.Pairing

Associated Types

type ServiceAttributes (PairingService a) 
Instance details

Defined in Erebos.Pairing

type ServiceState (PairingService a) 
Instance details

Defined in Erebos.Pairing

type ServiceGlobalState (PairingService a) 
Instance details

Defined in Erebos.Pairing

dropPeer :: MonadIO m => Peer -> m () Source #

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

sendManyToPeer :: (Service s, MonadIO m) => Peer -> [s] -> m () Source #

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

sendManyToPeerStored :: (Service s, MonadIO m) => Peer -> [Stored s] -> m () Source #

modifyServiceGlobalState :: forall s a m proxy. (Service s, MonadIO m, MonadError String m) => Server -> proxy s -> (ServiceGlobalState s -> (ServiceGlobalState s, a)) -> m a Source #