Safe Haskell | None |
---|---|
Language | Haskell2010 |
Type safe server API processes
- data family Api (genServerModule :: Type) (replyType :: Synchronicity)
- data Synchronicity
- data ApiHandler p r e = ApiHandler ((Typeable p, Typeable (Api p Asynchronous), HasCallStack) => Api p Asynchronous -> Eff r e) (forall x. (Typeable p, Typeable (Api p (Synchronous x)), Typeable x, HasCallStack) => Api p (Synchronous x) -> (x -> Eff r Bool) -> Eff r e) ((Typeable p, HasCallStack) => String -> Eff r ())
- newtype Server genServerModule = Server {}
- fromServer :: forall genServerModule genServerModule. Iso (Server genServerModule) (Server genServerModule) ProcessId ProcessId
- proxyAsServer :: proxy genServerModule -> ProcessId -> Server genServerModule
- asServer :: forall genServerModule. ProcessId -> Server genServerModule
- cast :: forall r o. (HasCallStack, Member MessagePassing r, Typeable o, Typeable (Api o Asynchronous)) => Server o -> Api o Asynchronous -> Eff r Bool
- cast_ :: forall r o. (HasCallStack, Member MessagePassing r, Typeable o, Typeable (Api o Asynchronous)) => Server o -> Api o Asynchronous -> Eff r ()
- call :: forall result genServerModule r. (Member MessagePassing r, Member Process r, Typeable genServerModule, Typeable (Api genServerModule (Synchronous result)), Typeable result, HasCallStack) => Server genServerModule -> Api genServerModule (Synchronous result) -> Eff r (Message result)
- serve :: forall r p e. (Typeable p, Member MessagePassing r, Member Process r, HasCallStack) => ApiHandler p r e -> Eff r (Message e)
- serve_ :: forall r p. (Typeable p, Member MessagePassing r, Member Process r, HasCallStack) => ApiHandler p r () -> Eff r ()
- unhandledCallError :: (Show (Api p (Synchronous x)), Typeable p, Typeable (Api p (Synchronous x)), Typeable x, HasCallStack, Member Process r) => Api p (Synchronous x) -> (x -> Eff r Bool) -> Eff r e
- unhandledCastError :: (Show (Api p Asynchronous), Typeable p, Typeable (Api p Asynchronous), HasCallStack, Member Process r) => Api p Asynchronous -> Eff r e
Documentation
data family Api (genServerModule :: Type) (replyType :: Synchronicity) Source #
This data family defines an API implemented by a server.
The first parameter is the API index and the second parameter
(the * -> *
)
Show (Observation o) => Show (Api (CallbackObserver o) r) # | |
data Api (CallbackObserver o) Source # | |
data ApiHandler p r e Source #
ApiHandler ((Typeable p, Typeable (Api p Asynchronous), HasCallStack) => Api p Asynchronous -> Eff r e) (forall x. (Typeable p, Typeable (Api p (Synchronous x)), Typeable x, HasCallStack) => Api p (Synchronous x) -> (x -> Eff r Bool) -> Eff r e) ((Typeable p, HasCallStack) => String -> Eff r ()) |
fromServer :: forall genServerModule genServerModule. Iso (Server genServerModule) (Server genServerModule) ProcessId ProcessId Source #
proxyAsServer :: proxy genServerModule -> ProcessId -> Server genServerModule Source #
cast :: forall r o. (HasCallStack, Member MessagePassing r, Typeable o, Typeable (Api o Asynchronous)) => Server o -> Api o Asynchronous -> Eff r Bool Source #
cast_ :: forall r o. (HasCallStack, Member MessagePassing r, Typeable o, Typeable (Api o Asynchronous)) => Server o -> Api o Asynchronous -> Eff r () Source #
call :: forall result genServerModule r. (Member MessagePassing r, Member Process r, Typeable genServerModule, Typeable (Api genServerModule (Synchronous result)), Typeable result, HasCallStack) => Server genServerModule -> Api genServerModule (Synchronous result) -> Eff r (Message result) Source #
serve :: forall r p e. (Typeable p, Member MessagePassing r, Member Process r, HasCallStack) => ApiHandler p r e -> Eff r (Message e) Source #
serve_ :: forall r p. (Typeable p, Member MessagePassing r, Member Process r, HasCallStack) => ApiHandler p r () -> Eff r () Source #
unhandledCallError :: (Show (Api p (Synchronous x)), Typeable p, Typeable (Api p (Synchronous x)), Typeable x, HasCallStack, Member Process r) => Api p (Synchronous x) -> (x -> Eff r Bool) -> Eff r e Source #
unhandledCastError :: (Show (Api p Asynchronous), Typeable p, Typeable (Api p Asynchronous), HasCallStack, Member Process r) => Api p Asynchronous -> Eff r e Source #