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_ChannelAnnouncementChannelUpdateChannelUpdateZ[] ret = arg.get_next_channel_announcements(starting_point, batch_amount);
59 result: number[] = ret != null ? Arrays.stream(ret).map(ret_conv_59 -> ret_conv_59 != null ? ret_conv_59.ptr : 0).toArray(number[]::new) : null;
63 get_next_node_announcements (starting_point: Uint8Array, batch_amount: number): number[] {
64 NodeAnnouncement[] ret = arg.get_next_node_announcements(starting_point, batch_amount);
65 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;
66 for (NodeAnnouncement ret_conv_18: ret) { impl_holder.held.ptrs_to.add(ret_conv_18); };
70 sync_routing_table (their_node_id: Uint8Array, init: number): void {
71 const init_hu_conv: Init = new Init(null, init);
72 arg.sync_routing_table(their_node_id, init_hu_conv);
75 handle_reply_channel_range (their_node_id: Uint8Array, msg: number): number {
76 const msg_hu_conv: ReplyChannelRange = new ReplyChannelRange(null, msg);
77 msg_hu_conv.ptrs_to.add(this);
78 Result_NoneLightningErrorZ ret = arg.handle_reply_channel_range(their_node_id, msg_hu_conv);
79 result: number = ret != null ? ret.ptr : 0;
83 handle_reply_short_channel_ids_end (their_node_id: Uint8Array, msg: number): number {
84 const msg_hu_conv: ReplyShortChannelIdsEnd = new ReplyShortChannelIdsEnd(null, msg);
85 msg_hu_conv.ptrs_to.add(this);
86 Result_NoneLightningErrorZ ret = arg.handle_reply_short_channel_ids_end(their_node_id, msg_hu_conv);
87 result: number = ret != null ? ret.ptr : 0;
91 handle_query_channel_range (their_node_id: Uint8Array, msg: number): number {
92 const msg_hu_conv: QueryChannelRange = new QueryChannelRange(null, msg);
93 msg_hu_conv.ptrs_to.add(this);
94 Result_NoneLightningErrorZ ret = arg.handle_query_channel_range(their_node_id, msg_hu_conv);
95 result: number = ret != null ? ret.ptr : 0;
99 handle_query_short_channel_ids (their_node_id: Uint8Array, msg: number): number {
100 const msg_hu_conv: QueryShortChannelIds = new QueryShortChannelIds(null, msg);
101 msg_hu_conv.ptrs_to.add(this);
102 Result_NoneLightningErrorZ ret = arg.handle_query_short_channel_ids(their_node_id, msg_hu_conv);
103 result: number = ret != null ? ret.ptr : 0;
109 impl_holder.held = new RoutingMessageHandler (null, structImplementation, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance);
113 export interface RoutingMessageHandlerInterface {
114 handle_node_announcement(msg: NodeAnnouncement): Result_boolLightningErrorZ;
115 handle_channel_announcement(msg: ChannelAnnouncement): Result_boolLightningErrorZ;
116 handle_channel_update(msg: ChannelUpdate): Result_boolLightningErrorZ;
117 get_next_channel_announcements(starting_point: number, batch_amount: number): ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[];
118 get_next_node_announcements(starting_point: Uint8Array, batch_amount: number): NodeAnnouncement[];
119 sync_routing_table(their_node_id: Uint8Array, init: Init): void;
120 handle_reply_channel_range(their_node_id: Uint8Array, msg: ReplyChannelRange): Result_NoneLightningErrorZ;
121 handle_reply_short_channel_ids_end(their_node_id: Uint8Array, msg: ReplyShortChannelIdsEnd): Result_NoneLightningErrorZ;
122 handle_query_channel_range(their_node_id: Uint8Array, msg: QueryChannelRange): Result_NoneLightningErrorZ;
123 handle_query_short_channel_ids(their_node_id: Uint8Array, msg: QueryShortChannelIds): Result_NoneLightningErrorZ;
127 class LDKRoutingMessageHandlerHolder {
128 held: RoutingMessageHandler;
130 public Result_boolLightningErrorZ handle_node_announcement(NodeAnnouncement msg) {
131 number ret = bindings.RoutingMessageHandler_handle_node_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
132 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
133 this.ptrs_to.add(msg);
137 public Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg) {
138 number ret = bindings.RoutingMessageHandler_handle_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
139 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
140 this.ptrs_to.add(msg);
144 public Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg) {
145 number ret = bindings.RoutingMessageHandler_handle_channel_update(this.ptr, msg == null ? 0 : msg.ptr & ~1);
146 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
147 this.ptrs_to.add(msg);
151 public ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[] get_next_channel_announcements(number starting_point, number batch_amount) {
152 number[] ret = bindings.RoutingMessageHandler_get_next_channel_announcements(this.ptr, starting_point, batch_amount);
153 ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[] ret_conv_59_arr = new ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[ret.length];
154 for (int h = 0; h < ret.length; h++) {
155 number ret_conv_59 = ret[h];
156 ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ ret_conv_59_hu_conv = new ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ(null, ret_conv_59);
157 ret_conv_59_hu_conv.ptrs_to.add(this);
158 ret_conv_59_arr[h] = ret_conv_59_hu_conv;
160 return ret_conv_59_arr;
163 public NodeAnnouncement[] get_next_node_announcements(Uint8Array starting_point, number batch_amount) {
164 number[] ret = bindings.RoutingMessageHandler_get_next_node_announcements(this.ptr, starting_point, batch_amount);
165 NodeAnnouncement[] ret_conv_18_arr = new NodeAnnouncement[ret.length];
166 for (int s = 0; s < ret.length; s++) {
167 number ret_conv_18 = ret[s];
168 const ret_conv_18_hu_conv: NodeAnnouncement = new NodeAnnouncement(null, ret_conv_18);
169 ret_conv_18_hu_conv.ptrs_to.add(this);
170 ret_conv_18_arr[s] = ret_conv_18_hu_conv;
172 return ret_conv_18_arr;
175 public void sync_routing_table(Uint8Array their_node_id, Init init) {
176 bindings.RoutingMessageHandler_sync_routing_table(this.ptr, their_node_id, init == null ? 0 : init.ptr & ~1);
177 this.ptrs_to.add(init);
180 public Result_NoneLightningErrorZ handle_reply_channel_range(Uint8Array their_node_id, ReplyChannelRange msg) {
181 number ret = bindings.RoutingMessageHandler_handle_reply_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
182 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
183 this.ptrs_to.add(msg);
187 public Result_NoneLightningErrorZ handle_reply_short_channel_ids_end(Uint8Array their_node_id, ReplyShortChannelIdsEnd msg) {
188 number ret = bindings.RoutingMessageHandler_handle_reply_short_channel_ids_end(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
189 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
190 this.ptrs_to.add(msg);
194 public Result_NoneLightningErrorZ handle_query_channel_range(Uint8Array their_node_id, QueryChannelRange msg) {
195 number ret = bindings.RoutingMessageHandler_handle_query_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_query_short_channel_ids(Uint8Array their_node_id, QueryShortChannelIds msg) {
202 number ret = bindings.RoutingMessageHandler_handle_query_short_channel_ids(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);