adapt_js / Exports / AdaptObject

Class: AdaptObject

Hierarchy

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:15

Accessors

lifetime

get lifetime(): undefined | AdaptObjectLifetime

Returns

undefined | AdaptObjectLifetime

Defined in

common/dist/memory_management/adapt_object_lifetime.d.ts:54

set lifetime(lt): void

Parameters

Name Type
lt undefined | AdaptObjectLifetime

Returns

void

Defined in

common/dist/memory_management/adapt_object_lifetime.d.ts:55

Methods

Attach

Attach(lt?): AdaptObject

Attach an object to the given lifetime object.

When a lifetime object has already been defined, first detach the object from the previous lifetime object, then attach it 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

AdaptObject

Defined in

common/dist/memory_management/adapt_object_lifetime.d.ts:76


Clone

Abstract Clone(lifetime?): AdaptObject

Parameters

Name Type
lifetime? AdaptObjectLifetime

Returns

AdaptObject

Defined in

common/dist/memory_management/adapt_object_lifetime.d.ts:41


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:34


Detach

Detach(): AdaptObject

Detach the value from the lifetime object.

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

AdaptObject

Defined in

common/dist/memory_management/adapt_object_lifetime.d.ts:92