Copyright | (c) Bjorn Bringert 2006 |
---|---|
License | BSD-style |
Maintainer | John Chee <cheecheeo@gmail.com> |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell98 |
Internal stuff that most people shouldn't have to use. This module mostly deals with the internals of the CGIT monad transformer.
Synopsis
- class Monad m => MonadCGI m where
- cgiAddHeader :: HeaderName -> String -> m ()
- cgiGet :: (CGIRequest -> a) -> m a
- newtype CGIT m a = CGIT {
- unCGIT :: ReaderT CGIRequest (WriterT Headers m) a
- type CGI a = CGIT IO a
- runCGIT :: Monad m => CGIT m a -> CGIRequest -> m (Headers, a)
- data CGIRequest = CGIRequest {
- cgiVars :: Map String String
- cgiInputs :: [(String, Input)]
- cgiRequestBody :: ByteString
- throwCGI :: MonadThrow m => SomeException -> m a
- catchCGI :: MonadCatch m => m a -> (SomeException -> m a) -> m a
- tryCGI :: MonadCatch m => m a -> m (Either SomeException a)
- handleExceptionCGI :: MonadCatch m => m a -> (SomeException -> m a) -> m a
CGI monad class
class Monad m => MonadCGI m where Source #
The class of CGI monads. Most CGI actions can be run in any monad which is an instance of this class, which means that you can use your own monad transformers to add extra functionality.
cgiAddHeader :: HeaderName -> String -> m () Source #
Add a response header.
cgiGet :: (CGIRequest -> a) -> m a Source #
Get something from the CGI request.
Instances
Monad m => MonadCGI (CGIT m) Source # | |
Defined in Network.CGI.Monad cgiAddHeader :: HeaderName -> String -> CGIT m () Source # cgiGet :: (CGIRequest -> a) -> CGIT m a Source # |
CGI monad transformer
The CGIT monad transformer.
Instances
MonadTrans CGIT Source # | |
Defined in Network.CGI.Monad | |
MonadCatch m => MonadError SomeException (CGIT m) Source # | |
Defined in Network.CGI.Monad throwError :: SomeException -> CGIT m a # catchError :: CGIT m a -> (SomeException -> CGIT m a) -> CGIT m a # | |
Monad m => Monad (CGIT m) Source # | |
Functor m => Functor (CGIT m) Source # | |
MonadFail m => MonadFail (CGIT m) Source # | |
Defined in Network.CGI.Monad | |
Applicative m => Applicative (CGIT m) Source # | |
MonadIO m => MonadIO (CGIT m) Source # | |
Defined in Network.CGI.Monad | |
MonadThrow m => MonadThrow (CGIT m) Source # | |
Defined in Network.CGI.Monad | |
MonadCatch m => MonadCatch (CGIT m) Source # | |
MonadMask m => MonadMask (CGIT m) Source # | |
Monad m => MonadCGI (CGIT m) Source # | |
Defined in Network.CGI.Monad cgiAddHeader :: HeaderName -> String -> CGIT m () Source # cgiGet :: (CGIRequest -> a) -> CGIT m a Source # |
Request info
data CGIRequest Source #
The input to a CGI action.
CGIRequest | |
|
Instances
Show CGIRequest Source # | |
Defined in Network.CGI.Protocol showsPrec :: Int -> CGIRequest -> ShowS # show :: CGIRequest -> String # showList :: [CGIRequest] -> ShowS # |
Error handling
throwCGI :: MonadThrow m => SomeException -> m a Source #
catchCGI :: MonadCatch m => m a -> (SomeException -> m a) -> m a Source #
tryCGI :: MonadCatch m => m a -> m (Either SomeException a) Source #
handleExceptionCGI :: MonadCatch m => m a -> (SomeException -> m a) -> m a Source #