Interface IDestructable
- All Known Implementing Classes:
NdBinding,NdComplexTypeSignature,NdConstant,NdConstantAnnotation,NdConstantArray,NdConstantBoolean,NdConstantByte,NdConstantChar,NdConstantClass,NdConstantDouble,NdConstantEnum,NdConstantFloat,NdConstantInt,NdConstantLong,NdConstantShort,NdConstantString,NdMethod,NdMethodAnnotationData,NdNode,NdResourceFile,NdType,NdTypeAnnotation,NdTypeArgument,NdTypeId,NdTypeInterface,NdTypeSignature,NdVariable,NdWorkspaceLocation
public interface IDestructable
This mix-in interface is implemented by database objects that require a custom
destruction step.
-
Method Summary
Modifier and TypeMethodDescriptionvoiddestruct()Intended to be implemented by objects which require a custom destruction step.
-
Method Details
-
destruct
void destruct()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 isNdNode.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
-