SelfDestructOnUnRegisterOwner

 (Available in 00 TS Tools(Base) - TS_Tools_Root2)

Purpose

Set if the object 'SelfDestruct's whith its owner flag

Syntax

oSomeObject:SelfDestructOnUnRegisterOwner:=TRUE

Arguments

lSelfDestruct
LOGIC ( Default TRUE )

Description

If TRUE and the object has a owner, then the object will selfdestruct at the moment that the owner unregisters itself. This behavior can be modified if 'SelfDestructDisabledIfOwneds' is set TRUE. When this flag is set TRUE then no selfdestruct will take place until the last owned has been unregistered.

This behavior is only supported if the owner is derived from 'TS_Root0'

Source

ASSIGN SelfDestructOnUnRegisterOwner( lSelfDestructOnUnRegisterOwner AS LOGIC ) AS  ; ...
...LOGIC PASCAL CLASS TS_Root2
   TSTrace Enter
   DO CASE
   CASE LOGIC( _CAST, _AND( SELF:_ObjectStat2, TS_OBJSTAT2_SELFDESTRUCT_FREEZE  ; ...
  ... ) )
      TSTrace Warning "LOGIC(_CAST,_And(SELF:_ObjectStat2,TS_OBJSTAT2_SELFDESTRUCT_FREEZE))"
   CASE lSelfDestructOnUnRegisterOwner
      SELF:_ObjectStat2:=_OR( SELF:_ObjectStat2 ; ...
     ... , TS_OBJSTAT2_SELFDESTRUCT_ASSIGN )
      SELF:_ObjectStat2:=_OR( SELF:_ObjectStat2 ; ...
     ... , TS_OBJSTAT2_SELFDESTRUCT )
   OTHERWISE
      SELF:_ObjectStat2:=_OR( SELF:_ObjectStat2 ; ...
     ... , TS_OBJSTAT2_SELFDESTRUCT_ASSIGN )
      SELF:_ObjectStat2:=_AND( SELF:_ObjectStat2 ; ...
     ... , _NOT( TS_OBJSTAT2_SELFDESTRUCT ) )
   END
   TSTrace Leave
RETURN _AND( SELF:_ObjectStat2, TS_OBJSTAT2_TEST_SELFDESTRUCT  ; ...
...)==TS_OBJSTAT2_CAN_SELFDESTRUCT