+ /**
+ * Indicates that a peer connection with a node is needed in order to send an [`OnionMessage`].
+ *
+ * Typically, this happens when a [`MessageRouter`] is unable to find a complete path to a
+ * [`Destination`]. Once a connection is established, any messages buffered by an
+ * [`OnionMessageHandler`] may be sent.
+ *
+ * This event will not be generated for onion message forwards; only for sends including
+ * replies. Handlers should connect to the node otherwise any buffered messages may be lost.
+ *
+ * [`OnionMessage`]: msgs::OnionMessage
+ * [`MessageRouter`]: crate::onion_message::messenger::MessageRouter
+ * [`Destination`]: crate::onion_message::messenger::Destination
+ * [`OnionMessageHandler`]: crate::ln::msgs::OnionMessageHandler
+ */
+ public final static class ConnectionNeeded extends Event {
+ /**
+ * The node id for the node needing a connection.
+ */
+ public final byte[] node_id;
+ /**
+ * Sockets for connecting to the node.
+ */
+ public final SocketAddress[] addresses;
+ private ConnectionNeeded(long ptr, bindings.LDKEvent.ConnectionNeeded obj) {
+ super(null, ptr);
+ this.node_id = obj.node_id;
+ long[] addresses = obj.addresses;
+ int addresses_conv_15_len = addresses.length;
+ SocketAddress[] addresses_conv_15_arr = new SocketAddress[addresses_conv_15_len];
+ for (int p = 0; p < addresses_conv_15_len; p++) {
+ long addresses_conv_15 = addresses[p];
+ org.ldk.structs.SocketAddress addresses_conv_15_hu_conv = org.ldk.structs.SocketAddress.constr_from_ptr(addresses_conv_15);
+ if (addresses_conv_15_hu_conv != null) { addresses_conv_15_hu_conv.ptrs_to.add(this); };
+ addresses_conv_15_arr[p] = addresses_conv_15_hu_conv;
+ }
+ this.addresses = addresses_conv_15_arr;
+ }
+ }