+ @Override public long provided_init_features(byte[] their_node_id) {
+ InitFeatures ret = arg.provided_init_features(their_node_id);
+ Reference.reachabilityFence(arg);
+ long result = ret == null ? 0 : ret.clone_ptr();
+ return result;
+ }
+ }, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance);
+ return impl_holder.held;
+ }
+
+ /**
+ * Gets the underlying MessageSendEventsProvider.
+ */
+ public MessageSendEventsProvider get_message_send_events_provider() {
+ MessageSendEventsProvider res = new MessageSendEventsProvider(null, bindings.LDKChannelMessageHandler_get_MessageSendEventsProvider(this.ptr));
+ this.ptrs_to.add(res);
+ return res;
+ }
+
+ /**
+ * Handle an incoming open_channel message from the given peer.
+ */
+ public void handle_open_channel(byte[] their_node_id, InitFeatures their_features, OpenChannel msg) {
+ bindings.ChannelMessageHandler_handle_open_channel(this.ptr, InternalUtils.check_arr_len(their_node_id, 33), their_features == null ? 0 : their_features.ptr, msg == null ? 0 : msg.ptr);
+ Reference.reachabilityFence(this);
+ Reference.reachabilityFence(their_node_id);
+ Reference.reachabilityFence(their_features);
+ Reference.reachabilityFence(msg);
+ if (this != null) { this.ptrs_to.add(their_features); };
+ if (this != null) { this.ptrs_to.add(msg); };
+ }
+
+ /**
+ * Handle an incoming accept_channel message from the given peer.
+ */
+ public void handle_accept_channel(byte[] their_node_id, InitFeatures their_features, AcceptChannel msg) {
+ bindings.ChannelMessageHandler_handle_accept_channel(this.ptr, InternalUtils.check_arr_len(their_node_id, 33), their_features == null ? 0 : their_features.ptr, msg == null ? 0 : msg.ptr);
+ Reference.reachabilityFence(this);
+ Reference.reachabilityFence(their_node_id);
+ Reference.reachabilityFence(their_features);
+ Reference.reachabilityFence(msg);
+ if (this != null) { this.ptrs_to.add(their_features); };
+ if (this != null) { this.ptrs_to.add(msg); };