[TS] Update auto-generated bindings to LDK-C-Bindings 0.0.123.1
[ldk-java] / c_sharp / src / org / ldk / structs / ClosureReason.cs
1 using org.ldk.impl;
2 using org.ldk.enums;
3 using org.ldk.util;
4 using System;
5
6 namespace org { namespace ldk { namespace structs {
7
8 /**
9  * The reason the channel was closed. See individual variants for more details.
10  */
11 public class ClosureReason : CommonBase {
12         protected ClosureReason(object _dummy, long ptr) : base(ptr) { }
13         ~ClosureReason() {
14                 if (ptr != 0) { bindings.ClosureReason_free(ptr); }
15         }
16
17         internal static ClosureReason constr_from_ptr(long ptr) {
18                 long raw_ty = bindings.LDKClosureReason_ty_from_ptr(ptr);
19                 switch (raw_ty) {
20                         case 0: return new ClosureReason_CounterpartyForceClosed(ptr);
21                         case 1: return new ClosureReason_HolderForceClosed(ptr);
22                         case 2: return new ClosureReason_LegacyCooperativeClosure(ptr);
23                         case 3: return new ClosureReason_CounterpartyInitiatedCooperativeClosure(ptr);
24                         case 4: return new ClosureReason_LocallyInitiatedCooperativeClosure(ptr);
25                         case 5: return new ClosureReason_CommitmentTxConfirmed(ptr);
26                         case 6: return new ClosureReason_FundingTimedOut(ptr);
27                         case 7: return new ClosureReason_ProcessingError(ptr);
28                         case 8: return new ClosureReason_DisconnectedPeer(ptr);
29                         case 9: return new ClosureReason_OutdatedChannelManager(ptr);
30                         case 10: return new ClosureReason_CounterpartyCoopClosedUnfundedChannel(ptr);
31                         case 11: return new ClosureReason_FundingBatchClosure(ptr);
32                         case 12: return new ClosureReason_HTLCsTimedOut(ptr);
33                         default:
34                                 throw new ArgumentException("Impossible enum variant");
35                 }
36         }
37
38         /** A ClosureReason of type CounterpartyForceClosed */
39         public class ClosureReason_CounterpartyForceClosed : ClosureReason {
40                 /**
41                  * The error which the peer sent us.
42                  * 
43                  * Be careful about printing the peer_msg, a well-crafted message could exploit
44                  * a security vulnerability in the terminal emulator or the logging subsystem.
45                  * To be safe, use `Display` on `UntrustedString`
46                  * 
47                  * [`UntrustedString`]: crate::util::string::UntrustedString
48                  */
49                 public UntrustedString peer_msg;
50                 internal ClosureReason_CounterpartyForceClosed(long ptr) : base(null, ptr) {
51                         long peer_msg = bindings.LDKClosureReason_CounterpartyForceClosed_get_peer_msg(ptr);
52                         org.ldk.structs.UntrustedString peer_msg_hu_conv = null; if (peer_msg < 0 || peer_msg > 4096) { peer_msg_hu_conv = new org.ldk.structs.UntrustedString(null, peer_msg); }
53                         if (peer_msg_hu_conv != null) { peer_msg_hu_conv.ptrs_to.AddLast(this); };
54                         this.peer_msg = peer_msg_hu_conv;
55                 }
56         }
57         /** A ClosureReason of type HolderForceClosed */
58         public class ClosureReason_HolderForceClosed : ClosureReason {
59                 internal ClosureReason_HolderForceClosed(long ptr) : base(null, ptr) {
60                 }
61         }
62         /** A ClosureReason of type LegacyCooperativeClosure */
63         public class ClosureReason_LegacyCooperativeClosure : ClosureReason {
64                 internal ClosureReason_LegacyCooperativeClosure(long ptr) : base(null, ptr) {
65                 }
66         }
67         /** A ClosureReason of type CounterpartyInitiatedCooperativeClosure */
68         public class ClosureReason_CounterpartyInitiatedCooperativeClosure : ClosureReason {
69                 internal ClosureReason_CounterpartyInitiatedCooperativeClosure(long ptr) : base(null, ptr) {
70                 }
71         }
72         /** A ClosureReason of type LocallyInitiatedCooperativeClosure */
73         public class ClosureReason_LocallyInitiatedCooperativeClosure : ClosureReason {
74                 internal ClosureReason_LocallyInitiatedCooperativeClosure(long ptr) : base(null, ptr) {
75                 }
76         }
77         /** A ClosureReason of type CommitmentTxConfirmed */
78         public class ClosureReason_CommitmentTxConfirmed : ClosureReason {
79                 internal ClosureReason_CommitmentTxConfirmed(long ptr) : base(null, ptr) {
80                 }
81         }
82         /** A ClosureReason of type FundingTimedOut */
83         public class ClosureReason_FundingTimedOut : ClosureReason {
84                 internal ClosureReason_FundingTimedOut(long ptr) : base(null, ptr) {
85                 }
86         }
87         /** A ClosureReason of type ProcessingError */
88         public class ClosureReason_ProcessingError : ClosureReason {
89                 /**
90                  * A developer-readable error message which we generated.
91                  */
92                 public string err;
93                 internal ClosureReason_ProcessingError(long ptr) : base(null, ptr) {
94                         long err = bindings.LDKClosureReason_ProcessingError_get_err(ptr);
95                         string err_conv = InternalUtils.decodeString(err);
96                         this.err = err_conv;
97                 }
98         }
99         /** A ClosureReason of type DisconnectedPeer */
100         public class ClosureReason_DisconnectedPeer : ClosureReason {
101                 internal ClosureReason_DisconnectedPeer(long ptr) : base(null, ptr) {
102                 }
103         }
104         /** A ClosureReason of type OutdatedChannelManager */
105         public class ClosureReason_OutdatedChannelManager : ClosureReason {
106                 internal ClosureReason_OutdatedChannelManager(long ptr) : base(null, ptr) {
107                 }
108         }
109         /** A ClosureReason of type CounterpartyCoopClosedUnfundedChannel */
110         public class ClosureReason_CounterpartyCoopClosedUnfundedChannel : ClosureReason {
111                 internal ClosureReason_CounterpartyCoopClosedUnfundedChannel(long ptr) : base(null, ptr) {
112                 }
113         }
114         /** A ClosureReason of type FundingBatchClosure */
115         public class ClosureReason_FundingBatchClosure : ClosureReason {
116                 internal ClosureReason_FundingBatchClosure(long ptr) : base(null, ptr) {
117                 }
118         }
119         /** A ClosureReason of type HTLCsTimedOut */
120         public class ClosureReason_HTLCsTimedOut : ClosureReason {
121                 internal ClosureReason_HTLCsTimedOut(long ptr) : base(null, ptr) {
122                 }
123         }
124         internal long clone_ptr() {
125                 long ret = bindings.ClosureReason_clone_ptr(this.ptr);
126                 GC.KeepAlive(this);
127                 return ret;
128         }
129
130         /**
131          * Creates a copy of the ClosureReason
132          */
133         public ClosureReason clone() {
134                 long ret = bindings.ClosureReason_clone(this.ptr);
135                 GC.KeepAlive(this);
136                 if (ret >= 0 && ret <= 4096) { return null; }
137                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
138                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(this); };
139                 return ret_hu_conv;
140         }
141
142         /**
143          * Utility method to constructs a new CounterpartyForceClosed-variant ClosureReason
144          */
145         public static ClosureReason counterparty_force_closed(org.ldk.structs.UntrustedString peer_msg) {
146                 long ret = bindings.ClosureReason_counterparty_force_closed(peer_msg.ptr);
147                 GC.KeepAlive(peer_msg);
148                 if (ret >= 0 && ret <= 4096) { return null; }
149                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
150                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
151                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(peer_msg); };
152                 return ret_hu_conv;
153         }
154
155         /**
156          * Utility method to constructs a new HolderForceClosed-variant ClosureReason
157          */
158         public static ClosureReason holder_force_closed() {
159                 long ret = bindings.ClosureReason_holder_force_closed();
160                 if (ret >= 0 && ret <= 4096) { return null; }
161                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
162                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
163                 return ret_hu_conv;
164         }
165
166         /**
167          * Utility method to constructs a new LegacyCooperativeClosure-variant ClosureReason
168          */
169         public static ClosureReason legacy_cooperative_closure() {
170                 long ret = bindings.ClosureReason_legacy_cooperative_closure();
171                 if (ret >= 0 && ret <= 4096) { return null; }
172                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
173                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
174                 return ret_hu_conv;
175         }
176
177         /**
178          * Utility method to constructs a new CounterpartyInitiatedCooperativeClosure-variant ClosureReason
179          */
180         public static ClosureReason counterparty_initiated_cooperative_closure() {
181                 long ret = bindings.ClosureReason_counterparty_initiated_cooperative_closure();
182                 if (ret >= 0 && ret <= 4096) { return null; }
183                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
184                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
185                 return ret_hu_conv;
186         }
187
188         /**
189          * Utility method to constructs a new LocallyInitiatedCooperativeClosure-variant ClosureReason
190          */
191         public static ClosureReason locally_initiated_cooperative_closure() {
192                 long ret = bindings.ClosureReason_locally_initiated_cooperative_closure();
193                 if (ret >= 0 && ret <= 4096) { return null; }
194                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
195                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
196                 return ret_hu_conv;
197         }
198
199         /**
200          * Utility method to constructs a new CommitmentTxConfirmed-variant ClosureReason
201          */
202         public static ClosureReason commitment_tx_confirmed() {
203                 long ret = bindings.ClosureReason_commitment_tx_confirmed();
204                 if (ret >= 0 && ret <= 4096) { return null; }
205                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
206                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
207                 return ret_hu_conv;
208         }
209
210         /**
211          * Utility method to constructs a new FundingTimedOut-variant ClosureReason
212          */
213         public static ClosureReason funding_timed_out() {
214                 long ret = bindings.ClosureReason_funding_timed_out();
215                 if (ret >= 0 && ret <= 4096) { return null; }
216                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
217                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
218                 return ret_hu_conv;
219         }
220
221         /**
222          * Utility method to constructs a new ProcessingError-variant ClosureReason
223          */
224         public static ClosureReason processing_error(string err) {
225                 long ret = bindings.ClosureReason_processing_error(InternalUtils.encodeString(err));
226                 GC.KeepAlive(err);
227                 if (ret >= 0 && ret <= 4096) { return null; }
228                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
229                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
230                 return ret_hu_conv;
231         }
232
233         /**
234          * Utility method to constructs a new DisconnectedPeer-variant ClosureReason
235          */
236         public static ClosureReason disconnected_peer() {
237                 long ret = bindings.ClosureReason_disconnected_peer();
238                 if (ret >= 0 && ret <= 4096) { return null; }
239                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
240                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
241                 return ret_hu_conv;
242         }
243
244         /**
245          * Utility method to constructs a new OutdatedChannelManager-variant ClosureReason
246          */
247         public static ClosureReason outdated_channel_manager() {
248                 long ret = bindings.ClosureReason_outdated_channel_manager();
249                 if (ret >= 0 && ret <= 4096) { return null; }
250                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
251                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
252                 return ret_hu_conv;
253         }
254
255         /**
256          * Utility method to constructs a new CounterpartyCoopClosedUnfundedChannel-variant ClosureReason
257          */
258         public static ClosureReason counterparty_coop_closed_unfunded_channel() {
259                 long ret = bindings.ClosureReason_counterparty_coop_closed_unfunded_channel();
260                 if (ret >= 0 && ret <= 4096) { return null; }
261                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
262                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
263                 return ret_hu_conv;
264         }
265
266         /**
267          * Utility method to constructs a new FundingBatchClosure-variant ClosureReason
268          */
269         public static ClosureReason funding_batch_closure() {
270                 long ret = bindings.ClosureReason_funding_batch_closure();
271                 if (ret >= 0 && ret <= 4096) { return null; }
272                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
273                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
274                 return ret_hu_conv;
275         }
276
277         /**
278          * Utility method to constructs a new HTLCsTimedOut-variant ClosureReason
279          */
280         public static ClosureReason htlcs_timed_out() {
281                 long ret = bindings.ClosureReason_htlcs_timed_out();
282                 if (ret >= 0 && ret <= 4096) { return null; }
283                 org.ldk.structs.ClosureReason ret_hu_conv = org.ldk.structs.ClosureReason.constr_from_ptr(ret);
284                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.AddLast(ret_hu_conv); };
285                 return ret_hu_conv;
286         }
287
288         /**
289          * Checks if two ClosureReasons contain equal inner contents.
290          * This ignores pointers and is_owned flags and looks at the values in fields.
291          */
292         public bool eq(org.ldk.structs.ClosureReason b) {
293                 bool ret = bindings.ClosureReason_eq(this.ptr, b.ptr);
294                 GC.KeepAlive(this);
295                 GC.KeepAlive(b);
296                 return ret;
297         }
298
299         public override bool Equals(object o) {
300                 if (!(o is ClosureReason)) return false;
301                 return this.eq((ClosureReason)o);
302         }
303         /**
304          * Serialize the ClosureReason object into a byte array which can be read by ClosureReason_read
305          */
306         public byte[] write() {
307                 long ret = bindings.ClosureReason_write(this.ptr);
308                 GC.KeepAlive(this);
309                 if (ret >= 0 && ret <= 4096) { return null; }
310                 byte[] ret_conv = InternalUtils.decodeUint8Array(ret);
311                 return ret_conv;
312         }
313
314 }
315 } } }