1 package org.ldk.structs;
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
12 * A [`warning`] message to be sent to or received from a peer.
14 * [`warning`]: https://github.com/lightning/bolts/blob/master/01-messaging.md#the-error-and-warning-messages
16 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
17 public class WarningMessage extends CommonBase {
18 WarningMessage(Object _dummy, long ptr) { super(ptr); }
19 @Override @SuppressWarnings("deprecation")
20 protected void finalize() throws Throwable {
22 if (ptr != 0) { bindings.WarningMessage_free(ptr); }
26 * The channel ID involved in the warning.
28 * All-0s indicates a warning unrelated to a specific channel.
30 public byte[] get_channel_id() {
31 byte[] ret = bindings.WarningMessage_get_channel_id(this.ptr);
32 Reference.reachabilityFence(this);
37 * The channel ID involved in the warning.
39 * All-0s indicates a warning unrelated to a specific channel.
41 public void set_channel_id(byte[] val) {
42 bindings.WarningMessage_set_channel_id(this.ptr, InternalUtils.check_arr_len(val, 32));
43 Reference.reachabilityFence(this);
44 Reference.reachabilityFence(val);
48 * A possibly human-readable warning description.
50 * The string should be sanitized before it is used (e.g. emitted to logs or printed to
51 * stdout). Otherwise, a well crafted error message may trigger a security vulnerability in
52 * the terminal emulator or the logging subsystem.
54 public String get_data() {
55 String ret = bindings.WarningMessage_get_data(this.ptr);
56 Reference.reachabilityFence(this);
61 * A possibly human-readable warning description.
63 * The string should be sanitized before it is used (e.g. emitted to logs or printed to
64 * stdout). Otherwise, a well crafted error message may trigger a security vulnerability in
65 * the terminal emulator or the logging subsystem.
67 public void set_data(java.lang.String val) {
68 bindings.WarningMessage_set_data(this.ptr, val);
69 Reference.reachabilityFence(this);
70 Reference.reachabilityFence(val);
74 * Constructs a new WarningMessage given each field
76 public static WarningMessage of(byte[] channel_id_arg, java.lang.String data_arg) {
77 long ret = bindings.WarningMessage_new(InternalUtils.check_arr_len(channel_id_arg, 32), data_arg);
78 Reference.reachabilityFence(channel_id_arg);
79 Reference.reachabilityFence(data_arg);
80 if (ret >= 0 && ret <= 4096) { return null; }
81 org.ldk.structs.WarningMessage ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.WarningMessage(null, ret); }
82 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
87 long ret = bindings.WarningMessage_clone_ptr(this.ptr);
88 Reference.reachabilityFence(this);
93 * Creates a copy of the WarningMessage
95 public WarningMessage clone() {
96 long ret = bindings.WarningMessage_clone(this.ptr);
97 Reference.reachabilityFence(this);
98 if (ret >= 0 && ret <= 4096) { return null; }
99 org.ldk.structs.WarningMessage ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.WarningMessage(null, ret); }
100 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
105 * Checks if two WarningMessages contain equal inner contents.
106 * This ignores pointers and is_owned flags and looks at the values in fields.
107 * Two objects with NULL inner values will be considered "equal" here.
109 public boolean eq(org.ldk.structs.WarningMessage b) {
110 boolean ret = bindings.WarningMessage_eq(this.ptr, b == null ? 0 : b.ptr);
111 Reference.reachabilityFence(this);
112 Reference.reachabilityFence(b);
113 if (this != null) { this.ptrs_to.add(b); };
117 @Override public boolean equals(Object o) {
118 if (!(o instanceof WarningMessage)) return false;
119 return this.eq((WarningMessage)o);
122 * Serialize the WarningMessage object into a byte array which can be read by WarningMessage_read
124 public byte[] write() {
125 byte[] ret = bindings.WarningMessage_write(this.ptr);
126 Reference.reachabilityFence(this);
131 * Read a WarningMessage from a byte array, created by WarningMessage_write
133 public static Result_WarningMessageDecodeErrorZ read(byte[] ser) {
134 long ret = bindings.WarningMessage_read(ser);
135 Reference.reachabilityFence(ser);
136 if (ret >= 0 && ret <= 4096) { return null; }
137 Result_WarningMessageDecodeErrorZ ret_hu_conv = Result_WarningMessageDecodeErrorZ.constr_from_ptr(ret);