X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FScorer.java;h=0bd7418378233502327bea0984d106ee9e77682d;hb=1854b5cebef22ace9e9e4dd191f609818df9ce08;hp=82b995792a6aad588ff985b57ef25f57265ffc32;hpb=5fd405f7a48aaeca779c45c88ec6b3d3d3dbf0e4;p=ldk-java diff --git a/src/main/java/org/ldk/structs/Scorer.java b/src/main/java/org/ldk/structs/Scorer.java index 82b99579..0bd74183 100644 --- a/src/main/java/org/ldk/structs/Scorer.java +++ b/src/main/java/org/ldk/structs/Scorer.java @@ -4,18 +4,19 @@ import org.ldk.impl.bindings; import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +import java.lang.ref.Reference; import javax.annotation.Nullable; /** - * [`routing::Score`] implementation that provides reasonable default behavior. + * [`Score`] implementation that provides reasonable default behavior. * * Used to apply a fixed penalty to each channel, thus avoiding long paths when shorter paths with * slightly higher fees are available. Will further penalize channels that fail to relay payments. * * See [module-level documentation] for usage. * - * [module-level documentation]: crate::routing::scorer + * [module-level documentation]: crate::routing::scoring */ @SuppressWarnings("unchecked") // We correctly assign various generic arrays public class Scorer extends CommonBase { @@ -29,8 +30,13 @@ public class Scorer extends CommonBase { /** * Creates a new scorer using the given scoring parameters. */ - public static Scorer of(long params_base_penalty_msat_arg, long params_failure_penalty_msat_arg, long params_failure_penalty_half_life_arg) { - long ret = bindings.Scorer_new(bindings.ScoringParameters_new(params_base_penalty_msat_arg, params_failure_penalty_msat_arg, params_failure_penalty_half_life_arg)); + public static Scorer of(long params_base_penalty_msat_arg, long params_failure_penalty_msat_arg, short params_overuse_penalty_start_1024th_arg, long params_overuse_penalty_msat_per_1024th_arg, long params_failure_penalty_half_life_arg) { + long ret = bindings.Scorer_new(bindings.ScoringParameters_new(params_base_penalty_msat_arg, params_failure_penalty_msat_arg, params_overuse_penalty_start_1024th_arg, params_overuse_penalty_msat_per_1024th_arg, params_failure_penalty_half_life_arg)); + Reference.reachabilityFence(params_base_penalty_msat_arg); + Reference.reachabilityFence(params_failure_penalty_msat_arg); + Reference.reachabilityFence(params_overuse_penalty_start_1024th_arg); + Reference.reachabilityFence(params_overuse_penalty_msat_per_1024th_arg); + Reference.reachabilityFence(params_failure_penalty_half_life_arg); if (ret >= 0 && ret <= 4096) { return null; } Scorer ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new Scorer(null, ret); } ret_hu_conv.ptrs_to.add(ret_hu_conv); @@ -54,6 +60,7 @@ public class Scorer extends CommonBase { */ public Score as_Score() { long ret = bindings.Scorer_as_Score(this.ptr); + Reference.reachabilityFence(this); if (ret >= 0 && ret <= 4096) { return null; } Score ret_hu_conv = new Score(null, ret); ret_hu_conv.ptrs_to.add(this); @@ -65,6 +72,7 @@ public class Scorer extends CommonBase { */ public byte[] write() { byte[] ret = bindings.Scorer_write(this.ptr); + Reference.reachabilityFence(this); return ret; } @@ -73,6 +81,7 @@ public class Scorer extends CommonBase { */ public static Result_ScorerDecodeErrorZ read(byte[] ser) { long ret = bindings.Scorer_read(ser); + Reference.reachabilityFence(ser); if (ret >= 0 && ret <= 4096) { return null; } Result_ScorerDecodeErrorZ ret_hu_conv = Result_ScorerDecodeErrorZ.constr_from_ptr(ret); return ret_hu_conv;