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 event_hu_conv.ptrs_to.add(this);
38 arg.handle_event(event_hu_conv);
43 impl_holder.held = new EventHandler (null, structImplementation);
47 export interface EventHandlerInterface {
48 handle_event(event: Event): void;
52 class LDKEventHandlerHolder {
55 public void handle_event(Event event) {
56 bindings.EventHandler_handle_event(this.ptr, event.ptr);