DetachedObjectGraph

class DetachedObjectGraph<T>

Detached object graph encapsulates transferrable detached subgraph which cannot be accessed externally, until it is attached with the attach extension function.

Constructors

DetachedObjectGraph
Link copied to clipboard
fun <T> DetachedObjectGraph(mode: TransferMode = TransferMode.SAFE, producer: () -> T)

Creates stable pointer to object, ensuring associated object subgraph is disjoint in specified mode (TransferMode.SAFE by default). Raw value returned by asCPointer could be stored to a C variable or passed to another Kotlin machine.

DetachedObjectGraph
Link copied to clipboard
fun DetachedObjectGraph(pointer: COpaquePointer?)

Restores detached object graph from the value stored earlier in a C raw pointer.

Functions

asCPointer
Link copied to clipboard
fun asCPointer(): COpaquePointer?

Returns raw C pointer value, usable for interoperability with C scenarious.

Extensions

attach
Link copied to clipboard
inline fun <T> DetachedObjectGraph<T>.attach(): T

Attaches previously detached object subgraph created by DetachedObjectGraph. Please note, that once object graph is attached, the DetachedObjectGraph.stable pointer does not make sense anymore, and shall be discarded, so attach of one DetachedObjectGraph object can only happen once.