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;
69 sync_routing_table (their_node_id: Uint8Array, init: number): void {
70 const init_hu_conv: Init = new Init(null, init);
71 arg.sync_routing_table(their_node_id, init_hu_conv);
74 handle_reply_channel_range (their_node_id: Uint8Array, msg: number): number {
75 const msg_hu_conv: ReplyChannelRange = new ReplyChannelRange(null, msg);
76 msg_hu_conv.ptrs_to.add(this);
77 Result_NoneLightningErrorZ ret = arg.handle_reply_channel_range(their_node_id, msg_hu_conv);
78 result: number = ret != null ? ret.ptr : 0;
82 handle_reply_short_channel_ids_end (their_node_id: Uint8Array, msg: number): number {
83 const msg_hu_conv: ReplyShortChannelIdsEnd = new ReplyShortChannelIdsEnd(null, msg);
84 msg_hu_conv.ptrs_to.add(this);
85 Result_NoneLightningErrorZ ret = arg.handle_reply_short_channel_ids_end(their_node_id, msg_hu_conv);
86 result: number = ret != null ? ret.ptr : 0;
90 handle_query_channel_range (their_node_id: Uint8Array, msg: number): number {
91 const msg_hu_conv: QueryChannelRange = new QueryChannelRange(null, msg);
92 msg_hu_conv.ptrs_to.add(this);
93 Result_NoneLightningErrorZ ret = arg.handle_query_channel_range(their_node_id, msg_hu_conv);
94 result: number = ret != null ? ret.ptr : 0;
98 handle_query_short_channel_ids (their_node_id: Uint8Array, msg: number): number {
99 const msg_hu_conv: QueryShortChannelIds = new QueryShortChannelIds(null, msg);
100 msg_hu_conv.ptrs_to.add(this);
101 Result_NoneLightningErrorZ ret = arg.handle_query_short_channel_ids(their_node_id, msg_hu_conv);
102 result: number = ret != null ? ret.ptr : 0;
108 impl_holder.held = new RoutingMessageHandler (null, structImplementation, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance);
112 export interface RoutingMessageHandlerInterface {
113 handle_node_announcement(msg: NodeAnnouncement): Result_boolLightningErrorZ;
114 handle_channel_announcement(msg: ChannelAnnouncement): Result_boolLightningErrorZ;
115 handle_channel_update(msg: ChannelUpdate): Result_boolLightningErrorZ;
116 get_next_channel_announcements(starting_point: number, batch_amount: number): ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[];
117 get_next_node_announcements(starting_point: Uint8Array, batch_amount: number): NodeAnnouncement[];
118 sync_routing_table(their_node_id: Uint8Array, init: Init): void;
119 handle_reply_channel_range(their_node_id: Uint8Array, msg: ReplyChannelRange): Result_NoneLightningErrorZ;
120 handle_reply_short_channel_ids_end(their_node_id: Uint8Array, msg: ReplyShortChannelIdsEnd): Result_NoneLightningErrorZ;
121 handle_query_channel_range(their_node_id: Uint8Array, msg: QueryChannelRange): Result_NoneLightningErrorZ;
122 handle_query_short_channel_ids(their_node_id: Uint8Array, msg: QueryShortChannelIds): Result_NoneLightningErrorZ;
126 class LDKRoutingMessageHandlerHolder {
127 held: RoutingMessageHandler;
129 public Result_boolLightningErrorZ handle_node_announcement(NodeAnnouncement msg) {
130 number ret = bindings.RoutingMessageHandler_handle_node_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
131 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
132 this.ptrs_to.add(msg);
136 public Result_boolLightningErrorZ handle_channel_announcement(ChannelAnnouncement msg) {
137 number ret = bindings.RoutingMessageHandler_handle_channel_announcement(this.ptr, msg == null ? 0 : msg.ptr & ~1);
138 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
139 this.ptrs_to.add(msg);
143 public Result_boolLightningErrorZ handle_channel_update(ChannelUpdate msg) {
144 number ret = bindings.RoutingMessageHandler_handle_channel_update(this.ptr, msg == null ? 0 : msg.ptr & ~1);
145 Result_boolLightningErrorZ ret_hu_conv = Result_boolLightningErrorZ.constr_from_ptr(ret);
146 this.ptrs_to.add(msg);
150 public ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[] get_next_channel_announcements(number starting_point, number batch_amount) {
151 number[] ret = bindings.RoutingMessageHandler_get_next_channel_announcements(this.ptr, starting_point, batch_amount);
152 ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[] ret_conv_59_arr = new ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ[ret.length];
153 for (int h = 0; h < ret.length; h++) {
154 number ret_conv_59 = ret[h];
155 ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ ret_conv_59_hu_conv = new ThreeTuple_ChannelAnnouncementChannelUpdateChannelUpdateZ(null, ret_conv_59);
156 ret_conv_59_hu_conv.ptrs_to.add(this);
157 ret_conv_59_arr[h] = ret_conv_59_hu_conv;
159 return ret_conv_59_arr;
162 public NodeAnnouncement[] get_next_node_announcements(Uint8Array starting_point, number batch_amount) {
163 number[] ret = bindings.RoutingMessageHandler_get_next_node_announcements(this.ptr, starting_point, batch_amount);
164 NodeAnnouncement[] ret_conv_18_arr = new NodeAnnouncement[ret.length];
165 for (int s = 0; s < ret.length; s++) {
166 number ret_conv_18 = ret[s];
167 const ret_conv_18_hu_conv: NodeAnnouncement = new NodeAnnouncement(null, ret_conv_18);
168 ret_conv_18_hu_conv.ptrs_to.add(this);
169 ret_conv_18_arr[s] = ret_conv_18_hu_conv;
171 return ret_conv_18_arr;
174 public void sync_routing_table(Uint8Array their_node_id, Init init) {
175 bindings.RoutingMessageHandler_sync_routing_table(this.ptr, their_node_id, init == null ? 0 : init.ptr & ~1);
176 this.ptrs_to.add(init);
179 public Result_NoneLightningErrorZ handle_reply_channel_range(Uint8Array their_node_id, ReplyChannelRange msg) {
180 number ret = bindings.RoutingMessageHandler_handle_reply_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
181 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
185 public Result_NoneLightningErrorZ handle_reply_short_channel_ids_end(Uint8Array their_node_id, ReplyShortChannelIdsEnd msg) {
186 number ret = bindings.RoutingMessageHandler_handle_reply_short_channel_ids_end(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
187 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
191 public Result_NoneLightningErrorZ handle_query_channel_range(Uint8Array their_node_id, QueryChannelRange msg) {
192 number ret = bindings.RoutingMessageHandler_handle_query_channel_range(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
193 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);
197 public Result_NoneLightningErrorZ handle_query_short_channel_ids(Uint8Array their_node_id, QueryShortChannelIds msg) {
198 number ret = bindings.RoutingMessageHandler_handle_query_short_channel_ids(this.ptr, their_node_id, msg == null ? 0 : msg.ptr & ~1);
199 Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret);