package logtk

  1. Overview
  2. Docs
Core types and algorithms for logic

Install

Dune Dependency

Authors

Maintainers

Sources

2.1.tar.gz
md5=e72de75e9f0f87da9e6e8c0a4d4c89f9
sha512=81becfc9badd686ab3692cd9312172aa4c4e3581b110e81770bb01e0ffbc1eb8495d0dd6d43b98f3d06e6b8c8a338174c13ebafb4e9849a3ddf89f9a3a72c287

doc/logtk/Logtk/Signal/index.html

Module Logtk.Signal

Basic signal for multiple-callbacks Observer

A signal can be used to decouple the (unique) emitter of some event, and (multiple) receivers for this event. The signal is typically created by the emitter (in the same module), and exposed; then, observers can register to the signal and be notified every time an event (a value) is emitted through the signal.

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 =
  1. | ContinueListening
  2. | 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!

OCaml

Innovation. Community. Security.