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.HandleError.class) {
67 return new HandleError(ptr, (bindings.LDKMessageSendEvent.HandleError)raw_val);
69 if (raw_val.getClass() == bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate.class) {
70 return new PaymentFailureNetworkUpdate(ptr, (bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate)raw_val);
72 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendChannelRangeQuery.class) {
73 return new SendChannelRangeQuery(ptr, (bindings.LDKMessageSendEvent.SendChannelRangeQuery)raw_val);
75 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendShortIdsQuery.class) {
76 return new SendShortIdsQuery(ptr, (bindings.LDKMessageSendEvent.SendShortIdsQuery)raw_val);
78 assert false; return null; // Unreachable without extending the (internal) bindings interface
81 public final static class SendAcceptChannel extends MessageSendEvent {
82 public final byte[] node_id;
83 public final AcceptChannel msg;
84 private SendAcceptChannel(long ptr, bindings.LDKMessageSendEvent.SendAcceptChannel obj) {
86 this.node_id = obj.node_id;
88 AcceptChannel msg_hu_conv = new AcceptChannel(null, msg);
89 msg_hu_conv.ptrs_to.add(this);
90 this.msg = msg_hu_conv;
93 public final static class SendOpenChannel extends MessageSendEvent {
94 public final byte[] node_id;
95 public final OpenChannel msg;
96 private SendOpenChannel(long ptr, bindings.LDKMessageSendEvent.SendOpenChannel obj) {
98 this.node_id = obj.node_id;
100 OpenChannel msg_hu_conv = new OpenChannel(null, msg);
101 msg_hu_conv.ptrs_to.add(this);
102 this.msg = msg_hu_conv;
105 public final static class SendFundingCreated extends MessageSendEvent {
106 public final byte[] node_id;
107 public final FundingCreated msg;
108 private SendFundingCreated(long ptr, bindings.LDKMessageSendEvent.SendFundingCreated obj) {
110 this.node_id = obj.node_id;
112 FundingCreated msg_hu_conv = new FundingCreated(null, msg);
113 msg_hu_conv.ptrs_to.add(this);
114 this.msg = msg_hu_conv;
117 public final static class SendFundingSigned extends MessageSendEvent {
118 public final byte[] node_id;
119 public final FundingSigned msg;
120 private SendFundingSigned(long ptr, bindings.LDKMessageSendEvent.SendFundingSigned obj) {
122 this.node_id = obj.node_id;
124 FundingSigned msg_hu_conv = new FundingSigned(null, msg);
125 msg_hu_conv.ptrs_to.add(this);
126 this.msg = msg_hu_conv;
129 public final static class SendFundingLocked extends MessageSendEvent {
130 public final byte[] node_id;
131 public final FundingLocked msg;
132 private SendFundingLocked(long ptr, bindings.LDKMessageSendEvent.SendFundingLocked obj) {
134 this.node_id = obj.node_id;
136 FundingLocked msg_hu_conv = new FundingLocked(null, msg);
137 msg_hu_conv.ptrs_to.add(this);
138 this.msg = msg_hu_conv;
141 public final static class SendAnnouncementSignatures extends MessageSendEvent {
142 public final byte[] node_id;
143 public final AnnouncementSignatures msg;
144 private SendAnnouncementSignatures(long ptr, bindings.LDKMessageSendEvent.SendAnnouncementSignatures obj) {
146 this.node_id = obj.node_id;
148 AnnouncementSignatures msg_hu_conv = new AnnouncementSignatures(null, msg);
149 msg_hu_conv.ptrs_to.add(this);
150 this.msg = msg_hu_conv;
153 public final static class UpdateHTLCs extends MessageSendEvent {
154 public final byte[] node_id;
155 public final CommitmentUpdate updates;
156 private UpdateHTLCs(long ptr, bindings.LDKMessageSendEvent.UpdateHTLCs obj) {
158 this.node_id = obj.node_id;
159 long updates = obj.updates;
160 CommitmentUpdate updates_hu_conv = new CommitmentUpdate(null, updates);
161 updates_hu_conv.ptrs_to.add(this);
162 this.updates = updates_hu_conv;
165 public final static class SendRevokeAndACK extends MessageSendEvent {
166 public final byte[] node_id;
167 public final RevokeAndACK msg;
168 private SendRevokeAndACK(long ptr, bindings.LDKMessageSendEvent.SendRevokeAndACK obj) {
170 this.node_id = obj.node_id;
172 RevokeAndACK msg_hu_conv = new RevokeAndACK(null, msg);
173 msg_hu_conv.ptrs_to.add(this);
174 this.msg = msg_hu_conv;
177 public final static class SendClosingSigned extends MessageSendEvent {
178 public final byte[] node_id;
179 public final ClosingSigned msg;
180 private SendClosingSigned(long ptr, bindings.LDKMessageSendEvent.SendClosingSigned obj) {
182 this.node_id = obj.node_id;
184 ClosingSigned msg_hu_conv = new ClosingSigned(null, msg);
185 msg_hu_conv.ptrs_to.add(this);
186 this.msg = msg_hu_conv;
189 public final static class SendShutdown extends MessageSendEvent {
190 public final byte[] node_id;
191 public final Shutdown msg;
192 private SendShutdown(long ptr, bindings.LDKMessageSendEvent.SendShutdown obj) {
194 this.node_id = obj.node_id;
196 Shutdown msg_hu_conv = new Shutdown(null, msg);
197 msg_hu_conv.ptrs_to.add(this);
198 this.msg = msg_hu_conv;
201 public final static class SendChannelReestablish extends MessageSendEvent {
202 public final byte[] node_id;
203 public final ChannelReestablish msg;
204 private SendChannelReestablish(long ptr, bindings.LDKMessageSendEvent.SendChannelReestablish obj) {
206 this.node_id = obj.node_id;
208 ChannelReestablish msg_hu_conv = new ChannelReestablish(null, msg);
209 msg_hu_conv.ptrs_to.add(this);
210 this.msg = msg_hu_conv;
213 public final static class BroadcastChannelAnnouncement extends MessageSendEvent {
214 public final ChannelAnnouncement msg;
215 public final ChannelUpdate update_msg;
216 private BroadcastChannelAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement obj) {
219 ChannelAnnouncement msg_hu_conv = new ChannelAnnouncement(null, msg);
220 msg_hu_conv.ptrs_to.add(this);
221 this.msg = msg_hu_conv;
222 long update_msg = obj.update_msg;
223 ChannelUpdate update_msg_hu_conv = new ChannelUpdate(null, update_msg);
224 update_msg_hu_conv.ptrs_to.add(this);
225 this.update_msg = update_msg_hu_conv;
228 public final static class BroadcastNodeAnnouncement extends MessageSendEvent {
229 public final NodeAnnouncement msg;
230 private BroadcastNodeAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement obj) {
233 NodeAnnouncement msg_hu_conv = new NodeAnnouncement(null, msg);
234 msg_hu_conv.ptrs_to.add(this);
235 this.msg = msg_hu_conv;
238 public final static class BroadcastChannelUpdate extends MessageSendEvent {
239 public final ChannelUpdate msg;
240 private BroadcastChannelUpdate(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelUpdate obj) {
243 ChannelUpdate msg_hu_conv = new ChannelUpdate(null, msg);
244 msg_hu_conv.ptrs_to.add(this);
245 this.msg = msg_hu_conv;
248 public final static class HandleError extends MessageSendEvent {
249 public final byte[] node_id;
250 public final ErrorAction action;
251 private HandleError(long ptr, bindings.LDKMessageSendEvent.HandleError obj) {
253 this.node_id = obj.node_id;
254 long action = obj.action;
255 ErrorAction action_hu_conv = ErrorAction.constr_from_ptr(action);
256 action_hu_conv.ptrs_to.add(this);
257 this.action = action_hu_conv;
260 public final static class PaymentFailureNetworkUpdate extends MessageSendEvent {
261 public final HTLCFailChannelUpdate update;
262 private PaymentFailureNetworkUpdate(long ptr, bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate obj) {
264 long update = obj.update;
265 HTLCFailChannelUpdate update_hu_conv = HTLCFailChannelUpdate.constr_from_ptr(update);
266 update_hu_conv.ptrs_to.add(this);
267 this.update = update_hu_conv;
270 public final static class SendChannelRangeQuery extends MessageSendEvent {
271 public final byte[] node_id;
272 public final QueryChannelRange msg;
273 private SendChannelRangeQuery(long ptr, bindings.LDKMessageSendEvent.SendChannelRangeQuery obj) {
275 this.node_id = obj.node_id;
277 QueryChannelRange msg_hu_conv = new QueryChannelRange(null, msg);
278 msg_hu_conv.ptrs_to.add(this);
279 this.msg = msg_hu_conv;
282 public final static class SendShortIdsQuery extends MessageSendEvent {
283 public final byte[] node_id;
284 public final QueryShortChannelIds msg;
285 private SendShortIdsQuery(long ptr, bindings.LDKMessageSendEvent.SendShortIdsQuery obj) {
287 this.node_id = obj.node_id;
289 QueryShortChannelIds msg_hu_conv = new QueryShortChannelIds(null, msg);
290 msg_hu_conv.ptrs_to.add(this);
291 this.msg = msg_hu_conv;