X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ts%2Fstructs%2FListen.ts;fp=ts%2Fstructs%2FListen.ts;h=9e6ad6f9ad593e27f4b93470e2d5f5d1278f9851;hb=246459dcbc3be28c38b4951140a5933f4b3aa024;hp=0000000000000000000000000000000000000000;hpb=b52dde859c138f9257499496749d1eb89f9f6f43;p=ldk-java diff --git a/ts/structs/Listen.ts b/ts/structs/Listen.ts new file mode 100644 index 00000000..9e6ad6f9 --- /dev/null +++ b/ts/structs/Listen.ts @@ -0,0 +1,66 @@ + + +import CommonBase from './CommonBase'; +import * as bindings from '../bindings' // TODO: figure out location + + + + export class Listen extends CommonBase { + + bindings_instance?: bindings.LDKListen; + + constructor(ptr?: number, arg?: bindings.LDKListen) { + if (Number.isFinite(ptr)) { + super(ptr); + this.bindings_instance = null; + } else { + // TODO: private constructor instantiation + super(bindings.LDKListen_new(arg)); + this.ptrs_to.push(arg); + + } + } + + protected finalize() { + if (this.ptr != 0) { + bindings.Listen_free(this.ptr); + } + super.finalize(); + } + + static new_impl(arg: ListenInterface): Listen { + const impl_holder: LDKListenHolder = new LDKListenHolder(); + let structImplementation = { + // todo: in-line interface filling + block_connected (block: Uint8Array, height: number): void { + arg.block_connected(block, height); + }, + + block_disconnected (header: Uint8Array, height: number): void { + arg.block_disconnected(header, height); + }, + + + }; + impl_holder.held = new Listen (null, structImplementation); + } + } + + export interface ListenInterface { + block_connected(block: Uint8Array, height: number): void; + block_disconnected(header: Uint8Array, height: number): void; + + } + + class LDKListenHolder { + held: Listen; + } + public void block_connected(Uint8Array block, number height) { + bindings.Listen_block_connected(this.ptr, block, height); + } + + public void block_disconnected(Uint8Array header, number height) { + bindings.Listen_block_disconnected(this.ptr, header, height); + } + +}