3 import CommonBase from './CommonBase';
4 import * as bindings from '../bindings' // TODO: figure out location
8 export class EventHandler extends CommonBase {
10 bindings_instance?: bindings.LDKEventHandler;
12 constructor(ptr?: number, arg?: bindings.LDKEventHandler) {
13 if (Number.isFinite(ptr)) {
15 this.bindings_instance = null;
17 // TODO: private constructor instantiation
18 super(bindings.LDKEventHandler_new(arg));
19 this.ptrs_to.push(arg);
24 protected finalize() {
26 bindings.EventHandler_free(this.ptr);
31 static new_impl(arg: EventHandlerInterface): EventHandler {
32 const impl_holder: LDKEventHandlerHolder = new LDKEventHandlerHolder();
33 let structImplementation = <bindings.LDKEventHandler>{
34 // todo: in-line interface filling
35 handle_event (event: number): void {
36 Event event_hu_conv = Event.constr_from_ptr(event);
37 arg.handle_event(event_hu_conv);
42 impl_holder.held = new EventHandler (null, structImplementation);
46 export interface EventHandlerInterface {
47 handle_event(event: Event): void;
51 class LDKEventHandlerHolder {
54 public void handle_event(Event event) {
55 bindings.EventHandler_handle_event(this.ptr, event == null ? 0 : event.ptr & ~1);
56 this.ptrs_to.add(event);