|
| 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 |