+ /**
+ * Releases any [`Self::CustomMessage`]s that need to be sent.
+ *
+ * Typically, this is used for messages initiating a message flow rather than in response to
+ * another message. The latter should use the return value of [`Self::handle_custom_message`].
+ */
+ public ThreeTuple_OnionMessageContentsDestinationBlindedPathZ[] release_pending_custom_messages() {
+ long ret = bindings.CustomOnionMessageHandler_release_pending_custom_messages(this.ptr);
+ GC.KeepAlive(this);
+ if (ret >= 0 && ret <= 4096) { return null; }
+ int ret_conv_56_len = InternalUtils.getArrayLength(ret);
+ ThreeTuple_OnionMessageContentsDestinationBlindedPathZ[] ret_conv_56_arr = new ThreeTuple_OnionMessageContentsDestinationBlindedPathZ[ret_conv_56_len];
+ for (int e = 0; e < ret_conv_56_len; e++) {
+ long ret_conv_56 = InternalUtils.getU64ArrayElem(ret, e);
+ ThreeTuple_OnionMessageContentsDestinationBlindedPathZ ret_conv_56_hu_conv = new ThreeTuple_OnionMessageContentsDestinationBlindedPathZ(null, ret_conv_56);
+ if (ret_conv_56_hu_conv != null) { ret_conv_56_hu_conv.ptrs_to.AddLast(this); };
+ ret_conv_56_arr[e] = ret_conv_56_hu_conv;
+ }
+ bindings.free_buffer(ret);
+ return ret_conv_56_arr;
+ }
+