snaplet-acid-state-0.2.1: acid-state snaplet for Snap Framework

Safe HaskellSafe-Infered

Snap.Snaplet.AcidState

Synopsis

Documentation

data Acid st Source

Data type holding acid-state snaplet data.

Instances

HasAcid (Acid st) st 

class HasAcid myState acidState | myState -> acidState whereSource

Type class standardizing a context that holds an AcidState.

You can minimize boilerplate in your application by adding an instance like the following:

 data App = App { ... _acid :: Snaplet (Acid MyState) ... }
 instance HasAcid App MyState where
     getAcidStore = getL (snapletValue . acid)

Methods

getAcidStore :: myState -> Acid acidStateSource

Instances

HasAcid (Acid st) st 

acidInitSource

Arguments

:: (IsAcidic st, Typeable st) 
=> st

Initial state to be used if

-> SnapletInit b (Acid st) 

Initializer that stores the state in the "state/[typeOf state]/" directory.

acidInit'Source

Arguments

:: IsAcidic st 
=> FilePath

Location of the acid-state store on disk

-> st

Initial state to be used if

-> SnapletInit b (Acid st) 

Initializer allowing you to specify the location of the acid-state store.

getAcidState :: (HasAcid s st, MonadSnaplet m, MonadState s (m b b)) => m b v (AcidState st)Source

Lower-level function providing direct access to the AcidState data type.

update :: (HasAcid s (MethodState event), MonadSnaplet m, MonadState s (m b b), UpdateEvent event, MonadIO (m b v)) => event -> m b v (EventResult event)Source

Wrapper for acid-state's update function that works for arbitrary instances of HasAcid.

query :: (HasAcid s (MethodState event), MonadSnaplet m, MonadState s (m b b), QueryEvent event, MonadIO (m b v)) => event -> m b v (EventResult event)Source

Wrapper for acid-state's query function that works for arbitrary instances of HasAcid.

createCheckpoint :: (MonadIO (m b v), MonadSnaplet m, MonadState s (m b b), HasAcid s st) => m b v ()Source

Wrapper for acid-state's createCheckpoint function that works for arbitrary instances of HasAcid.

closeAcidState :: (MonadIO (m b v), MonadSnaplet m, MonadState s (m b b), HasAcid s st) => m b v ()Source

Wrapper for acid-state's closeAcidState function that works for arbitrary instances of HasAcid. The state is automatically closed by the snaplet's unload action, but this is here in case the user needs more control.

module Data.Acid