TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

interface IInitializable in Tinman.Core.System

Base interface for disposable classes that provide an explicit method for initialization.

interface IInitializable extends IDisposable
  base of Initializable
  IRenderEffectBase
  IWidget

Remarks

The following figure illustrates the state transitions an IInitializable object undergoes during its lifecycle (see LifecycleState):

 ##            +--------------+
#### --------> |   Created    |
 ##   ctor()   +--------------+
                      |
                      | Initialize()
                      v
               +--------------+
               | Initializing |
               +--------------+
               | Initialized  |
               +--------------+
                      |
                      | Dispose()
                      v
               +--------------+
               |  Disposing   |
               +--------------+            ##
               |  Disposed    | --------> #  #
               +--------------+  ~dtor()   ##
An IInitializable object may be disposed before it has been initialized (i.e the Initialize method has never been called or has thrown an exception); implementing classes must take this into account, for example by performing proper null checks during Dispose.

Attributes

IsSoleOwnership

Will this object be disposed upon the next call to Dispose?

[ThreadSafe]
property IsSoleOwnership { get }
type bool
value true if the object will be disposed when Dispose is called,
false if the object will not be disposed, because some other code is still holding shared ownership (see AcquireBase).
inherited IDisposable.IsSoleOwnership

LifecycleState

Returns the lifecycle state of this object.

property LifecycleState { get }
type LifecycleState
value The lifecycle state.
inherited ILifecycleState.LifecycleState

Methods

AcquireBase

Acquires a strong reference to this disposable object.

[OwnerReturn, Pure]
method AcquireBase (bool allowNull = false)
type IDisposable
params allowNull Depicts what to do when this object is no longer valid:
true: return null
false: throw an exception
returns The strong reference to this disposable object or null iff allowNull is true and this object is no longer valid.
inherited IDisposable.AcquireBase

Remarks:

The object will not be actually disposed by calls to IDisposable when there is at least one strong reference left. Code that calls this method is responsible for calling the IDisposable method accordingly.

This method is not intended to be used in performance-critical code. It should only be used to high-level resource management.

Using this method usually requires type casting. Subclasses may additionally implement IDisposableGeneric, in order to provide some syntactic sugar for that.

Exceptions:

Dispose

Releases all resources held by this object if there are no more strong references to it, decrements the reference counter by one otherwise.

[Dispose, OwnerThis, ThreadSafe]
method Dispose ()
inherited IDisposable.Dispose

Remarks:

The Dispose method silently returns if the object has already been disposed.

Implementing methods must not throw any exceptions.

Initialize

Initializes the object, if necessary.

method Initialize ()

Remarks:

The Initialize method returns silently if the object is already in the state Initialized.

Exceptions: