Intended to be implemented by objects which require a custom destruction step.
This should normally not be invoked by clients, since custom destruction is just
one step in tearing down an object. The normal way to tear down an object is
NdNode.delete()
If you are writing code that must run as part of delete (or are implementing part
of the destruct method on a custom ITypeFactory)the correct steps to destructing
an object are:
- Invoke this destruct method (which serves the same purpose as the user-implemented
portion of a C++ destructor)
- Invoke ITypeFactory.destructFields to destruct its fields (which serves the same
purpose as the compiler-implemented portion of a C++ destructor)
- Invoke Database.free on its address to free up memory allocated for the object
itself. (Which serves the same purpose as the memory deallocation step in
the C++ delete operator)
Normally, first two steps are performed together as part of ITypeFactory.destruct