abstract class CValuesRef<T : CPointed>
Represents a reference to (possibly empty) sequence of C values. It can be either a stable pointer CPointer or a sequence of immutable values CValues.
CValuesRef is designed to be used as Kotlin representation of pointer-typed parameters of C functions. When passing CPointer as CValuesRef to the Kotlin binding method, the C function receives exactly this pointer. Passing CValues has nearly the same semantics as passing by value: the C function receives the pointer to the temporary copy of these values, and the caller can't observe the modifications to this copy. The copy is valid until the C function returns. There are also other implementations of CValuesRef that provide temporary pointer, e.g. Kotlin Native specific refTo functions to pass primitive arrays directly to native.
If this reference is CPointer, returns this pointer, otherwise allocate storage value in the scope and return it.
abstract fun getPointer(scope: AutofreeScope): CPointer<T>
C pointer.
class CPointer<T : CPointed> : CValuesRef<T>
The (possibly empty) sequence of immutable C values. It is self-contained and doesn't depend on native memory.
abstract class CValues<T : CVariable> : CValuesRef<T>
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlinx.cinterop/-c-values-ref/index.html