rd-framework / com.jetbrains.rd.framework / IInternRoot

IInternRoot

interface IInternRoot<TBase : Any> : IRdReactive

Interns values sent over protocol

Inherited Properties

async

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.

Functions

intern

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

remove

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.

tryGetInterned

abstract fun tryGetInterned(value: TBase): InternId

Returns an ID for a value. Returns invalid ID if the value was not interned

tryUnIntern

abstract fun <T : TBase> tryUnIntern(id: InternId): T?

Gets a valie from interned ID, returns null if no value matches the given ID

unIntern

abstract fun <T : TBase> unIntern(id: InternId): T

Gets a value from interned ID. Throws an exception if no value matches the given ID

Extension Functions

bind

fun <T : IRdBindable?> T.bind(lf: <ERROR CLASS>, parent: IRdDynamic, name: String): Unit?

deepClonePolymorphic

fun <T> T.deepClonePolymorphic(): T

identify

fun <T : IRdBindable?> T.identify(identities: IIdentities, ids: RdId): Unit?

Inheritors

InternRoot

class InternRoot<TBase : Any> : IInternRoot<TBase>