-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Transaction Framework for Happstack -- -- This is the integration of tsession to Happstack -- -- For more information check my master thesis: -- -- http://stud.micheler.net/master.pdf @package tsession-happstack @version 0.1 module Control.TSession.Happstack atomicTransactionPart :: (Ord k, Eq v, MonadIO m, Functor m, HasRqData m, FilterMonad Response m, MonadPlus m) => TransactionBase k v status -> Trans k v status a -> m a createTransaction :: Ord k => String -> (g -> (TSessionId, g), g) -> status -> (k -> IO (Maybe v)) -> (k -> v -> IO ()) -> NominalDiffTime -> IO (TransactionBase k v status) readVal :: Ord k => k -> Trans k v status (Maybe v, TouchedValues v status) safeLoadVal :: Ord k => k -> Trans k v status (Maybe v) writeVal :: Ord k => k -> v -> Trans k v status () setStatus :: Eq status => status -> Trans k v status () getStatus :: Trans k v status status getReadSet :: Ord k => Trans k v status (Map k [TouchedValue v status]) commit :: Trans k v status () finishSession :: Trans k v status () data TouchedValue v status :: * -> * -> * ValueCommitted :: TSessionId -> v -> TouchedValue v status ValueRead :: TSessionId -> v -> status -> TouchedValue v status ValueWritten :: TSessionId -> v -> status -> TouchedValue v status data TouchedValues v status :: * -> * -> * TouchedValues :: [TouchedValue v status] -> [TouchedValue v status] -> [TouchedValue v status] -> TouchedValues v status _touchedValuesAll :: TouchedValues v status -> [TouchedValue v status] _touchedValuesAfterLastLoad :: TouchedValues v status -> [TouchedValue v status] _touchedValuesWithoutMe :: TouchedValues v status -> [TouchedValue v status] data TransactionBase k v status :: * -> * -> * -> * TransactionBase :: String -> (k -> IO (Maybe v)) -> (k -> v -> IO ()) -> MVar (Map k [TouchedValue v status]) -> TSessions k v status -> TSessionIdGenerator -> status -> NominalDiffTime -> IORef (Map TSessionId Timeout) -> TransactionBase k v status _trBaseName :: TransactionBase k v status -> String _trBaseLoadFun :: TransactionBase k v status -> k -> IO (Maybe v) _trBaseSaveFun :: TransactionBase k v status -> k -> v -> IO () _trBaseTouchedValues :: TransactionBase k v status -> MVar (Map k [TouchedValue v status]) _tsessions :: TransactionBase k v status -> TSessions k v status _tsessionIdGenerator :: TransactionBase k v status -> TSessionIdGenerator _tsessioninitStatus :: TransactionBase k v status -> status _tsessionTimeout :: TransactionBase k v status -> NominalDiffTime _tsessionTimeoutIndex :: TransactionBase k v status -> IORef (Map TSessionId Timeout) newtype Trans k v status a :: * -> * -> * -> * -> * Trans :: StateT (TSessionState k v status) IO (TransactionResult a) -> Trans k v status a runTransactionPart :: Trans k v status a -> StateT (TSessionState k v status) IO (TransactionResult a) type TSessionId = Integer