ViewModelProperty

abstract class ViewModelProperty<T>(unsafeCppPointer: Long, fileLock: ReentrantLock) : NativeObject

A property of type T of a ViewModelInstance. Use value to mutate the property. use valueFlow to subscribe to changes on the value.

Parameters

unsafeCppPointer

Pointer to the C++ counterpart.

fileLock

Lock shared by the File and native graph this property mutates. Subclasses use it to synchronize native access and to migrate dependent wrappers in updateFileLock. Writes should be limited to updateFileLock implementations.

Inheritors

Constructors

Link copied to clipboard
constructor(unsafeCppPointer: Long, fileLock: ReentrantLock)

Properties

Link copied to clipboard

Getter/Setter for the underlying C++ pointer value.

Link copied to clipboard
Link copied to clipboard

Whether this objects underlying pointer is still valid.

Link copied to clipboard

The name of the property.

Link copied to clipboard
open val refCount: Int
Link copied to clipboard
override var refs: AtomicInteger
Link copied to clipboard
var value: T

The current value of the property, whether set by this property or by a data binding update.

Link copied to clipboard
val valueFlow: StateFlow<T>

A flow of the property's value. Use for observing changes.

Functions

Link copied to clipboard
open override fun acquire(): Int

Increments the references for this counter. Cannot be used for initialization - use refs.incrementAndGet instead.

Link copied to clipboard
open fun cppDelete(pointer: Long)
Link copied to clipboard
@VisibleForTesting(otherwise = 2)
external fun cppHasChanged(cppPointer: Long): Boolean
Link copied to clipboard
external fun cppName(cppPointer: Long): String
Link copied to clipboard
open override fun release(): Int

Release this property while holding the current file lock.