Module Logtk.Signal

Basic signal for multiple-callbacks Observer

type 'a t

Signal of type 'a

val create : unit -> 'a t

New signal

val send : 'a t -> 'a -> unit

Trigger the signal

type handler_response =
| ContinueListening
| StopListening
val on : 'a t -> ('a -> handler_response) -> unit

Register a handler to the signal; the handler returns true if it wants to continue being notified, false otherwise

val on_every : 'a t -> ('a -> _) -> unit

on_every s f calls f on every event signalled on s

val once : 'a t -> ('a -> 'b) -> unit

Register a handler to be called only once

val propagate : 'a t -> 'a t -> unit

propagate a b propagates all values of a into b. Cycles are not detected.

Combinators

val map : 'a t -> ('a -> 'b) -> 'b t
val filter : 'a t -> ('a -> bool) -> 'a t
val set_exn_handler : (exn -> unit) -> unit

Set the handler that is called upon an exception in a Signal. The default handler does nothing. If the handler raises an exception, it is not caught!