|WashNGo-2.12: WASH is a family of embedded domain specific languages (EDSL) for programming Web applications in Haskell.||Contents||Index|
Transactional, type-indexed implementation of server-side state.
A transactional entity (TE) is a named multi-versioned global variable.
|data T a|
|Handle of a transactional variable
|init :: (Types a, Read a, Show a) => String -> a -> TCGI b (T a)|
|Attempt to create a new tv n and set its initial value. Returns handle to
the variable. If the variable already exists, then just returns the handle.
|create :: (Read a, Show a, Types a) => a -> TCGI b (T a)|
|Create a fresh transactional variable with an initial value and return its
handle. Performs a physical write to ensure that the variable's name is
unique. Locks the transaction directory during the write operation.
|remove :: Types a => T a -> TCGI b ()|
|Remove a transactional variable. Subsequent read accesses to this variable
will make the transaction fail. May throw an exception if the variable is not
|get :: (Read a, Show a) => T a -> TCGI b a|
|Read transactional variable through a typed handle.
|set :: (Read a, Show a) => T a -> a -> TCGI b ()|
|Write to a transactional variable through typed handle. Only affects the
log, no physical write happens. Checks physically for existence of the
variable (but tries the log first). Raises exception if it does not exist.
|with :: (WithMonad cgi, Read result, Show result) => result -> (result -> cgi ()) -> (Control (TCGI result) result -> TCGI result ()) -> cgi ()|
|data Control cgi result|
|abandon :: (result -> cgi ())||abandon with result (rollback)
|setFail :: (result -> cgi ())||set result on failure
|setCommit :: (result -> cgi ())||set result on successful commit
|data TCGI b a|
|Type of a CGI action in a transactional scope with a result variable of
|Produced by Haddock version 0.8|