1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
10 * An event generated by ChannelManager which indicates a message should be sent to a peer (or
11 * broadcast to most peers).
12 * These events are handled by PeerManager::process_events if you are using a PeerManager.
14 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
15 public class MessageSendEvent extends CommonBase {
16 private MessageSendEvent(Object _dummy, long ptr) { super(ptr); }
17 @Override @SuppressWarnings("deprecation")
18 protected void finalize() throws Throwable {
20 if (ptr != 0) { bindings.MessageSendEvent_free(ptr); }
22 static MessageSendEvent constr_from_ptr(long ptr) {
23 bindings.LDKMessageSendEvent raw_val = bindings.LDKMessageSendEvent_ref_from_ptr(ptr);
24 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendAcceptChannel.class) {
25 return new SendAcceptChannel(ptr, (bindings.LDKMessageSendEvent.SendAcceptChannel)raw_val);
27 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendOpenChannel.class) {
28 return new SendOpenChannel(ptr, (bindings.LDKMessageSendEvent.SendOpenChannel)raw_val);
30 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendFundingCreated.class) {
31 return new SendFundingCreated(ptr, (bindings.LDKMessageSendEvent.SendFundingCreated)raw_val);
33 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendFundingSigned.class) {
34 return new SendFundingSigned(ptr, (bindings.LDKMessageSendEvent.SendFundingSigned)raw_val);
36 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendFundingLocked.class) {
37 return new SendFundingLocked(ptr, (bindings.LDKMessageSendEvent.SendFundingLocked)raw_val);
39 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendAnnouncementSignatures.class) {
40 return new SendAnnouncementSignatures(ptr, (bindings.LDKMessageSendEvent.SendAnnouncementSignatures)raw_val);
42 if (raw_val.getClass() == bindings.LDKMessageSendEvent.UpdateHTLCs.class) {
43 return new UpdateHTLCs(ptr, (bindings.LDKMessageSendEvent.UpdateHTLCs)raw_val);
45 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendRevokeAndACK.class) {
46 return new SendRevokeAndACK(ptr, (bindings.LDKMessageSendEvent.SendRevokeAndACK)raw_val);
48 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendClosingSigned.class) {
49 return new SendClosingSigned(ptr, (bindings.LDKMessageSendEvent.SendClosingSigned)raw_val);
51 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendShutdown.class) {
52 return new SendShutdown(ptr, (bindings.LDKMessageSendEvent.SendShutdown)raw_val);
54 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelReestablish.class) {
55 return new SendChannelReestablish(ptr, (bindings.LDKMessageSendEvent.SendChannelReestablish)raw_val);
57 if (raw_val.getClass() == bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement.class) {
58 return new BroadcastChannelAnnouncement(ptr, (bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement)raw_val);
60 if (raw_val.getClass() == bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement.class) {
61 return new BroadcastNodeAnnouncement(ptr, (bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement)raw_val);
63 if (raw_val.getClass() == bindings.LDKMessageSendEvent.BroadcastChannelUpdate.class) {
64 return new BroadcastChannelUpdate(ptr, (bindings.LDKMessageSendEvent.BroadcastChannelUpdate)raw_val);
66 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelUpdate.class) {
67 return new SendChannelUpdate(ptr, (bindings.LDKMessageSendEvent.SendChannelUpdate)raw_val);
69 if (raw_val.getClass() == bindings.LDKMessageSendEvent.HandleError.class) {
70 return new HandleError(ptr, (bindings.LDKMessageSendEvent.HandleError)raw_val);
72 if (raw_val.getClass() == bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate.class) {
73 return new PaymentFailureNetworkUpdate(ptr, (bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate)raw_val);
75 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelRangeQuery.class) {
76 return new SendChannelRangeQuery(ptr, (bindings.LDKMessageSendEvent.SendChannelRangeQuery)raw_val);
78 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendShortIdsQuery.class) {
79 return new SendShortIdsQuery(ptr, (bindings.LDKMessageSendEvent.SendShortIdsQuery)raw_val);
81 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendReplyChannelRange.class) {
82 return new SendReplyChannelRange(ptr, (bindings.LDKMessageSendEvent.SendReplyChannelRange)raw_val);
84 assert false; return null; // Unreachable without extending the (internal) bindings interface
87 public final static class SendAcceptChannel extends MessageSendEvent {
88 public final byte[] node_id;
89 public final AcceptChannel msg;
90 private SendAcceptChannel(long ptr, bindings.LDKMessageSendEvent.SendAcceptChannel obj) {
92 this.node_id = obj.node_id;
94 AcceptChannel msg_hu_conv = new AcceptChannel(null, msg);
95 msg_hu_conv.ptrs_to.add(this);
96 this.msg = msg_hu_conv;
99 public final static class SendOpenChannel extends MessageSendEvent {
100 public final byte[] node_id;
101 public final OpenChannel msg;
102 private SendOpenChannel(long ptr, bindings.LDKMessageSendEvent.SendOpenChannel obj) {
104 this.node_id = obj.node_id;
106 OpenChannel msg_hu_conv = new OpenChannel(null, msg);
107 msg_hu_conv.ptrs_to.add(this);
108 this.msg = msg_hu_conv;
111 public final static class SendFundingCreated extends MessageSendEvent {
112 public final byte[] node_id;
113 public final FundingCreated msg;
114 private SendFundingCreated(long ptr, bindings.LDKMessageSendEvent.SendFundingCreated obj) {
116 this.node_id = obj.node_id;
118 FundingCreated msg_hu_conv = new FundingCreated(null, msg);
119 msg_hu_conv.ptrs_to.add(this);
120 this.msg = msg_hu_conv;
123 public final static class SendFundingSigned extends MessageSendEvent {
124 public final byte[] node_id;
125 public final FundingSigned msg;
126 private SendFundingSigned(long ptr, bindings.LDKMessageSendEvent.SendFundingSigned obj) {
128 this.node_id = obj.node_id;
130 FundingSigned msg_hu_conv = new FundingSigned(null, msg);
131 msg_hu_conv.ptrs_to.add(this);
132 this.msg = msg_hu_conv;
135 public final static class SendFundingLocked extends MessageSendEvent {
136 public final byte[] node_id;
137 public final FundingLocked msg;
138 private SendFundingLocked(long ptr, bindings.LDKMessageSendEvent.SendFundingLocked obj) {
140 this.node_id = obj.node_id;
142 FundingLocked msg_hu_conv = new FundingLocked(null, msg);
143 msg_hu_conv.ptrs_to.add(this);
144 this.msg = msg_hu_conv;
147 public final static class SendAnnouncementSignatures extends MessageSendEvent {
148 public final byte[] node_id;
149 public final AnnouncementSignatures msg;
150 private SendAnnouncementSignatures(long ptr, bindings.LDKMessageSendEvent.SendAnnouncementSignatures obj) {
152 this.node_id = obj.node_id;
154 AnnouncementSignatures msg_hu_conv = new AnnouncementSignatures(null, msg);
155 msg_hu_conv.ptrs_to.add(this);
156 this.msg = msg_hu_conv;
159 public final static class UpdateHTLCs extends MessageSendEvent {
160 public final byte[] node_id;
161 public final CommitmentUpdate updates;
162 private UpdateHTLCs(long ptr, bindings.LDKMessageSendEvent.UpdateHTLCs obj) {
164 this.node_id = obj.node_id;
165 long updates = obj.updates;
166 CommitmentUpdate updates_hu_conv = new CommitmentUpdate(null, updates);
167 updates_hu_conv.ptrs_to.add(this);
168 this.updates = updates_hu_conv;
171 public final static class SendRevokeAndACK extends MessageSendEvent {
172 public final byte[] node_id;
173 public final RevokeAndACK msg;
174 private SendRevokeAndACK(long ptr, bindings.LDKMessageSendEvent.SendRevokeAndACK obj) {
176 this.node_id = obj.node_id;
178 RevokeAndACK msg_hu_conv = new RevokeAndACK(null, msg);
179 msg_hu_conv.ptrs_to.add(this);
180 this.msg = msg_hu_conv;
183 public final static class SendClosingSigned extends MessageSendEvent {
184 public final byte[] node_id;
185 public final ClosingSigned msg;
186 private SendClosingSigned(long ptr, bindings.LDKMessageSendEvent.SendClosingSigned obj) {
188 this.node_id = obj.node_id;
190 ClosingSigned msg_hu_conv = new ClosingSigned(null, msg);
191 msg_hu_conv.ptrs_to.add(this);
192 this.msg = msg_hu_conv;
195 public final static class SendShutdown extends MessageSendEvent {
196 public final byte[] node_id;
197 public final Shutdown msg;
198 private SendShutdown(long ptr, bindings.LDKMessageSendEvent.SendShutdown obj) {
200 this.node_id = obj.node_id;
202 Shutdown msg_hu_conv = new Shutdown(null, msg);
203 msg_hu_conv.ptrs_to.add(this);
204 this.msg = msg_hu_conv;
207 public final static class SendChannelReestablish extends MessageSendEvent {
208 public final byte[] node_id;
209 public final ChannelReestablish msg;
210 private SendChannelReestablish(long ptr, bindings.LDKMessageSendEvent.SendChannelReestablish obj) {
212 this.node_id = obj.node_id;
214 ChannelReestablish msg_hu_conv = new ChannelReestablish(null, msg);
215 msg_hu_conv.ptrs_to.add(this);
216 this.msg = msg_hu_conv;
219 public final static class BroadcastChannelAnnouncement extends MessageSendEvent {
220 public final ChannelAnnouncement msg;
221 public final ChannelUpdate update_msg;
222 private BroadcastChannelAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement obj) {
225 ChannelAnnouncement msg_hu_conv = new ChannelAnnouncement(null, msg);
226 msg_hu_conv.ptrs_to.add(this);
227 this.msg = msg_hu_conv;
228 long update_msg = obj.update_msg;
229 ChannelUpdate update_msg_hu_conv = new ChannelUpdate(null, update_msg);
230 update_msg_hu_conv.ptrs_to.add(this);
231 this.update_msg = update_msg_hu_conv;
234 public final static class BroadcastNodeAnnouncement extends MessageSendEvent {
235 public final NodeAnnouncement msg;
236 private BroadcastNodeAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement obj) {
239 NodeAnnouncement msg_hu_conv = new NodeAnnouncement(null, msg);
240 msg_hu_conv.ptrs_to.add(this);
241 this.msg = msg_hu_conv;
244 public final static class BroadcastChannelUpdate extends MessageSendEvent {
245 public final ChannelUpdate msg;
246 private BroadcastChannelUpdate(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelUpdate obj) {
249 ChannelUpdate msg_hu_conv = new ChannelUpdate(null, msg);
250 msg_hu_conv.ptrs_to.add(this);
251 this.msg = msg_hu_conv;
254 public final static class SendChannelUpdate extends MessageSendEvent {
255 public final byte[] node_id;
256 public final ChannelUpdate msg;
257 private SendChannelUpdate(long ptr, bindings.LDKMessageSendEvent.SendChannelUpdate obj) {
259 this.node_id = obj.node_id;
261 ChannelUpdate msg_hu_conv = new ChannelUpdate(null, msg);
262 msg_hu_conv.ptrs_to.add(this);
263 this.msg = msg_hu_conv;
266 public final static class HandleError extends MessageSendEvent {
267 public final byte[] node_id;
268 public final ErrorAction action;
269 private HandleError(long ptr, bindings.LDKMessageSendEvent.HandleError obj) {
271 this.node_id = obj.node_id;
272 long action = obj.action;
273 ErrorAction action_hu_conv = ErrorAction.constr_from_ptr(action);
274 action_hu_conv.ptrs_to.add(this);
275 this.action = action_hu_conv;
278 public final static class PaymentFailureNetworkUpdate extends MessageSendEvent {
279 public final HTLCFailChannelUpdate update;
280 private PaymentFailureNetworkUpdate(long ptr, bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate obj) {
282 long update = obj.update;
283 HTLCFailChannelUpdate update_hu_conv = HTLCFailChannelUpdate.constr_from_ptr(update);
284 update_hu_conv.ptrs_to.add(this);
285 this.update = update_hu_conv;
288 public final static class SendChannelRangeQuery extends MessageSendEvent {
289 public final byte[] node_id;
290 public final QueryChannelRange msg;
291 private SendChannelRangeQuery(long ptr, bindings.LDKMessageSendEvent.SendChannelRangeQuery obj) {
293 this.node_id = obj.node_id;
295 QueryChannelRange msg_hu_conv = new QueryChannelRange(null, msg);
296 msg_hu_conv.ptrs_to.add(this);
297 this.msg = msg_hu_conv;
300 public final static class SendShortIdsQuery extends MessageSendEvent {
301 public final byte[] node_id;
302 public final QueryShortChannelIds msg;
303 private SendShortIdsQuery(long ptr, bindings.LDKMessageSendEvent.SendShortIdsQuery obj) {
305 this.node_id = obj.node_id;
307 QueryShortChannelIds msg_hu_conv = new QueryShortChannelIds(null, msg);
308 msg_hu_conv.ptrs_to.add(this);
309 this.msg = msg_hu_conv;
312 public final static class SendReplyChannelRange extends MessageSendEvent {
313 public final byte[] node_id;
314 public final ReplyChannelRange msg;
315 private SendReplyChannelRange(long ptr, bindings.LDKMessageSendEvent.SendReplyChannelRange obj) {
317 this.node_id = obj.node_id;
319 ReplyChannelRange msg_hu_conv = new ReplyChannelRange(null, msg);
320 msg_hu_conv.ptrs_to.add(this);
321 this.msg = msg_hu_conv;
325 * Creates a copy of the MessageSendEvent
327 public MessageSendEvent clone() {
328 long ret = bindings.MessageSendEvent_clone(this.ptr);
329 if (ret < 1024) { return null; }
330 MessageSendEvent ret_hu_conv = MessageSendEvent.constr_from_ptr(ret);
331 ret_hu_conv.ptrs_to.add(this);