-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A MessagePack-RPC Implementation -- -- A MessagePack-RPC Implementation http://msgpack.org/ @package msgpack-rpc @version 1.0.0 -- | This module is client library of MessagePack-RPC. The specification of -- MessagePack-RPC is at -- http://redmine.msgpack.org/projects/msgpack/wiki/RPCProtocolSpec. -- -- A simple example: -- --
-- import Network.MessagePackRpc.Client -- -- add :: Int -> Int -> Client Int -- add = call "add" -- -- main = runClient "localhost" 5000 $ do -- ret <- add 123 456 -- liftIO $ print ret --module Network.MessagePack.Client data Client a execClient :: ByteString -> Int -> Client a -> IO () -- | Call an RPC Method call :: RpcType a => String -> a -- | RPC error type data RpcError -- | Server error ServerError :: Object -> RpcError -- | Result type mismatch ResultTypeError :: String -> RpcError -- | Protocol error ProtocolError :: String -> RpcError instance GHC.Classes.Ord Network.MessagePack.Client.RpcError instance GHC.Classes.Eq Network.MessagePack.Client.RpcError instance GHC.Show.Show Network.MessagePack.Client.RpcError instance Control.Monad.Catch.MonadThrow Network.MessagePack.Client.Client instance Control.Monad.IO.Class.MonadIO Network.MessagePack.Client.Client instance GHC.Base.Monad Network.MessagePack.Client.Client instance GHC.Base.Applicative Network.MessagePack.Client.Client instance GHC.Base.Functor Network.MessagePack.Client.Client instance GHC.Exception.Exception Network.MessagePack.Client.RpcError instance Data.MessagePack.Object.MessagePack o => Network.MessagePack.Client.RpcType (Network.MessagePack.Client.Client o) instance (Data.MessagePack.Object.MessagePack o, Network.MessagePack.Client.RpcType r) => Network.MessagePack.Client.RpcType (o -> r) -- | This module is server library of MessagePack-RPC. The specification of -- MessagePack-RPC is at -- http://redmine.msgpack.org/projects/msgpack/wiki/RPCProtocolSpec. -- -- A simple example: -- --
-- import Network.MessagePackRpc.Server -- -- add :: Int -> Int -> Server Int -- add x y = return $ x + y -- -- main = serve 1234 [ method "add" add ] --module Network.MessagePack.Server -- | MessagePack RPC method data Method m class Monad m => MethodType m f -- | Create a RPC method from a Hakell function toBody :: MethodType m f => f -> [Object] -> m Object newtype ServerT m a ServerT :: m a -> ServerT m a [runServerT] :: ServerT m a -> m a type Server = ServerT IO -- | Build a method method :: MethodType m f => String -> f -> Method m -- | Start RPC server with a set of RPC methods. serve :: (MonadBaseControl IO m, MonadIO m, MonadCatch m, MonadThrow m) => Int -> [Method m] -> m () instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Network.MessagePack.Server.ServerT m) instance GHC.Base.Monad m => GHC.Base.Monad (Network.MessagePack.Server.ServerT m) instance GHC.Base.Applicative m => GHC.Base.Applicative (Network.MessagePack.Server.ServerT m) instance GHC.Base.Functor m => GHC.Base.Functor (Network.MessagePack.Server.ServerT m) instance GHC.Show.Show Network.MessagePack.Server.ServerError instance GHC.Exception.Exception Network.MessagePack.Server.ServerError instance Control.Monad.Trans.Class.MonadTrans Network.MessagePack.Server.ServerT instance (Control.Monad.Catch.MonadThrow m, Data.MessagePack.Object.MessagePack o) => Network.MessagePack.Server.MethodType m (Network.MessagePack.Server.ServerT m o) instance (Control.Monad.Catch.MonadThrow m, Data.MessagePack.Object.MessagePack o, Network.MessagePack.Server.MethodType m r) => Network.MessagePack.Server.MethodType m (o -> r)