1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
8 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
9 public class NetAddress extends CommonBase {
10 private NetAddress(Object _dummy, long ptr) { super(ptr); }
11 @Override @SuppressWarnings("deprecation")
12 protected void finalize() throws Throwable {
14 bindings.NetAddress_free(ptr);
16 long conv_to_c() { assert false; return 0; /* Should only be called on subclasses */ }
17 static NetAddress constr_from_ptr(long ptr) {
18 bindings.LDKNetAddress raw_val = bindings.LDKNetAddress_ref_from_ptr(ptr);
19 if (raw_val.getClass() == bindings.LDKNetAddress.IPv4.class) {
20 return new IPv4(ptr, (bindings.LDKNetAddress.IPv4)raw_val);
22 if (raw_val.getClass() == bindings.LDKNetAddress.IPv6.class) {
23 return new IPv6(ptr, (bindings.LDKNetAddress.IPv6)raw_val);
25 if (raw_val.getClass() == bindings.LDKNetAddress.OnionV2.class) {
26 return new OnionV2(ptr, (bindings.LDKNetAddress.OnionV2)raw_val);
28 if (raw_val.getClass() == bindings.LDKNetAddress.OnionV3.class) {
29 return new OnionV3(ptr, (bindings.LDKNetAddress.OnionV3)raw_val);
31 assert false; return null; // Unreachable without extending the (internal) bindings interface
34 public final static class IPv4 extends NetAddress {
37 private IPv4(long ptr, bindings.LDKNetAddress.IPv4 obj) {
42 @Override long conv_to_c() { return 0; /*XXX*/ }
44 public final static class IPv6 extends NetAddress {
47 private IPv6(long ptr, bindings.LDKNetAddress.IPv6 obj) {
52 @Override long conv_to_c() { return 0; /*XXX*/ }
54 public final static class OnionV2 extends NetAddress {
57 private OnionV2(long ptr, bindings.LDKNetAddress.OnionV2 obj) {
62 @Override long conv_to_c() { return 0; /*XXX*/ }
64 public final static class OnionV3 extends NetAddress {
65 public byte[] ed25519_pubkey;
66 public short checksum;
69 private OnionV3(long ptr, bindings.LDKNetAddress.OnionV3 obj) {
71 this.ed25519_pubkey = obj.ed25519_pubkey;
72 this.checksum = obj.checksum;
73 this.version = obj.version;
76 @Override long conv_to_c() { return 0; /*XXX*/ }