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 RoutingMessageHandler extends CommonBase {
10 RoutingMessageHandler(Object _dummy, long ptr) { super(ptr); }
11 public RoutingMessageHandler(bindings.LDKRoutingMessageHandler arg) {
12 super(bindings.LDKRoutingMessageHandler_new(arg));
13 this.ptrs_to.add(arg);
15 @Override @SuppressWarnings("deprecation")
16 protected void finalize() throws Throwable {
17 bindings.RoutingMessageHandler_free(ptr); super.finalize();
20 public Result_boolLightningErrorZ handle_node_announcement(NodeAnnouncement msg) {
21 long ret = bindings.RoutingMessageHandler_handle_node_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
22 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
23 ret_hu_conv.ptrs_to.add(this);
24 this.ptrs_to.add(msg);
28 public Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg) {
29 long ret = bindings.RoutingMessageHandler_handle_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
30 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
31 ret_hu_conv.ptrs_to.add(this);
32 this.ptrs_to.add(msg);
36 public Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg) {
37 long ret = bindings.RoutingMessageHandler_handle_channel_update(this.ptr, msg == null ? 0 : msg.ptr & ~1);
38 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
39 ret_hu_conv.ptrs_to.add(this);
40 this.ptrs_to.add(msg);
44 // Skipped RoutingMessageHandler_handle_htlc_fail_channel_update
45 public ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>[] get_next_channel_announcements(long starting_point, byte batch_amount) {
46 long[] ret = bindings.RoutingMessageHandler_get_next_channel_announcements(this.ptr, starting_point, batch_amount);
47 ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>[] arr_conv_63_arr = new ThreeTuple[ret.length];
48 for (int l = 0; l < ret.length; l++) {
49 long arr_conv_63 = ret[l];
50 long arr_conv_63_a = bindings.LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_get_a(arr_conv_63);
51 ChannelAnnouncement arr_conv_63_a_hu_conv = new ChannelAnnouncement(null, arr_conv_63_a);;
52 long arr_conv_63_b = bindings.LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_get_b(arr_conv_63);
53 ChannelUpdate arr_conv_63_b_hu_conv = new ChannelUpdate(null, arr_conv_63_b);;
54 long arr_conv_63_c = bindings.LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_get_c(arr_conv_63);
55 ChannelUpdate arr_conv_63_c_hu_conv = new ChannelUpdate(null, arr_conv_63_c);;
56 ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate> arr_conv_63_conv = new ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>(arr_conv_63_a_hu_conv, arr_conv_63_b_hu_conv, arr_conv_63_c_hu_conv);
57 arr_conv_63_arr[l] = arr_conv_63_conv;
59 return arr_conv_63_arr;
62 public NodeAnnouncement[] get_next_node_announcements(byte[] starting_point, byte batch_amount) {
63 long[] ret = bindings.RoutingMessageHandler_get_next_node_announcements(this.ptr, starting_point, batch_amount);
64 NodeAnnouncement[] arr_conv_18_arr = new NodeAnnouncement[ret.length];
65 for (int s = 0; s < ret.length; s++) {
66 long arr_conv_18 = ret[s];
67 NodeAnnouncement arr_conv_18_hu_conv = new NodeAnnouncement(null, arr_conv_18);
68 arr_conv_18_arr[s] = arr_conv_18_hu_conv;
70 return arr_conv_18_arr;
73 public boolean should_request_full_sync(byte[] node_id) {
74 boolean ret = bindings.RoutingMessageHandler_should_request_full_sync(this.ptr, node_id);