-
- All Implemented Interfaces:
-
java.io.Closeable,java.lang.AutoCloseable,live.ditto.internal.ffi.DittoHandle
public final class DittoHandleWrapper implements Closeable, DittoHandle
Container for the rust handle to the main Ditto instance that lives behind the FFI layer.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classDittoHandleWrapper.Companion
-
Constructor Summary
Constructors Constructor Description DittoHandleWrapper(SWIGTYPE_p_CDitto rustDittoHandle)
-
Method Summary
Modifier and Type Method Description Unitclose()Invokes ditto_free if we have a non-null handle. <R extends Any> Rwith(Function1<SWIGTYPE_p_CDitto, R> ffiUsage)Yields a scope wherein the so obtained "raw" handle is protected from being deällocated right under our feet, even with multiple threads. -
-
Constructor Detail
-
DittoHandleWrapper
DittoHandleWrapper(SWIGTYPE_p_CDitto rustDittoHandle)
-
-
Method Detail
-
with
<R extends Any> R with(Function1<SWIGTYPE_p_CDitto, R> ffiUsage)
Yields a scope wherein the so obtained "raw" handle is protected from being deällocated right under our feet, even with multiple threads.
Note: doing
.with { it }achieves the same as the old.handlegetter (modulo a very short-livedsynchronized(this)critical section) and thus defeats the point of the API: do not let these "raw" FFI resources escape the scope!
-
-
-
-