The AdaptObjectLifetime class stores a list of AdaptObjects existing within that lifetime.
When you no longer need an object, call lifetime.Finalize(), which in turn calls AdaptObject.Destroy() for every stored object.
Note: The value implementing this interface must have a Destroy method.
The need for this mechanism is dictated by the Wasm deployment of ADAPT, in which no automated garbage-collection of JS-referenced objects is currently possible. Expect this mechanism to become deprecated when the Wasm community wakes up and fixes this insanity.
Table of contents
Constructors
Methods
Constructors
constructor
• new AdaptObjectLifetime()
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:97
Methods
Deposit
▸ Deposit(object
): void
Attach an object to the given lifetime object.
Example
AdaptEnvironment.InitializeAsync().then(() => {
const lifetime = new AdaptObjectLifetime();
const value = new AdaptValue(undefined, 5);
lifetime.Deposit(value);
lifetime.Finalize();
})
Parameters
Name | Type | Description |
---|---|---|
object |
AdaptObject |
The object to be attached to the lifetime object |
Returns
void
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:115
Finalize
▸ Finalize(): void
Destroy all the objects managed by the lifetime.
Example
AdaptEnvironment.InitializeAsync().then(() => {
const lifetime = new AdaptObjectLifetime();
const value = new AdaptValue(lifetime, 5);
const value1 = new AdaptValue(lifetime, 6);
lifetime.Finalize(); // both value and value1 get destroyed by this call
})
Returns
void
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:153
Withdraw
▸ Withdraw(object
): boolean
Delete an object from the set of objects managed by the lifetime, so the object does not get deleted when the Finalized
method is called.
Note: This method does not destroy the object.
Example
AdaptEnvironment.InitializeAsync().then(() => {
const lifetime = new AdaptObjectLifetime();
const value = new AdaptValue(lifetime, 5);
lifetime.Withdraw(value);
lifetime.Finalize(); // value is not destroyed
value.Destroy();
})
Parameters
Name | Type | Description |
---|---|---|
object |
AdaptObject |
The object to delete from the lifetime |
Returns
boolean
True if the object was deleted from the lifetime, otherwise false
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:136