[Java] Update auto-generated Java bindings to LDK 0.0.121
[ldk-java] / src / main / java / org / ldk / structs / QueryChannelRange.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 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
9
10
11 /**
12  * A [`query_channel_range`] message is used to query a peer for channel
13  * UTXOs in a range of blocks. The recipient of a query makes a best
14  * effort to reply to the query using one or more [`ReplyChannelRange`]
15  * messages.
16  * 
17  * [`query_channel_range`]: https://github.com/lightning/bolts/blob/master/07-routing-gossip.md#the-query_channel_range-and-reply_channel_range-messages
18  */
19 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
20 public class QueryChannelRange extends CommonBase {
21         QueryChannelRange(Object _dummy, long ptr) { super(ptr); }
22         @Override @SuppressWarnings("deprecation")
23         protected void finalize() throws Throwable {
24                 super.finalize();
25                 if (ptr != 0) { bindings.QueryChannelRange_free(ptr); }
26         }
27
28         /**
29          * The genesis hash of the blockchain being queried
30          */
31         public byte[] get_chain_hash() {
32                 byte[] ret = bindings.QueryChannelRange_get_chain_hash(this.ptr);
33                 Reference.reachabilityFence(this);
34                 return ret;
35         }
36
37         /**
38          * The genesis hash of the blockchain being queried
39          */
40         public void set_chain_hash(byte[] val) {
41                 bindings.QueryChannelRange_set_chain_hash(this.ptr, InternalUtils.check_arr_len(val, 32));
42                 Reference.reachabilityFence(this);
43                 Reference.reachabilityFence(val);
44         }
45
46         /**
47          * The height of the first block for the channel UTXOs being queried
48          */
49         public int get_first_blocknum() {
50                 int ret = bindings.QueryChannelRange_get_first_blocknum(this.ptr);
51                 Reference.reachabilityFence(this);
52                 return ret;
53         }
54
55         /**
56          * The height of the first block for the channel UTXOs being queried
57          */
58         public void set_first_blocknum(int val) {
59                 bindings.QueryChannelRange_set_first_blocknum(this.ptr, val);
60                 Reference.reachabilityFence(this);
61                 Reference.reachabilityFence(val);
62         }
63
64         /**
65          * The number of blocks to include in the query results
66          */
67         public int get_number_of_blocks() {
68                 int ret = bindings.QueryChannelRange_get_number_of_blocks(this.ptr);
69                 Reference.reachabilityFence(this);
70                 return ret;
71         }
72
73         /**
74          * The number of blocks to include in the query results
75          */
76         public void set_number_of_blocks(int val) {
77                 bindings.QueryChannelRange_set_number_of_blocks(this.ptr, val);
78                 Reference.reachabilityFence(this);
79                 Reference.reachabilityFence(val);
80         }
81
82         /**
83          * Constructs a new QueryChannelRange given each field
84          */
85         public static QueryChannelRange of(byte[] chain_hash_arg, int first_blocknum_arg, int number_of_blocks_arg) {
86                 long ret = bindings.QueryChannelRange_new(InternalUtils.check_arr_len(chain_hash_arg, 32), first_blocknum_arg, number_of_blocks_arg);
87                 Reference.reachabilityFence(chain_hash_arg);
88                 Reference.reachabilityFence(first_blocknum_arg);
89                 Reference.reachabilityFence(number_of_blocks_arg);
90                 if (ret >= 0 && ret <= 4096) { return null; }
91                 org.ldk.structs.QueryChannelRange ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.QueryChannelRange(null, ret); }
92                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
93                 return ret_hu_conv;
94         }
95
96         long clone_ptr() {
97                 long ret = bindings.QueryChannelRange_clone_ptr(this.ptr);
98                 Reference.reachabilityFence(this);
99                 return ret;
100         }
101
102         /**
103          * Creates a copy of the QueryChannelRange
104          */
105         public QueryChannelRange clone() {
106                 long ret = bindings.QueryChannelRange_clone(this.ptr);
107                 Reference.reachabilityFence(this);
108                 if (ret >= 0 && ret <= 4096) { return null; }
109                 org.ldk.structs.QueryChannelRange ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.QueryChannelRange(null, ret); }
110                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
111                 return ret_hu_conv;
112         }
113
114         /**
115          * Generates a non-cryptographic 64-bit hash of the QueryChannelRange.
116          */
117         public long hash() {
118                 long ret = bindings.QueryChannelRange_hash(this.ptr);
119                 Reference.reachabilityFence(this);
120                 return ret;
121         }
122
123         @Override public int hashCode() {
124                 return (int)this.hash();
125         }
126         /**
127          * Checks if two QueryChannelRanges contain equal inner contents.
128          * This ignores pointers and is_owned flags and looks at the values in fields.
129          * Two objects with NULL inner values will be considered "equal" here.
130          */
131         public boolean eq(org.ldk.structs.QueryChannelRange b) {
132                 boolean ret = bindings.QueryChannelRange_eq(this.ptr, b == null ? 0 : b.ptr);
133                 Reference.reachabilityFence(this);
134                 Reference.reachabilityFence(b);
135                 if (this != null) { this.ptrs_to.add(b); };
136                 return ret;
137         }
138
139         @Override public boolean equals(Object o) {
140                 if (!(o instanceof QueryChannelRange)) return false;
141                 return this.eq((QueryChannelRange)o);
142         }
143         /**
144          * Calculates the overflow safe ending block height for the query.
145          * 
146          * Overflow returns `0xffffffff`, otherwise returns `first_blocknum + number_of_blocks`.
147          */
148         public int end_blocknum() {
149                 int ret = bindings.QueryChannelRange_end_blocknum(this.ptr);
150                 Reference.reachabilityFence(this);
151                 return ret;
152         }
153
154         /**
155          * Serialize the QueryChannelRange object into a byte array which can be read by QueryChannelRange_read
156          */
157         public byte[] write() {
158                 byte[] ret = bindings.QueryChannelRange_write(this.ptr);
159                 Reference.reachabilityFence(this);
160                 return ret;
161         }
162
163         /**
164          * Read a QueryChannelRange from a byte array, created by QueryChannelRange_write
165          */
166         public static Result_QueryChannelRangeDecodeErrorZ read(byte[] ser) {
167                 long ret = bindings.QueryChannelRange_read(ser);
168                 Reference.reachabilityFence(ser);
169                 if (ret >= 0 && ret <= 4096) { return null; }
170                 Result_QueryChannelRangeDecodeErrorZ ret_hu_conv = Result_QueryChannelRangeDecodeErrorZ.constr_from_ptr(ret);
171                 return ret_hu_conv;
172         }
173
174 }