module Procunit: sig end
Contains the definitions for the processing units appearing an an
Incubator. An Incubator is a Swarm (see
Swarm
) containing two
kinds of residents, ligands (defined in
Ligand
) and processing
units, defined here.
exception Already_configured
Raised by a procunit if an attempt is made to configure it a
second time. A procunit's notifier should only be configured by
the Incubator itself, never by the harness.
class virtual t : object end
class virtual notifier : object end
We now introduce a distinguished class of very simple
processing units that can be used for simple purposes - the
typeA
processing units. They are characterized by the
following: each projection is associated with a function which
takes in a string (the bound string) and returns a fixed list of
output transactions; the click
method does nothing; the markers
are fixed.
type typeA_proj = {
|
matcher : Ligand.Matcher.matcher ; |
(* | The lifetime matcher of the projection | *) |
|
initially_active : bool ; |
(* | Active or not at creation | *) |
|
func : notifier -> string -> unit ; |
(* | The associative function. | *) |
}
Each projection is fully configured by an object of this type
information.
type typeA_conf = typeA_proj array
To configure all the projections.
val make_typeA_pu : typeA_conf -> t
Constructor for distinguished typeA
processing units.