module Index:
projectified, depend on the model, not serialized
module E: E
type
key = E.key
type
data = E.data
module KEY: sig
.. end
module MAP: FCMap.Make
(
KEY
)
module SET: FCSet.Make
(
KEY
)
val demon : (MAP.key -> E.data -> unit) list Pervasives.ref
type
entries = {
|
mutable ident : int ; |
|
mutable index : E.data MAP.t ; |
|
mutable lock : SET.t ; |
}
module ENTRIES: Datatype.Make
(
sig
end
)
module REGISTRY: State_builder.Hashtbl
(
Datatype.String.Hashtbl
)
(
ENTRIES
)
(
sig
val name : string
val dependencies : State.t list
val size : int
end
)
val entries : unit -> entries
val mem : MAP.key -> bool
val find : MAP.key -> E.data
val get : MAP.key -> E.data option
val fire : MAP.key -> E.data -> unit
val callback : (MAP.key -> E.data -> unit) -> unit
val define : MAP.key -> E.data -> unit
val update : MAP.key -> E.data -> unit
val memoize : (MAP.key -> E.data) ->
MAP.key -> E.data
val compile : (MAP.key -> E.data) -> MAP.key -> unit
val iter : (MAP.key -> E.data -> unit) -> unit
val iter_sorted : (SET.elt -> E.data -> unit) -> unit