|
Network.CGI.Monad | Portability | non-portable | Stability | experimental | Maintainer | bjorn@bringert.net |
|
|
|
|
|
Description |
Internal stuff that most people shouldn't have to use.
This module mostly deals with the
internals of the CGIT monad transformer.
|
|
Synopsis |
|
|
|
|
CGI monad class
|
|
class Monad m => MonadCGI m where |
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.
| | Methods | cgiAddHeader :: HeaderName -> String -> m () | Add a response header.
| | cgiGet :: (CGIRequest -> a) -> m a | Get something from the CGI request.
|
| | Instances | |
|
|
CGI monad transformer
|
|
newtype CGIT m a |
The CGIT monad transformer.
| Constructors | | Instances | |
|
|
type CGI a = CGIT IO a |
A simple CGI monad with just IO.
|
|
runCGIT :: Monad m => CGIT m a -> CGIRequest -> m (Headers, a) |
Run a CGI action.
|
|
Request info
|
|
data CGIRequest |
The input to a CGI action.
| Constructors | CGIRequest | | cgiVars :: (Map String String) | Environment variables.
| cgiInputs :: [(String, Input)] | Input parameters. For better laziness in reading inputs,
this is not a Map.
| cgiRequestBody :: ByteString | Raw request body. To avoid memory leaks,
this is the empty string if the request body has been
interpreted as inputs in
application/x-www-form-urlencoded or
multipart/form-data format.
|
|
| Instances | |
|
|
Error handling
|
|
throwCGI :: (MonadCGI m, MonadIO m) => Exception -> m a |
Throw an exception in a CGI monad. The monad is required to be
a MonadIO, so that we can use throwIO to guarantee ordering.
|
|
catchCGI :: CGI a -> (Exception -> CGI a) -> CGI a |
Catches any expection thrown by a CGI action, and uses the given
exception handler if an exception is thrown.
|
|
tryCGI :: CGI a -> CGI (Either Exception a) |
Catches any exception thrown by an CGI action, and returns either
the exception, or if no exception was raised, the result of the action.
|
|
handleExceptionCGI :: CGI a -> (Exception -> CGI a) -> CGI a |
Deprecated version of catchCGI. Use catchCGI instead.
|
|
Produced by Haddock version 0.8 |