|
Happstack.State.Transaction |
|
|
|
Synopsis |
|
type ExceptionT = SomeException | | logMT :: Priority -> String -> IO () | | getTime :: Integral epochTime => AnyEv epochTime | | getEventClockTime :: AnyEv ClockTime | | getEventId :: Integral txId => AnyEv txId | | data GetCheckpointState = GetCheckpointState | | newtype SetCheckpointState = SetCheckpointState ByteString | | type TypeString = String | | | | type EventMap = Map TypeString EventHandler | | data EmitInternal = EmitInternal EventMap | | emitRef :: IORef EmitInternal | | emitFunc :: (Serialize ev, Typeable res) => EventMap -> TypeString -> ev -> IO res | | emitEvent' :: (Serialize ev, Typeable res) => TypeString -> ev -> IO res | | emitEvent :: (Serialize ev, Typeable res) => ev -> IO res | | setNewEventMap :: EventMap -> IO () | | data EventItem = EventItem {} | | eventStreamRef :: MVar (Chan EventItem) | | initEventStream :: IO () | | pushEventItem :: Serialize ev => TxContext -> ev -> IO () | | getEventStream :: IO (IO EventItem) | | createEventMap :: (Methods st, Component st) => MVar TxControl -> Proxy st -> IO EventMap | | extraEvents :: Serialize st => TxRun st -> EventMap | | allStateTypes :: (Methods a, Component a) => Proxy a -> [TypeString] | | componentVersions :: (Methods a, Component a) => Proxy a -> Map String [ByteString] | | componentIO :: (Methods a, Component a) => Proxy a -> [IO ()] | | createNewTxRun :: IO (TxRun st) | | setNewStateType :: String -> String | | getStateType :: String -> String | | setNewState :: TypeString -> ByteString -> IO () | | getState :: TypeString -> IO ByteString | | data SetNewState st = SetNewState ByteString | | data GetState st = GetState | | update :: (MonadIO m, UpdateEvent ev res) => ev -> m res | | query :: (MonadIO m, QueryEvent ev res) => ev -> m res | | quickQuery' :: Serialize st => TxRun st -> HR st -> IO () | | type Runner ev res = IO (IO ev, res -> IO ()) | | type EH i o = i -> IO o | | data Event = forall ev . Serialize ev => Event ev | | data IHR st = forall ev . Serialize ev => IHR TxContext ev (RunHandler st ev) | | data HR st = forall ev . Serialize ev => HR ev (RunHandler st ev) | | type RunHandler st ev = TxContext -> st -> IO (Maybe st, IO ()) | | | | type EventQueue st = TChan (HR st) | | type ProcessQueue st = TChan (IHR st) | | data TxRun st = TxRun {} | | type EvLoaders' st = Map String (ProcessQueue st -> ByteString -> IO (TxId, ByteString)) | | type EvLoaders = Map String (ByteString -> IO (TxId, ByteString)) | | setEvLoadersQueue :: ProcessQueue st -> EvLoaders' st -> EvLoaders | | runObjectEvent :: Object -> IO Object | | runObjectEventFunc :: Object -> EventMap -> IO Object | | runColdEvent :: TxContext -> Object -> IO () | | runColdEventFunc :: TxContext -> Object -> EventMap -> IO () | | lookupEventHandler :: TypeString -> EventMap -> IO EventHandler | | eventTString :: Serialize ev => ev -> TypeString | | handleEvent :: (st -> Env -> Ev m res -> STM intermediate) -> (st -> intermediate -> IO (Maybe st, res)) -> (Either ExceptionT res -> IO ()) -> Ev m res -> RunHandler st ev | | handleQuery :: (Either ExceptionT res -> IO ()) -> Query st res -> RunHandler st ev | | handleUpdate :: (Either ExceptionT res -> IO ()) -> Update st res -> RunHandler st ev | | checkDiff :: a -> a -> IO (Maybe a) | | getEpochMilli :: IO EpochMilli | | newTxContext :: IO TxContext | | addTxId :: TxRun st -> TxContext -> STM TxContext | | globalRandomGen :: MVar StdGen | | data TxConfig = TxConfig {} | | data TxControl = TxControl {} | | data EventLogEntry = EventLogEntry TxContext Object | | | | nullTxConfig :: TxConfig | | runTxLoop :: MVar (WriterStream EventLogEntry) -> ProcessQueue st -> st -> IO () |
|
|
Documentation |
|
|
|
|
|
|
|
|
|
|
|
data GetCheckpointState | Source |
|
Constructors | | Instances | |
|
|
newtype SetCheckpointState | Source |
|
Constructors | | Instances | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Constructors | EventItem | | eventContext :: TxContext | | eventData :: Dynamic | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Constructors | | Instances | |
|
|
|
Constructors | | Instances | |
|
|
|
Schedule an update and wait for it to complete. When this function returns, you're
guaranteed the update will be persistent.
|
|
|
Emit a state query and wait for the result.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Constructors | TxConfig | | txcCheckpointSeconds :: Seconds | Perform checkpoint at least every N seconds.
| txcOperationMode :: OperationMode | | txcClusterSize :: Int | Number of active nodes in the cluster (not counting this node).
| txcClusterPort :: Int | | txcCommitFrequency :: Int | Commits per second. Only applies to cluster mode.
|
|
|
|
|
|
|
|
|
Constructors | EventLogEntry TxContext Object | |
| Instances | |
|
|
|
|
|
|
|
|
|
Produced by Haddock version 2.4.2 |