metro-0.1.0.4: A simple tcp and udp socket server framework
Safe HaskellNone
LanguageHaskell2010

Metro.Conn

Documentation

data ConnEnv tp Source #

Instances

Instances details
Monad m => MonadReader (ConnEnv tp) (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

ask :: ConnT tp m (ConnEnv tp) #

local :: (ConnEnv tp -> ConnEnv tp) -> ConnT tp m a -> ConnT tp m a #

reader :: (ConnEnv tp -> a) -> ConnT tp m a #

data ConnT tp m a Source #

Instances

Instances details
FromConn ConnT Source # 
Instance details

Defined in Metro.Conn

Methods

fromConn :: forall (n :: Type -> Type) tp a. Monad n => ConnT tp n a -> ConnT tp n a Source #

MonadTrans (ConnT tp) Source # 
Instance details

Defined in Metro.Conn

Methods

lift :: Monad m => m a -> ConnT tp m a #

Monad m => MonadReader (ConnEnv tp) (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

ask :: ConnT tp m (ConnEnv tp) #

local :: (ConnEnv tp -> ConnEnv tp) -> ConnT tp m a -> ConnT tp m a #

reader :: (ConnEnv tp -> a) -> ConnT tp m a #

Monad m => Monad (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

(>>=) :: ConnT tp m a -> (a -> ConnT tp m b) -> ConnT tp m b #

(>>) :: ConnT tp m a -> ConnT tp m b -> ConnT tp m b #

return :: a -> ConnT tp m a #

Functor m => Functor (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

fmap :: (a -> b) -> ConnT tp m a -> ConnT tp m b #

(<$) :: a -> ConnT tp m b -> ConnT tp m a #

Applicative m => Applicative (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

pure :: a -> ConnT tp m a #

(<*>) :: ConnT tp m (a -> b) -> ConnT tp m a -> ConnT tp m b #

liftA2 :: (a -> b -> c) -> ConnT tp m a -> ConnT tp m b -> ConnT tp m c #

(*>) :: ConnT tp m a -> ConnT tp m b -> ConnT tp m b #

(<*) :: ConnT tp m a -> ConnT tp m b -> ConnT tp m a #

MonadIO m => MonadIO (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

liftIO :: IO a -> ConnT tp m a #

MonadUnliftIO m => MonadUnliftIO (ConnT tp m) Source # 
Instance details

Defined in Metro.Conn

Methods

withRunInIO :: ((forall a. ConnT tp m a -> IO a) -> IO b) -> ConnT tp m b #

class FromConn m where Source #

Methods

fromConn :: Monad n => ConnT tp n a -> m tp n a Source #

Instances

Instances details
FromConn ConnT Source # 
Instance details

Defined in Metro.Conn

Methods

fromConn :: forall (n :: Type -> Type) tp a. Monad n => ConnT tp n a -> ConnT tp n a Source #

FromConn (SessionT u nid k rpkt) Source # 
Instance details

Defined in Metro.Session

Methods

fromConn :: forall (n :: Type -> Type) tp a. Monad n => ConnT tp n a -> SessionT u nid k rpkt tp n a Source #

FromConn (NodeT u nid k rpkt) Source # 
Instance details

Defined in Metro.Node

Methods

fromConn :: forall (n :: Type -> Type) tp a. Monad n => ConnT tp n a -> NodeT u nid k rpkt tp n a Source #

runConnT :: ConnEnv tp -> ConnT tp m a -> m a Source #

receive :: (MonadUnliftIO m, Transport tp, RecvPacket pkt) => ConnT tp m pkt Source #

send :: (MonadUnliftIO m, Transport tp, SendPacket pkt) => pkt -> ConnT tp m () Source #

close :: (MonadIO m, Transport tp) => ConnT tp m () Source #