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

Erebos.Service

Documentation

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

data SomeService Source #

Constructors

forall s.Service s => SomeService (Proxy s) (ServiceAttributes s) 

someService :: forall s proxy. Service s => proxy s -> SomeService Source #

data SomeServiceState Source #

Constructors

forall s.Service s => SomeServiceState (Proxy s) (ServiceState s) 

data SomeStorageWatcher s Source #

Constructors

forall a.Eq a => SomeStorageWatcher (Stored LocalState -> a) (a -> ServiceHandler s ()) 

data ServiceID Source #

Instances

Instances details
Show ServiceID Source # 
Instance details

Defined in Erebos.Service

StorableUUID ServiceID Source # 
Instance details

Defined in Erebos.Service

Eq ServiceID Source # 
Instance details

Defined in Erebos.Service

Ord ServiceID Source # 
Instance details

Defined in Erebos.Service

data ServiceHandler s a Source #

Instances

Instances details
MonadHead LocalState (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

MonadError String (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

MonadIO (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

Methods

liftIO :: IO a -> ServiceHandler s a #

Applicative (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

Methods

pure :: a -> ServiceHandler s a #

(<*>) :: ServiceHandler s (a -> b) -> ServiceHandler s a -> ServiceHandler s b #

liftA2 :: (a -> b -> c) -> ServiceHandler s a -> ServiceHandler s b -> ServiceHandler s c #

(*>) :: ServiceHandler s a -> ServiceHandler s b -> ServiceHandler s b #

(<*) :: ServiceHandler s a -> ServiceHandler s b -> ServiceHandler s a #

Functor (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

Methods

fmap :: (a -> b) -> ServiceHandler s a -> ServiceHandler s b #

(<$) :: a -> ServiceHandler s b -> ServiceHandler s a #

Monad (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

Methods

(>>=) :: ServiceHandler s a -> (a -> ServiceHandler s b) -> ServiceHandler s b #

(>>) :: ServiceHandler s a -> ServiceHandler s b -> ServiceHandler s b #

return :: a -> ServiceHandler s a #

MonadStorage (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

MonadReader (ServiceInput s) (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

MonadWriter [ServiceReply s] (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service

data ServiceReply s Source #

Constructors

ServiceReply (Either s (Stored s)) Bool 
ServiceFinally (IO ()) 

Instances

Instances details
MonadWriter [ServiceReply s] (ServiceHandler s) Source # 
Instance details

Defined in Erebos.Service