Update auto-generated bindings
[ldk-java] / src / main / java / org / ldk / structs / DirectionalChannelInfo.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7
8
9 /**
10  * Details about one direction of a channel. Received
11  * within a channel update.
12  */
13 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
14 public class DirectionalChannelInfo extends CommonBase {
15         DirectionalChannelInfo(Object _dummy, long ptr) { super(ptr); }
16         @Override @SuppressWarnings("deprecation")
17         protected void finalize() throws Throwable {
18                 super.finalize();
19                 if (ptr != 0) { bindings.DirectionalChannelInfo_free(ptr); }
20         }
21
22         /**
23          * When the last update to the channel direction was issued.
24          * Value is opaque, as set in the announcement.
25          */
26         public int get_last_update() {
27                 int ret = bindings.DirectionalChannelInfo_get_last_update(this.ptr);
28                 return ret;
29         }
30
31         /**
32          * When the last update to the channel direction was issued.
33          * Value is opaque, as set in the announcement.
34          */
35         public void set_last_update(int val) {
36                 bindings.DirectionalChannelInfo_set_last_update(this.ptr, val);
37         }
38
39         /**
40          * Whether the channel can be currently used for payments (in this one direction).
41          */
42         public boolean get_enabled() {
43                 boolean ret = bindings.DirectionalChannelInfo_get_enabled(this.ptr);
44                 return ret;
45         }
46
47         /**
48          * Whether the channel can be currently used for payments (in this one direction).
49          */
50         public void set_enabled(boolean val) {
51                 bindings.DirectionalChannelInfo_set_enabled(this.ptr, val);
52         }
53
54         /**
55          * The difference in CLTV values that you must have when routing through this channel.
56          */
57         public short get_cltv_expiry_delta() {
58                 short ret = bindings.DirectionalChannelInfo_get_cltv_expiry_delta(this.ptr);
59                 return ret;
60         }
61
62         /**
63          * The difference in CLTV values that you must have when routing through this channel.
64          */
65         public void set_cltv_expiry_delta(short val) {
66                 bindings.DirectionalChannelInfo_set_cltv_expiry_delta(this.ptr, val);
67         }
68
69         /**
70          * The minimum value, which must be relayed to the next hop via the channel
71          */
72         public long get_htlc_minimum_msat() {
73                 long ret = bindings.DirectionalChannelInfo_get_htlc_minimum_msat(this.ptr);
74                 return ret;
75         }
76
77         /**
78          * The minimum value, which must be relayed to the next hop via the channel
79          */
80         public void set_htlc_minimum_msat(long val) {
81                 bindings.DirectionalChannelInfo_set_htlc_minimum_msat(this.ptr, val);
82         }
83
84         /**
85          * The maximum value which may be relayed to the next hop via the channel.
86          */
87         public Option_u64Z get_htlc_maximum_msat() {
88                 long ret = bindings.DirectionalChannelInfo_get_htlc_maximum_msat(this.ptr);
89                 if (ret < 1024) { return null; }
90                 Option_u64Z ret_hu_conv = Option_u64Z.constr_from_ptr(ret);
91                 ret_hu_conv.ptrs_to.add(this);
92                 return ret_hu_conv;
93         }
94
95         /**
96          * The maximum value which may be relayed to the next hop via the channel.
97          */
98         public void set_htlc_maximum_msat(Option_u64Z val) {
99                 bindings.DirectionalChannelInfo_set_htlc_maximum_msat(this.ptr, val.ptr);
100         }
101
102         /**
103          * Fees charged when the channel is used for routing
104          */
105         public RoutingFees get_fees() {
106                 long ret = bindings.DirectionalChannelInfo_get_fees(this.ptr);
107                 if (ret < 1024) { return null; }
108                 RoutingFees ret_hu_conv = new RoutingFees(null, ret);
109                 ret_hu_conv.ptrs_to.add(this);
110                 return ret_hu_conv;
111         }
112
113         /**
114          * Fees charged when the channel is used for routing
115          */
116         public void set_fees(RoutingFees val) {
117                 bindings.DirectionalChannelInfo_set_fees(this.ptr, val == null ? 0 : val.ptr & ~1);
118                 this.ptrs_to.add(val);
119         }
120
121         /**
122          * Most recent update for the channel received from the network
123          * Mostly redundant with the data we store in fields explicitly.
124          * Everything else is useful only for sending out for initial routing sync.
125          * Not stored if contains excess data to prevent DoS.
126          * 
127          * Note that the return value (or a relevant inner pointer) may be NULL or all-0s to represent None
128          */
129         @Nullable
130         public ChannelUpdate get_last_update_message() {
131                 long ret = bindings.DirectionalChannelInfo_get_last_update_message(this.ptr);
132                 if (ret < 1024) { return null; }
133                 ChannelUpdate ret_hu_conv = new ChannelUpdate(null, ret);
134                 ret_hu_conv.ptrs_to.add(this);
135                 return ret_hu_conv;
136         }
137
138         /**
139          * Most recent update for the channel received from the network
140          * Mostly redundant with the data we store in fields explicitly.
141          * Everything else is useful only for sending out for initial routing sync.
142          * Not stored if contains excess data to prevent DoS.
143          * 
144          * Note that val (or a relevant inner pointer) may be NULL or all-0s to represent None
145          */
146         public void set_last_update_message(@Nullable ChannelUpdate val) {
147                 bindings.DirectionalChannelInfo_set_last_update_message(this.ptr, val == null ? 0 : val.ptr & ~1);
148                 this.ptrs_to.add(val);
149         }
150
151         /**
152          * Constructs a new DirectionalChannelInfo given each field
153          */
154         public static DirectionalChannelInfo of(int last_update_arg, boolean enabled_arg, short cltv_expiry_delta_arg, long htlc_minimum_msat_arg, Option_u64Z htlc_maximum_msat_arg, RoutingFees fees_arg, ChannelUpdate last_update_message_arg) {
155                 long ret = bindings.DirectionalChannelInfo_new(last_update_arg, enabled_arg, cltv_expiry_delta_arg, htlc_minimum_msat_arg, htlc_maximum_msat_arg.ptr, fees_arg == null ? 0 : fees_arg.ptr & ~1, last_update_message_arg == null ? 0 : last_update_message_arg.ptr & ~1);
156                 if (ret < 1024) { return null; }
157                 DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret);
158                 ret_hu_conv.ptrs_to.add(ret_hu_conv);
159                 ret_hu_conv.ptrs_to.add(fees_arg);
160                 ret_hu_conv.ptrs_to.add(last_update_message_arg);
161                 return ret_hu_conv;
162         }
163
164         /**
165          * Creates a copy of the DirectionalChannelInfo
166          */
167         public DirectionalChannelInfo clone() {
168                 long ret = bindings.DirectionalChannelInfo_clone(this.ptr);
169                 if (ret < 1024) { return null; }
170                 DirectionalChannelInfo ret_hu_conv = new DirectionalChannelInfo(null, ret);
171                 ret_hu_conv.ptrs_to.add(this);
172                 return ret_hu_conv;
173         }
174
175         /**
176          * Serialize the DirectionalChannelInfo object into a byte array which can be read by DirectionalChannelInfo_read
177          */
178         public byte[] write() {
179                 byte[] ret = bindings.DirectionalChannelInfo_write(this.ptr);
180                 return ret;
181         }
182
183         /**
184          * Read a DirectionalChannelInfo from a byte array, created by DirectionalChannelInfo_write
185          */
186         public static Result_DirectionalChannelInfoDecodeErrorZ read(byte[] ser) {
187                 long ret = bindings.DirectionalChannelInfo_read(ser);
188                 if (ret < 1024) { return null; }
189                 Result_DirectionalChannelInfoDecodeErrorZ ret_hu_conv = Result_DirectionalChannelInfoDecodeErrorZ.constr_from_ptr(ret);
190                 return ret_hu_conv;
191         }
192
193 }