rc-js-util
Version:
A collection of TS and C++ utilities to help writing performant and correct applications, achieved through strict typing and (removable) invariant checking.
31 lines • 1.56 kB
TypeScript
import { IEmscriptenWrapper } from "../emscripten/i-emscripten-wrapper.js";
import { type IManagedObject, type IManagedResourceNode, type IPointer } from "../../lifecycle/manged-resources.js";
import { TTypedArrayCtor } from "../../array/typed-array/t-typed-array-ctor.js";
import type { IBuffer } from "../../array/typed-array/i-buffer-view.js";
import { ENumberIdentifier } from "../../runtime/rtti-interop.js";
import type { IInteropBindings } from "../emscripten/i-interop-bindings.js";
/**
* @public
* Provides a view into shared memory, which avoids the need to keep recreating shared arrays. The view is NOT owning.
*/
export interface ISharedBufferView<TCtor extends TTypedArrayCtor> extends IManagedObject, IPointer, IBuffer<TCtor> {
}
/**
* @public
* {@inheritDoc ISharedBufferView}
*/
export declare class SharedBufferView<TCtor extends TTypedArrayCtor> implements ISharedBufferView<TCtor> {
protected readonly wrapper: IEmscriptenWrapper<IInteropBindings>;
readonly ctor: TCtor;
readonly resourceHandle: IManagedResourceNode;
readonly pointer: number;
readonly byteSize: number;
readonly numberId: ENumberIdentifier;
constructor(wrapper: IEmscriptenWrapper<IInteropBindings>, owner: IManagedResourceNode | null, ctor: TCtor, pointerToData: number, byteSize: number);
getWrapper(): IEmscriptenWrapper<IInteropBindings>;
getSharedObjectHandle(): IManagedObject;
getDataView(): DataView;
getArray(): InstanceType<TCtor>;
private readonly impl;
}
//# sourceMappingURL=shared-buffer-view.d.ts.map