08596b67e79e5d1cccdd0749601554a61557739d
[ldk-java] / ts / structs / Filter.ts
1
2 import CommonBase from './CommonBase';
3 import * as bindings from '../bindings' // TODO: figure out location
4
5 public class Filter extends CommonBase {
6         final bindings.LDKFilter bindings_instance;
7         Filter(Object _dummy, long ptr) { super(ptr); bindings_instance = null; }
8         private Filter(bindings.LDKFilter arg) {
9                 super(bindings.LDKFilter_new(arg));
10                 this.ptrs_to.add(arg);
11                 this.bindings_instance = arg;
12         }
13         @Override @SuppressWarnings("deprecation")
14         protected void finalize() throws Throwable {
15                 if (ptr != 0) { bindings.Filter_free(ptr); } super.finalize();
16         }
17
18         public static interface FilterInterface {
19                 void register_tx(byte[] txid, byte[] script_pubkey);
20                 void register_output(OutPoint outpoint, byte[] script_pubkey);
21         }
22         private static class LDKFilterHolder { Filter held; }
23         public static Filter new_impl(FilterInterface arg) {
24                 final LDKFilterHolder impl_holder = new LDKFilterHolder();
25                 impl_holder.held = new Filter(new bindings.LDKFilter() {
26                         @Override public void register_tx(byte[] txid, byte[] script_pubkey) {
27                                 arg.register_tx(txid, script_pubkey);
28                         }
29                         @Override public void register_output(uint32_t outpoint, byte[] script_pubkey) {
30                                 OutPoint outpoint_hu_conv = new OutPoint(null, outpoint);
31                                 arg.register_output(outpoint_hu_conv, script_pubkey);
32                         }
33                 });
34                 return impl_holder.held;
35         }
36         public void register_tx(byte[] txid, byte[] script_pubkey) {
37                 bindings.Filter_register_tx(this.ptr, txid, script_pubkey);
38         }
39
40         public void register_output(OutPoint outpoint, byte[] script_pubkey) {
41                 bindings.Filter_register_output(this.ptr, outpoint == null ? 0 : outpoint.ptr & ~1, script_pubkey);
42                 this.ptrs_to.add(outpoint);
43         }
44
45 }