X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FNetworkGraph.java;h=e3414f4821f84e58704d876793e15e918fc910c3;hb=5e9de82b3a7712a41189756d9d16d946142b2ac5;hp=18d313a0bb250fd8a3563dcb16c35eeeed90b6ff;hpb=13cdf8bde340072288b39a5e29f0946d3e095ad4;p=ldk-java diff --git a/src/main/java/org/ldk/structs/NetworkGraph.java b/src/main/java/org/ldk/structs/NetworkGraph.java index 18d313a0..e3414f48 100644 --- a/src/main/java/org/ldk/structs/NetworkGraph.java +++ b/src/main/java/org/ldk/structs/NetworkGraph.java @@ -29,7 +29,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(this); if (ret >= 0 && ret <= 4096) { return null; } EventHandler ret_hu_conv = new EventHandler(null, ret); - ret_hu_conv.ptrs_to.add(this); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); }; return ret_hu_conv; } @@ -51,7 +51,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(arg); if (ret >= 0 && ret <= 4096) { return null; } Result_NetworkGraphDecodeErrorZ ret_hu_conv = Result_NetworkGraphDecodeErrorZ.constr_from_ptr(ret); - ret_hu_conv.ptrs_to.add(arg); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(arg); }; return ret_hu_conv; } @@ -64,8 +64,8 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(logger); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.NetworkGraph ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.NetworkGraph(null, ret); } - ret_hu_conv.ptrs_to.add(ret_hu_conv); - ret_hu_conv.ptrs_to.add(logger); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); }; + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(logger); }; return ret_hu_conv; } @@ -77,7 +77,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(this); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.ReadOnlyNetworkGraph ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new org.ldk.structs.ReadOnlyNetworkGraph(null, ret); } - ret_hu_conv.ptrs_to.add(this); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); }; return ret_hu_conv; } @@ -90,7 +90,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(this); if (ret >= 0 && ret <= 4096) { return null; } org.ldk.structs.Option_u32Z ret_hu_conv = org.ldk.structs.Option_u32Z.constr_from_ptr(ret); - ret_hu_conv.ptrs_to.add(this); + if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); }; return ret_hu_conv; } @@ -118,7 +118,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(msg); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); + if (this != null) { this.ptrs_to.add(msg); }; return ret_hu_conv; } @@ -134,7 +134,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(msg); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); + if (this != null) { this.ptrs_to.add(msg); }; return ret_hu_conv; } @@ -155,8 +155,8 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(chain_access); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); - this.ptrs_to.add(chain_access); + if (this != null) { this.ptrs_to.add(msg); }; + if (this != null) { this.ptrs_to.add(chain_access); }; return ret_hu_conv; } @@ -175,8 +175,8 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(chain_access); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); - this.ptrs_to.add(chain_access); + if (this != null) { this.ptrs_to.add(msg); }; + if (this != null) { this.ptrs_to.add(chain_access); }; return ret_hu_conv; } @@ -198,7 +198,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(node_id_2); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(features); + if (this != null) { this.ptrs_to.add(features); }; return ret_hu_conv; } @@ -216,13 +216,13 @@ public class NetworkGraph extends CommonBase { } /** - * Marks a node in the graph as failed. + * Marks a node in the graph as permanently failed, effectively removing it and its channels + * from local storage. */ - public void node_failed(byte[] _node_id, boolean is_permanent) { - bindings.NetworkGraph_node_failed(this.ptr, InternalUtils.check_arr_len(_node_id, 33), is_permanent); + public void node_failed_permanent(byte[] node_id) { + bindings.NetworkGraph_node_failed_permanent(this.ptr, InternalUtils.check_arr_len(node_id, 33)); Reference.reachabilityFence(this); - Reference.reachabilityFence(_node_id); - Reference.reachabilityFence(is_permanent); + Reference.reachabilityFence(node_id); } /** @@ -237,11 +237,14 @@ public class NetworkGraph extends CommonBase { * Note that for users of the `lightning-background-processor` crate this method may be * automatically called regularly for you. * + * This method will also cause us to stop tracking removed nodes and channels if they have been + * in the map for a while so that these can be resynced from gossip in the future. + * * This method is only available with the `std` feature. See - * [`NetworkGraph::remove_stale_channels_with_time`] for `no-std` use. + * [`NetworkGraph::remove_stale_channels_and_tracking_with_time`] for `no-std` use. */ - public void remove_stale_channels() { - bindings.NetworkGraph_remove_stale_channels(this.ptr); + public void remove_stale_channels_and_tracking() { + bindings.NetworkGraph_remove_stale_channels_and_tracking(this.ptr); Reference.reachabilityFence(this); } @@ -254,11 +257,14 @@ public class NetworkGraph extends CommonBase { * updates every two weeks, the non-normative section of BOLT 7 currently suggests that * pruning occur for updates which are at least two weeks old, which we implement here. * + * This method will also cause us to stop tracking removed nodes and channels if they have been + * in the map for a while so that these can be resynced from gossip in the future. + * * This function takes the current unix time as an argument. For users with the `std` feature - * enabled, [`NetworkGraph::remove_stale_channels`] may be preferable. + * enabled, [`NetworkGraph::remove_stale_channels_and_tracking`] may be preferable. */ - public void remove_stale_channels_with_time(long current_time_unix) { - bindings.NetworkGraph_remove_stale_channels_with_time(this.ptr, current_time_unix); + public void remove_stale_channels_and_tracking_with_time(long current_time_unix) { + bindings.NetworkGraph_remove_stale_channels_and_tracking_with_time(this.ptr, current_time_unix); Reference.reachabilityFence(this); Reference.reachabilityFence(current_time_unix); } @@ -280,7 +286,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(msg); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); + if (this != null) { this.ptrs_to.add(msg); }; return ret_hu_conv; } @@ -298,7 +304,7 @@ public class NetworkGraph extends CommonBase { Reference.reachabilityFence(msg); if (ret >= 0 && ret <= 4096) { return null; } Result_NoneLightningErrorZ ret_hu_conv = Result_NoneLightningErrorZ.constr_from_ptr(ret); - this.ptrs_to.add(msg); + if (this != null) { this.ptrs_to.add(msg); }; return ret_hu_conv; }