Sasacore.Register
This module duplicates and extends the Algo module with get_* functions.
The rationale for defining such a module is to be able to hide the get_* functions from the Algo interface. Indeed, they are only called by the sasa engine, and it is dangerous and useless to expose them to algorithms designers.
val reg_init_state : algo_id -> (int -> string -> 's) -> unit
val reg_enable : algo_id -> 's enable_fun -> unit
val reg_potential : 's potential_fun option -> unit
val reg_init_search_utils : 's state_to_values_fun option -> unit
val reg_legitimate : 's legitimate_fun option -> unit
val reg_fault : 's fault_fun option -> unit
val reg_actions : action list -> unit
val get_enable : algo_id -> 's enable_fun
val get_init_state : algo_id -> int -> string -> 's
val get_actions : unit -> action list
val get_potential : unit -> 's potential_fun option
val get_init_search_utils : unit -> 's state_to_values_fun option
val get_legitimate : unit -> 's legitimate_fun option
val get_fault : unit -> 's fault_fun option
val set_topology : Topology.t -> unit
Those are called by sasa once the graph has been parsed