network-msgpack-rpc-0.0.4: A MessagePack-RPC Implementation

Safe HaskellSafe
LanguageHaskell2010

Network.MessagePack.Server

Contents

Synopsis

RPC method types

data Method m Source #

class Monad m => MethodType m f where Source #

Minimal complete definition

toBody

Methods

toBody :: Text -> f -> [Object] -> m Object Source #

Create a RPC method from a Haskell function

Instances

(Functor m, MonadThrow m, MessagePack o) => MethodType m (ServerT m o) Source # 

Methods

toBody :: Text -> ServerT m o -> [Object] -> m Object Source #

data MethodDocs Source #

MessagePack RPC method

Constructors

MethodDocs 

data MethodVal Source #

Constructors

MethodVal 

Fields

newtype ServerT m a Source #

Constructors

ServerT 

Fields

Instances

MonadTrans ServerT Source # 

Methods

lift :: Monad m => m a -> ServerT m a #

(Functor m, MonadThrow m, MessagePack o) => MethodType m (ServerT m o) Source # 

Methods

toBody :: Text -> ServerT m o -> [Object] -> m Object Source #

Monad m => Monad (ServerT m) Source # 

Methods

(>>=) :: ServerT m a -> (a -> ServerT m b) -> ServerT m b #

(>>) :: ServerT m a -> ServerT m b -> ServerT m b #

return :: a -> ServerT m a #

fail :: String -> ServerT m a #

Functor m => Functor (ServerT m) Source # 

Methods

fmap :: (a -> b) -> ServerT m a -> ServerT m b #

(<$) :: a -> ServerT m b -> ServerT m a #

Applicative m => Applicative (ServerT m) Source # 

Methods

pure :: a -> ServerT m a #

(<*>) :: ServerT m (a -> b) -> ServerT m a -> ServerT m b #

liftA2 :: (a -> b -> c) -> ServerT m a -> ServerT m b -> ServerT m c #

(*>) :: ServerT m a -> ServerT m b -> ServerT m b #

(<*) :: ServerT m a -> ServerT m b -> ServerT m a #

MonadIO m => MonadIO (ServerT m) Source # 

Methods

liftIO :: IO a -> ServerT m a #

Build a method

method Source #

Arguments

:: MethodType m f 
=> Text

Method name

-> MethodDocs 
-> f

Method body

-> Method m 

Build a method

Start RPC server

serve Source #

Arguments

:: (MonadBaseControl IO m, MonadIO m, MonadCatch m) 
=> Int

Port number

-> [Method m]

list of methods

-> m () 

Start RPC server with a set of RPC methods.

runServer Source #

Arguments

:: (MonadBaseControl IO m, MonadIO m, MonadCatch m) 
=> Int

Port number

-> [Method m]

list of methods

-> m () 

Start RPC server with a set of RPC methods.