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.
32 lines • 1.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SharedTypedArrayTuple = void 0;
const shared_memory_block_js_1 = require("../../web-assembly/shared-memory/shared-memory-block.js");
const is_little_endian_js_1 = require("../../web-assembly/util/is-little-endian.js");
/**
@public
{@inheritDoc ISharedTypedArrayTuple}
*/
class SharedTypedArrayTuple {
static createOne(typedArrayCtor, bindToReference, wrapper) {
const byteSize = typedArrayCtor.BYTES_PER_ELEMENT * typedArrayCtor.factory.elementCount;
const block = shared_memory_block_js_1.SharedMemoryBlock.createOne(wrapper, bindToReference, byteSize);
return new SharedTypedArrayTuple(block);
}
getWrapper() {
return this.memory.getWrapper();
}
copyToBuffer(readFrom) {
readFrom.copyToBuffer(this.memory.getDataView(), 0, SharedTypedArrayTuple.littleEndian);
}
copyFromBuffer(writeTo) {
writeTo.copyFromBuffer(this.memory.getDataView(), 0, SharedTypedArrayTuple.littleEndian);
}
constructor(memory) {
this.memory = memory;
this.resourceHandle = memory.resourceHandle;
}
}
exports.SharedTypedArrayTuple = SharedTypedArrayTuple;
SharedTypedArrayTuple.littleEndian = is_little_endian_js_1.isLittleEndian;
//# sourceMappingURL=shared-typed-array-tuple.js.map