The AdaptObject class is the parent class of all the ADAPT JS API classes. The class is used for memory management and contains a Destroy method that frees the allocated C++ memory.
The class also stores and manages the reference to the lifetime object it’s attached to.
Note: All the objects created by an instance of the builder are attached to the same lifetime object.
Hierarchy
-
AdaptObject
Table of contents
Constructors
Accessors
Methods
Constructors
constructor
• new AdaptObject(lifetime?
)
Parameters
Name | Type |
---|---|
lifetime? |
AdaptObjectLifetime |
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:10
Accessors
lifetime
• get
lifetime(): undefined
| AdaptObjectLifetime
Returns
undefined
| AdaptObjectLifetime
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:50
• set
lifetime(lt
): void
Parameters
Name | Type |
---|---|
lt |
undefined | AdaptObjectLifetime |
Returns
void
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:51
Methods
Attach
▸ Attach(lt?
): AdaptObject
Attach object to the given lifetime.
In case when lifetime was already defined before, it detaches object from the previous lifetime and attaches to the new one.
Example
AdaptEnvironment.InitializeAsync().then(() => {
const lifetime = new AdaptObjectLifetime();
const lifetime1 = new AdaptObjectLifetime();
const value = new AdaptValue(lifetime, 5);
value.Attach(lifetime1);
lifetime.Finalize(); // value is not destroyed by this call
lifetime1.Finalize(); // value is destroyed
})
Parameters
Name | Type | Description |
---|---|---|
lt? |
AdaptObjectLifetime |
Lifetime to attach object to |
Returns
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:72
Clone
▸ Abstract
Clone(lifetime?
): AdaptObject
Parameters
Name | Type |
---|---|
lifetime? |
AdaptObjectLifetime |
Returns
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:37
Destroy
▸ Destroy(): void
Destroy the C++ object. After calling this method, the object reference is no longer valid and, thus, can’t be used.
Example
AdaptEnvironment.InitializeAsync().then(() => {
const lifetime = new AdaptObjectLifetime();
const value = new AdaptValue(lifetime, 5);
const anotherValue = value;
const valueCloned = value.Clone(undefined);
value.Destroy();
// both `value` and `anotherValue` can't be used because they are pointing to the same C++ object that has been deleted.
// however, `valueCloned` is valid because it points to another (cloned) C++ object.
valueCloned.Destroy();
lifetime.Finalize();
})
Returns
void
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:29
Detach
▸ Detach(): AdaptObject
Detach the value from the lifetime
Example
AdaptEnvironment.InitializeAsync().then(() => {
const lifetime = new AdaptObjectLifetime();
const value = new AdaptValue(lifetime, 5);
value.Detach(); // value must be destroyed manually now
lifetime.Finalize(); // value is not destroyed by this call
value.Destroy();
})
Returns
Defined in
common/dist/memory_management/adapt_object_lifetime.d.ts:88