3 import CommonBase from './CommonBase';
4 import * as bindings from '../bindings' // TODO: figure out location
8 export class RoutingMessageHandler extends CommonBase {
10 bindings_instance?: bindings.LDKRoutingMessageHandler;
12 constructor(ptr?: number, arg?: bindings.LDKRoutingMessageHandler, messageSendEventsProvider?: bindings.LDKMessageSendEventsProvider) {
13 if (Number.isFinite(ptr)) {
15 this.bindings_instance = null;
17 // TODO: private constructor instantiation
18 super(bindings.LDKRoutingMessageHandler_new(arg, messageSendEventsProvider));
19 this.ptrs_to.push(arg);
20 this.ptrs_to.push(messageSendEventsProvider);
25 protected finalize() {
27 bindings.RoutingMessageHandler_free(this.ptr);
32 static new_impl(arg: RoutingMessageHandlerInterface, messageSendEventsProvider_impl: MessageSendEventsProvider.MessageSendEventsProviderInterface): RoutingMessageHandler {
33 const impl_holder: LDKRoutingMessageHandlerHolder = new LDKRoutingMessageHandlerHolder();
34 let structImplementation = <bindings.LDKRoutingMessageHandler>{
35 // todo: in-line interface filling
36 handle_node_announcement (msg: number): number {
37 const msg_hu_conv: NodeAnnouncement = new NodeAnnouncement(null, msg);
38 Result_boolLightningErrorZ ret = arg.handle_node_announcement(msg_hu_conv);
39 result: number = ret != null ? ret.ptr : 0;
43 handle_channel_announcement (msg: number): number {
44 const msg_hu_conv: ChannelAnnouncement = new ChannelAnnouncement(null, msg);
45 Result_boolLightningErrorZ ret = arg.handle_channel_announcement(msg_hu_conv);
46 result: number = ret != null ? ret.ptr : 0;
50 handle_channel_update (msg: number): number {
51 const msg_hu_conv: ChannelUpdate = new ChannelUpdate(null, msg);
52 Result_boolLightningErrorZ ret = arg.handle_channel_update(msg_hu_conv);
53 result: number = ret != null ? ret.ptr : 0;
57 get_next_channel_announcements (starting_point: number, batch_amount: number): number[] {
58 ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>[] ret = arg.get_next_channel_announcements(starting_point, batch_amount);
59 result: number[] = ret != null ? Arrays.stream(ret).map(ret_conv_63 -> bindings.C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_new(ret_conv_63.a == null ? 0 : ret_conv_63.a.ptr & ~1, ret_conv_63.b == null ? 0 : ret_conv_63.b.ptr & ~1, ret_conv_63.c == null ? 0 : ret_conv_63.c.ptr & ~1)).toArray(number[]::new) : null;
60 for (ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate> ret_conv_63: ret) { impl_holder.held.ptrs_to.add(ret_conv_63.a); impl_holder.held.ptrs_to.add(ret_conv_63.b); impl_holder.held.ptrs_to.add(ret_conv_63.c); };
64 get_next_node_announcements (starting_point: Uint8Array, batch_amount: number): number[] {
65 NodeAnnouncement[] ret = arg.get_next_node_announcements(starting_point, batch_amount);
66 result: number[] = ret != null ? Arrays.stream(ret).map(ret_conv_18 -> ret_conv_18 == null ? 0 : ret_conv_18.ptr & ~1).toArray(number[]::new) : null;
67 for (NodeAnnouncement ret_conv_18: ret) { impl_holder.held.ptrs_to.add(ret_conv_18); };
71 sync_routing_table (their_node_id: Uint8Array, init: number): void {
72 const init_hu_conv: Init = new Init(null, init);
73 arg.sync_routing_table(their_node_id, init_hu_conv);
76 handle_reply_channel_range (their_node_id: Uint8Array, msg: number): number {
77 const msg_hu_conv: ReplyChannelRange = new ReplyChannelRange(null, msg);
78 msg_hu_conv.ptrs_to.add(this);
79 Result_NoneLightningErrorZ ret = arg.handle_reply_channel_range(their_node_id, msg_hu_conv);
80 result: number = ret != null ? ret.ptr : 0;
84 handle_reply_short_channel_ids_end (their_node_id: Uint8Array, msg: number): number {
85 const msg_hu_conv: ReplyShortChannelIdsEnd = new ReplyShortChannelIdsEnd(null, msg);
86 msg_hu_conv.ptrs_to.add(this);
87 Result_NoneLightningErrorZ ret = arg.handle_reply_short_channel_ids_end(their_node_id, msg_hu_conv);
88 result: number = ret != null ? ret.ptr : 0;
92 handle_query_channel_range (their_node_id: Uint8Array, msg: number): number {
93 const msg_hu_conv: QueryChannelRange = new QueryChannelRange(null, msg);
94 msg_hu_conv.ptrs_to.add(this);
95 Result_NoneLightningErrorZ ret = arg.handle_query_channel_range(their_node_id, msg_hu_conv);
96 result: number = ret != null ? ret.ptr : 0;
100 handle_query_short_channel_ids (their_node_id: Uint8Array, msg: number): number {
101 const msg_hu_conv: QueryShortChannelIds = new QueryShortChannelIds(null, msg);
102 msg_hu_conv.ptrs_to.add(this);
103 Result_NoneLightningErrorZ ret = arg.handle_query_short_channel_ids(their_node_id, msg_hu_conv);
104 result: number = ret != null ? ret.ptr : 0;
110 impl_holder.held = new RoutingMessageHandler (null, structImplementation, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance);
114 export interface RoutingMessageHandlerInterface {
115 handle_node_announcement(msg: NodeAnnouncement): Result_boolLightningErrorZ;
116 handle_channel_announcement(msg: ChannelAnnouncement): Result_boolLightningErrorZ;
117 handle_channel_update(msg: ChannelUpdate): Result_boolLightningErrorZ;
118 get_next_channel_announcements(starting_point: number, batch_amount: number): ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>[];
119 get_next_node_announcements(starting_point: Uint8Array, batch_amount: number): NodeAnnouncement[];
120 sync_routing_table(their_node_id: Uint8Array, init: Init): void;
121 handle_reply_channel_range(their_node_id: Uint8Array, msg: ReplyChannelRange): Result_NoneLightningErrorZ;
122 handle_reply_short_channel_ids_end(their_node_id: Uint8Array, msg: ReplyShortChannelIdsEnd): Result_NoneLightningErrorZ;
123 handle_query_channel_range(their_node_id: Uint8Array, msg: QueryChannelRange): Result_NoneLightningErrorZ;
124 handle_query_short_channel_ids(their_node_id: Uint8Array, msg: QueryShortChannelIds): Result_NoneLightningErrorZ;
128 class LDKRoutingMessageHandlerHolder {
129 held: RoutingMessageHandler;
131 public Result_boolLightningErrorZ handle_node_announcement(NodeAnnouncement msg) {
132 number ret = bindings.RoutingMessageHandler_handle_node_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
133 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
134 this.ptrs_to.add(msg);
138 public Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg) {
139 number ret = bindings.RoutingMessageHandler_handle_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
140 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
141 this.ptrs_to.add(msg);
145 public Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg) {
146 number ret = bindings.RoutingMessageHandler_handle_channel_update(this.ptr, msg == null ? 0 : msg.ptr & ~1);
147 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
148 this.ptrs_to.add(msg);
152 public ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>[] get_next_channel_announcements(number starting_point, number batch_amount) {
153 number[] ret = bindings.RoutingMessageHandler_get_next_channel_announcements(this.ptr, starting_point, batch_amount);
154 ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>[] ret_conv_63_arr = new ThreeTuple[ret.length];
155 for (int l = 0; l < ret.length; l++) {
156 number ret_conv_63 = ret[l];
157 number ret_conv_63_a = bindings.LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_get_a(ret_conv_63);
158 const ret_conv_63_a_hu_conv: ChannelAnnouncement = new ChannelAnnouncement(null, ret_conv_63_a);
159 ret_conv_63_a_hu_conv.ptrs_to.add(this);;
160 number ret_conv_63_b = bindings.LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_get_b(ret_conv_63);
161 const ret_conv_63_b_hu_conv: ChannelUpdate = new ChannelUpdate(null, ret_conv_63_b);
162 ret_conv_63_b_hu_conv.ptrs_to.add(this);;
163 number ret_conv_63_c = bindings.LDKC3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_get_c(ret_conv_63);
164 const ret_conv_63_c_hu_conv: ChannelUpdate = new ChannelUpdate(null, ret_conv_63_c);
165 ret_conv_63_c_hu_conv.ptrs_to.add(this);;
166 ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate> ret_conv_63_conv = new ThreeTuple<ChannelAnnouncement, ChannelUpdate, ChannelUpdate>(ret_conv_63_a_hu_conv, ret_conv_63_b_hu_conv, ret_conv_63_c_hu_conv, () -> {
167 bindings.C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ_free(ret_conv_63);
169 ret_conv_63_a_hu_conv.ptrs_to.add(ret_conv_63_conv);
170 ret_conv_63_b_hu_conv.ptrs_to.add(ret_conv_63_conv);
171 ret_conv_63_c_hu_conv.ptrs_to.add(ret_conv_63_conv);
172 ret_conv_63_arr[l] = ret_conv_63_conv;
174 return ret_conv_63_arr;
177 public NodeAnnouncement[] get_next_node_announcements(Uint8Array starting_point, number batch_amount) {
178 number[] ret = bindings.RoutingMessageHandler_get_next_node_announcements(this.ptr, starting_point, batch_amount);
179 NodeAnnouncement[] ret_conv_18_arr = new NodeAnnouncement[ret.length];
180 for (int s = 0; s < ret.length; s++) {
181 number ret_conv_18 = ret[s];
182 const ret_conv_18_hu_conv: NodeAnnouncement = new NodeAnnouncement(null, ret_conv_18);
183 ret_conv_18_hu_conv.ptrs_to.add(this);
184 ret_conv_18_arr[s] = ret_conv_18_hu_conv;
186 return ret_conv_18_arr;
189 public void sync_routing_table(Uint8Array their_node_id, Init init) {
190 bindings.RoutingMessageHandler_sync_routing_table(this.ptr, their_node_id, init == null ? 0 : init.ptr & ~1);
191 this.ptrs_to.add(init);
194 public Result_NoneLightningErrorZ handle_reply_channel_range(Uint8Array their_node_id, ReplyChannelRange msg) {
195 number ret = bindings.RoutingMessageHandler_handle_reply_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
196 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
197 this.ptrs_to.add(msg);
201 public Result_NoneLightningErrorZ handle_reply_short_channel_ids_end(Uint8Array their_node_id, ReplyShortChannelIdsEnd msg) {
202 number ret = bindings.RoutingMessageHandler_handle_reply_short_channel_ids_end(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
203 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
204 this.ptrs_to.add(msg);
208 public Result_NoneLightningErrorZ handle_query_channel_range(Uint8Array their_node_id, QueryChannelRange msg) {
209 number ret = bindings.RoutingMessageHandler_handle_query_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
210 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
211 this.ptrs_to.add(msg);
215 public Result_NoneLightningErrorZ handle_query_short_channel_ids(Uint8Array their_node_id, QueryShortChannelIds msg) {
216 number ret = bindings.RoutingMessageHandler_handle_query_short_channel_ids(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
217 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
218 this.ptrs_to.add(msg);