6ec794e6479b99070ba00eef14f95b9f3130c6a9
[ldk-java] / src / main / java / org / ldk / structs / Filter.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7
8 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
9 public class Filter extends CommonBase {
10         final bindings.LDKFilter bindings_instance;
11         Filter(Object _dummy, long ptr) { super(ptr); bindings_instance = null; }
12         private Filter(bindings.LDKFilter arg) {
13                 super(bindings.LDKFilter_new(arg));
14                 this.ptrs_to.add(arg);
15                 this.bindings_instance = arg;
16         }
17         @Override @SuppressWarnings("deprecation")
18         protected void finalize() throws Throwable {
19                 if (ptr != 0) { bindings.Filter_free(ptr); } super.finalize();
20         }
21
22         public static interface FilterInterface {
23                 void register_tx(byte[] txid, byte[] script_pubkey);
24                 void register_output(OutPoint outpoint, byte[] script_pubkey);
25         }
26         public Filter(FilterInterface arg) {
27                 this(new bindings.LDKFilter() {
28                         @Override public void register_tx(byte[] txid, byte[] script_pubkey) {
29                                 arg.register_tx(txid, script_pubkey);
30                         }
31                         @Override public void register_output(long outpoint, byte[] script_pubkey) {
32                                 OutPoint outpoint_hu_conv = new OutPoint(null, outpoint);
33                                 arg.register_output(outpoint_hu_conv, script_pubkey);
34                         }
35                 });
36         }
37         public void register_tx(byte[] txid, byte[] script_pubkey) {
38                 bindings.Filter_register_tx(this.ptr, txid, script_pubkey);
39         }
40
41         public void register_output(OutPoint outpoint, byte[] script_pubkey) {
42                 bindings.Filter_register_output(this.ptr, outpoint == null ? 0 : outpoint.ptr & ~1, script_pubkey);
43                 this.ptrs_to.add(outpoint);
44         }
45
46 }