import org.ldk.impl.bindings;
import org.ldk.enums.*;
+import org.ldk.util.*;
+import java.util.Arrays;
-public class LockedNetworkGraph extends CommonBase {
+
+/**
+ * A simple newtype for RwLockReadGuard<'a, NetworkGraph>.
+ * This exists only to make accessing a RwLock<NetworkGraph> possible from
+ * the C bindings, as it can be done directly in Rust code.
+ */
+@SuppressWarnings("unchecked") // We correctly assign various generic arrays
+public class LockedNetworkGraph extends CommonBase implements AutoCloseable {
LockedNetworkGraph(Object _dummy, long ptr) { super(ptr); }
- @Override @SuppressWarnings("deprecation")
- protected void finalize() throws Throwable {
- bindings.LockedNetworkGraph_free(ptr); super.finalize();
+ @Override public void close() {
+ if (ptr != 0) { bindings.LockedNetworkGraph_free(ptr); }
}
+ /**
+ * Get a reference to the NetworkGraph which this read-lock contains.
+ */
public NetworkGraph graph() {
- NetworkGraph ret = new NetworkGraph(null, bindings.LockedNetworkGraph_graph(this.ptr));
- return ret;
+ long ret = bindings.LockedNetworkGraph_graph(this.ptr);
+ NetworkGraph ret_hu_conv = new NetworkGraph(null, ret);
+ ret_hu_conv.ptrs_to.add(this);
+ return ret_hu_conv;
}
}