|
|
|
|
| Synopsis |
|
| getTime :: Integral epochTime => AnyEv epochTime | | | getEventClockTime :: AnyEv ClockTime | | | getEventId :: Integral txId => AnyEv txId | | | 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 | | | initEventMap :: (Methods st, Component st) => MVar TxControl -> Proxy st -> IO () | | | 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] | | | componentIO :: (Methods a, Component a) => Proxy a -> [IO ()] | | | createNewTxRun :: IO (TxRun st) | | | 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 | | | runColdEvent :: TxContext -> Object -> IO () | | | runColdEventFunc :: TxContext -> Object -> EventMap -> IO () | | | eventTString :: Serialize ev => ev -> TypeString | | | handleEvent :: (st -> Env -> Ev m res -> STM intermediate) -> (st -> intermediate -> IO (Maybe st, res)) -> (res -> IO ()) -> Ev m res -> RunHandler st ev | | | handleQuery :: (res -> IO ()) -> Query st res -> RunHandler st ev | | | handleUpdate :: (res -> IO ()) -> Update st res -> RunHandler st ev | | | checkDiff :: a -> a -> IO (Maybe a) | | | processEvent :: Serialize ev => TxRun st -> ev -> (RunHandler st ev) -> IO () | | | getEpochMilli :: IO EpochMilli | | | newTxContext :: STM 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| handleEvent :: (st -> Env -> Ev m res -> STM intermediate) -> (st -> intermediate -> IO (Maybe st, res)) -> (res -> IO ()) -> Ev m res -> RunHandler st ev | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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.1.0 |