Static objects
InInit<module> _instance; //registration object
Constructor for registration object
in!nit<module>: : Inlnit () { 602
603
Registering Dependencies
addDependency(Inlnit<database>::gelType() );
Register Dependency (typelr.f o (Inlnit<initialize>) . type ID () );
Register Dependency (typelr.f o (Inlnit<process>) . type ID () );
RegisterDependency(typeInfo(Inlnit<cache>).typelD());
RegisterDependency ( Lypelnf o (Inlrii Kcon Linuation>) . LypelDO );
u . ^ . r , , 604 605 606 607
Registering Context
addContext(InInit<process>:: getType(context, slot, value));
}
Module () { // the rest of the main function goes here
f (Context) — 609 608 F (Cache) "~\^610
F (Continuation) <'~x^_^ 61i
// Other functions, including initialise () and finalise ()
Module initialisation and finalisation functions
InInit<module>: :perf ormlnitialise () g"|2
// whatever initialisation this module requires
void Tnln i t<modu 1 e>: :pertormFi na 1 i ze () *—^ g<| 3 // whatever finalisation this module requires