Mavryk_workers.Worker
Workers, their types and signatures, and a functor to make them.
module type T = sig ... end
Functor to build a group of workers. At that point, all the types are fixed and introspectable, but the actual parameters and event handlers can be tweaked for each individual worker.
module MakeGroup
(Name : Mavryk_base.Worker_intf.NAME)
(Request : Mavryk_base.Worker_intf.REQUEST) :
sig ... end
module WG = MakeGroup (Name) (Request)
defines a worker group all using the same Name
, Event
, etc. To instantiate a worker from a group, you must give the Types
parameter: WG.MakeWorker(Types)
. This defines a Worker
module of type T
. This last instantiation can be safely used as first class module.
module MakeSingle
(Name : Mavryk_base.Worker_intf.NAME)
(Request : Mavryk_base.Worker_intf.REQUEST)
(Types : Mavryk_base.Worker_intf.TYPES) :
T
with module Name = Name
and module Request = Request
and module Types = Types
MakeSingle (Name) (Request) (Types)
is the same as using MakeGroup
and then MakeWorker
. It's a special case which you can use if you only ever need a single instantiation.