class InternRoot<TBase : Any> : IInternRoot<TBase>
InternRoot(serializer: ISerializer<TBase> = Polymorphic()) |
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. |
|
val isBound: Boolean |
|
var location: <ERROR CLASS> |
|
var parent: IRdDynamic? |
|
val protocol: IProtocol |
|
var rdid: RdId |
|
val serializationContext: SerializationCtx |
|
val serializer: ISerializer<TBase> |
|
val wireScheduler: <ERROR CLASS>
Scheduler on which wire invokes callback onWireReceived. Default is the same as protocol's one. |
fun bind(lf: <ERROR CLASS>, parent: IRdDynamic, name: String): Unit
Inserts the node into the object graph under the given parent and assigns the specified name to it. The node will be removed from the graph when the specified lf lifetime is terminated. |
|
fun deepClone(): IRdBindable
Creates a clone of this IRdBindable not bound to any protocol |
|
fun identify(identities: IIdentities, id: RdId): Unit
Assigns IDs to this node and its child nodes in the graph. |
|
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 |
|
fun onWireReceived(buffer: AbstractBuffer): Unit
Callback that wire triggers when it receives messaged |
|
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. |
|
fun tryGetInterned(value: TBase): InternId
Returns an ID for a value. Returns invalid ID if the value was not interned |
|
fun <T : TBase> tryUnIntern(id: InternId): T?
Gets a valie from interned ID, returns null if no value matches the given ID |
|
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? |