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 if (raw_val.getClass() == bindings.LDKMessageSendEvent.SendReplyChannelRange.class) {
79 return new SendReplyChannelRange(ptr, (bindings.LDKMessageSendEvent.SendReplyChannelRange)raw_val);
81 assert false; return null; // Unreachable without extending the (internal) bindings interface
84 public final static class SendAcceptChannel extends MessageSendEvent {
85 public final byte[] node_id;
86 public final AcceptChannel msg;
87 private SendAcceptChannel(long ptr, bindings.LDKMessageSendEvent.SendAcceptChannel obj) {
89 this.node_id = obj.node_id;
91 AcceptChannel msg_hu_conv = new AcceptChannel(null, msg);
92 msg_hu_conv.ptrs_to.add(this);
93 this.msg = msg_hu_conv;
96 public final static class SendOpenChannel extends MessageSendEvent {
97 public final byte[] node_id;
98 public final OpenChannel msg;
99 private SendOpenChannel(long ptr, bindings.LDKMessageSendEvent.SendOpenChannel obj) {
101 this.node_id = obj.node_id;
103 OpenChannel msg_hu_conv = new OpenChannel(null, msg);
104 msg_hu_conv.ptrs_to.add(this);
105 this.msg = msg_hu_conv;
108 public final static class SendFundingCreated extends MessageSendEvent {
109 public final byte[] node_id;
110 public final FundingCreated msg;
111 private SendFundingCreated(long ptr, bindings.LDKMessageSendEvent.SendFundingCreated obj) {
113 this.node_id = obj.node_id;
115 FundingCreated msg_hu_conv = new FundingCreated(null, msg);
116 msg_hu_conv.ptrs_to.add(this);
117 this.msg = msg_hu_conv;
120 public final static class SendFundingSigned extends MessageSendEvent {
121 public final byte[] node_id;
122 public final FundingSigned msg;
123 private SendFundingSigned(long ptr, bindings.LDKMessageSendEvent.SendFundingSigned obj) {
125 this.node_id = obj.node_id;
127 FundingSigned msg_hu_conv = new FundingSigned(null, msg);
128 msg_hu_conv.ptrs_to.add(this);
129 this.msg = msg_hu_conv;
132 public final static class SendFundingLocked extends MessageSendEvent {
133 public final byte[] node_id;
134 public final FundingLocked msg;
135 private SendFundingLocked(long ptr, bindings.LDKMessageSendEvent.SendFundingLocked obj) {
137 this.node_id = obj.node_id;
139 FundingLocked msg_hu_conv = new FundingLocked(null, msg);
140 msg_hu_conv.ptrs_to.add(this);
141 this.msg = msg_hu_conv;
144 public final static class SendAnnouncementSignatures extends MessageSendEvent {
145 public final byte[] node_id;
146 public final AnnouncementSignatures msg;
147 private SendAnnouncementSignatures(long ptr, bindings.LDKMessageSendEvent.SendAnnouncementSignatures obj) {
149 this.node_id = obj.node_id;
151 AnnouncementSignatures msg_hu_conv = new AnnouncementSignatures(null, msg);
152 msg_hu_conv.ptrs_to.add(this);
153 this.msg = msg_hu_conv;
156 public final static class UpdateHTLCs extends MessageSendEvent {
157 public final byte[] node_id;
158 public final CommitmentUpdate updates;
159 private UpdateHTLCs(long ptr, bindings.LDKMessageSendEvent.UpdateHTLCs obj) {
161 this.node_id = obj.node_id;
162 long updates = obj.updates;
163 CommitmentUpdate updates_hu_conv = new CommitmentUpdate(null, updates);
164 updates_hu_conv.ptrs_to.add(this);
165 this.updates = updates_hu_conv;
168 public final static class SendRevokeAndACK extends MessageSendEvent {
169 public final byte[] node_id;
170 public final RevokeAndACK msg;
171 private SendRevokeAndACK(long ptr, bindings.LDKMessageSendEvent.SendRevokeAndACK obj) {
173 this.node_id = obj.node_id;
175 RevokeAndACK msg_hu_conv = new RevokeAndACK(null, msg);
176 msg_hu_conv.ptrs_to.add(this);
177 this.msg = msg_hu_conv;
180 public final static class SendClosingSigned extends MessageSendEvent {
181 public final byte[] node_id;
182 public final ClosingSigned msg;
183 private SendClosingSigned(long ptr, bindings.LDKMessageSendEvent.SendClosingSigned obj) {
185 this.node_id = obj.node_id;
187 ClosingSigned msg_hu_conv = new ClosingSigned(null, msg);
188 msg_hu_conv.ptrs_to.add(this);
189 this.msg = msg_hu_conv;
192 public final static class SendShutdown extends MessageSendEvent {
193 public final byte[] node_id;
194 public final Shutdown msg;
195 private SendShutdown(long ptr, bindings.LDKMessageSendEvent.SendShutdown obj) {
197 this.node_id = obj.node_id;
199 Shutdown msg_hu_conv = new Shutdown(null, msg);
200 msg_hu_conv.ptrs_to.add(this);
201 this.msg = msg_hu_conv;
204 public final static class SendChannelReestablish extends MessageSendEvent {
205 public final byte[] node_id;
206 public final ChannelReestablish msg;
207 private SendChannelReestablish(long ptr, bindings.LDKMessageSendEvent.SendChannelReestablish obj) {
209 this.node_id = obj.node_id;
211 ChannelReestablish msg_hu_conv = new ChannelReestablish(null, msg);
212 msg_hu_conv.ptrs_to.add(this);
213 this.msg = msg_hu_conv;
216 public final static class BroadcastChannelAnnouncement extends MessageSendEvent {
217 public final ChannelAnnouncement msg;
218 public final ChannelUpdate update_msg;
219 private BroadcastChannelAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelAnnouncement obj) {
222 ChannelAnnouncement msg_hu_conv = new ChannelAnnouncement(null, msg);
223 msg_hu_conv.ptrs_to.add(this);
224 this.msg = msg_hu_conv;
225 long update_msg = obj.update_msg;
226 ChannelUpdate update_msg_hu_conv = new ChannelUpdate(null, update_msg);
227 update_msg_hu_conv.ptrs_to.add(this);
228 this.update_msg = update_msg_hu_conv;
231 public final static class BroadcastNodeAnnouncement extends MessageSendEvent {
232 public final NodeAnnouncement msg;
233 private BroadcastNodeAnnouncement(long ptr, bindings.LDKMessageSendEvent.BroadcastNodeAnnouncement obj) {
236 NodeAnnouncement msg_hu_conv = new NodeAnnouncement(null, msg);
237 msg_hu_conv.ptrs_to.add(this);
238 this.msg = msg_hu_conv;
241 public final static class BroadcastChannelUpdate extends MessageSendEvent {
242 public final ChannelUpdate msg;
243 private BroadcastChannelUpdate(long ptr, bindings.LDKMessageSendEvent.BroadcastChannelUpdate obj) {
246 ChannelUpdate msg_hu_conv = new ChannelUpdate(null, msg);
247 msg_hu_conv.ptrs_to.add(this);
248 this.msg = msg_hu_conv;
251 public final static class HandleError extends MessageSendEvent {
252 public final byte[] node_id;
253 public final ErrorAction action;
254 private HandleError(long ptr, bindings.LDKMessageSendEvent.HandleError obj) {
256 this.node_id = obj.node_id;
257 long action = obj.action;
258 ErrorAction action_hu_conv = ErrorAction.constr_from_ptr(action);
259 action_hu_conv.ptrs_to.add(this);
260 this.action = action_hu_conv;
263 public final static class PaymentFailureNetworkUpdate extends MessageSendEvent {
264 public final HTLCFailChannelUpdate update;
265 private PaymentFailureNetworkUpdate(long ptr, bindings.LDKMessageSendEvent.PaymentFailureNetworkUpdate obj) {
267 long update = obj.update;
268 HTLCFailChannelUpdate update_hu_conv = HTLCFailChannelUpdate.constr_from_ptr(update);
269 update_hu_conv.ptrs_to.add(this);
270 this.update = update_hu_conv;
273 public final static class SendChannelRangeQuery extends MessageSendEvent {
274 public final byte[] node_id;
275 public final QueryChannelRange msg;
276 private SendChannelRangeQuery(long ptr, bindings.LDKMessageSendEvent.SendChannelRangeQuery obj) {
278 this.node_id = obj.node_id;
280 QueryChannelRange msg_hu_conv = new QueryChannelRange(null, msg);
281 msg_hu_conv.ptrs_to.add(this);
282 this.msg = msg_hu_conv;
285 public final static class SendShortIdsQuery extends MessageSendEvent {
286 public final byte[] node_id;
287 public final QueryShortChannelIds msg;
288 private SendShortIdsQuery(long ptr, bindings.LDKMessageSendEvent.SendShortIdsQuery obj) {
290 this.node_id = obj.node_id;
292 QueryShortChannelIds msg_hu_conv = new QueryShortChannelIds(null, msg);
293 msg_hu_conv.ptrs_to.add(this);
294 this.msg = msg_hu_conv;
297 public final static class SendReplyChannelRange extends MessageSendEvent {
298 public final byte[] node_id;
299 public final ReplyChannelRange msg;
300 private SendReplyChannelRange(long ptr, bindings.LDKMessageSendEvent.SendReplyChannelRange obj) {
302 this.node_id = obj.node_id;
304 ReplyChannelRange msg_hu_conv = new ReplyChannelRange(null, msg);
305 msg_hu_conv.ptrs_to.add(this);
306 this.msg = msg_hu_conv;