interface IInternRoot<TBase : Any> : IRdReactive
Interns values sent over protocol
abstract var async: Boolean
If set to true, local changes to this object can be performed on any thread. Otherwise, local changes can be performed only on the UI thread. |
abstract fun intern(value: TBase): InternId
Interns a value and returns an ID for it. May return invalid ID if the value can't be interned due to multithreaded conflicts |
|
abstract fun remove(value: TBase): Unit
Removes interned value. Any future attempts to un-intern IDs previously associated with this value will fail. Not thread-safe. It's up to user to ensure that the value being removed is not being used in messages written on background threads. |
|
abstract fun tryGetInterned(value: TBase): InternId
Returns an ID for a value. Returns invalid ID if the value was not interned |
|
abstract fun <T : TBase> tryUnIntern(id: InternId): T?
Gets a valie from interned ID, returns null if no value matches the given ID |
|
abstract fun <T : TBase> unIntern(id: InternId): T
Gets a value from interned ID. Throws an exception if no value matches the given ID |
fun <T : IRdBindable?> T.bind(lf: <ERROR CLASS>, parent: IRdDynamic, name: String): Unit? |
|
fun <T> T.deepClonePolymorphic(): T |
|
fun <T : IRdBindable?> T.identify(identities: IIdentities, ids: RdId): Unit? |
class InternRoot<TBase : Any> : IInternRoot<TBase> |