RdPerContextMap

class RdPerContextMap<K : Any, V : RdBindableBase> : RdReactiveBase, IPerContextMap<K, V> , IViewableMap<K, V>

Constructors

Link copied to clipboard
constructor(context: RdContext<K>, valueFactory: (Boolean) -> V)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
open override 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.

Link copied to clipboard
Link copied to clipboard
open override val change: ISource<IViewableMap.Event<K, V>>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val context: RdContext<K>

The context that is used by this map. Must be heavy.

Link copied to clipboard
open override val entries: Set<Map.Entry<K, V>>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val keys: Set<K>
Link copied to clipboard
override var location: RName
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val protocol: IProtocol?
Link copied to clipboard
Link copied to clipboard
open override var rdid: RdId
Link copied to clipboard
Link copied to clipboard
open override val size: Int
Link copied to clipboard
Link copied to clipboard
open override val values: Collection<V>

Functions

Link copied to clipboard
open override fun advise(lifetime: Lifetime, handler: (IViewableMap.Event<K, V>) -> Unit)
Link copied to clipboard
open override fun adviseAddRemove(lifetime: Lifetime, handler: (AddRemove, K, V) -> Unit)
Link copied to clipboard
fun <T> ISource<T>.adviseSuspend(lifetime: Lifetime, scheduler: IScheduler, handler: suspend (T) -> Unit)
fun <T> ISource<T>.adviseSuspend(lifetime: Lifetime, context: CoroutineContext, handler: suspend (T) -> Unit)
Link copied to clipboard
open override fun bind()

Sends child objects to the wire. This method is called after the parent sends this instance to the wire.

Link copied to clipboard
open override fun containsKey(key: K): Boolean
Link copied to clipboard
open override fun containsValue(value: V): Boolean
Link copied to clipboard
open override fun deepClone(): IRdBindable

Creates a clone of this IRdBindable not bound to any protocol

Link copied to clipboard
open fun findByRName(rName: RName): RdBindableBase?
Link copied to clipboard
open operator override fun get(key: K): V?

Gets the value associated with specified context value, or null if none is associated When this map is not bound, this will automatically create a new mapping instead of returning null

Link copied to clipboard
open override fun getForCurrentContext(): V

Gets the value associated with current context value, equivalent to get(context.value) If the context doesn't have a value set, or contexts's protocol value set does not contain the current context value, this will throw an exception

Link copied to clipboard
inline fun <T : Any> getOrCreateExtension(name: String, noinline create: () -> T): T
fun <T : Any> getOrCreateExtension(name: String, clazz: KClass<T>, create: () -> T): T
Link copied to clipboard
operator fun <T : IRdBindable?> T.getValue(thisRef: Any?, property: KProperty<*>): T
operator fun <T : List<IRdBindable?>> T.getValue(thisRef: Any?, property: KProperty<*>): T
Link copied to clipboard
open override fun identify(identities: IIdentities, id: RdId)

Assigns IDs to this node and its child nodes in the graph.

Link copied to clipboard
open override fun isEmpty(): Boolean
Link copied to clipboard
suspend fun ISource<Boolean>.nextFalseValue(lifetime: Lifetime = Lifetime.Eternal): Boolean
Link copied to clipboard
fun ISource<Boolean>.nextFalseValueAsync(lifetime: Lifetime): Deferred<Boolean>
Link copied to clipboard
suspend fun <T : Any> ISource<T?>.nextNotNullValue(lifetime: Lifetime = Lifetime.Eternal): T
Link copied to clipboard
fun <T : Any> ISource<T?>.nextNotNullValueAsync(lifetime: Lifetime): Deferred<T>
Link copied to clipboard
suspend fun ISource<Boolean>.nextTrueValue(lifetime: Lifetime = Lifetime.Eternal): Boolean
Link copied to clipboard
fun ISource<Boolean>.nextTrueValueAsync(lifetime: Lifetime): Deferred<Boolean>
Link copied to clipboard
suspend fun <T> ISource<T>.nextValue(lifetime: Lifetime = Lifetime.Eternal, condition: (T) -> Boolean = { true }): T
Link copied to clipboard
fun <T> ISource<T>.nextValueAsync(lifetime: Lifetime, condition: (T) -> Boolean = { true }): Deferred<T>
Link copied to clipboard
override fun onWireReceived(buffer: AbstractBuffer, dispatchHelper: IRdWireableDispatchHelper)

Callback that wire triggers when it receives messaged

open override fun onWireReceived(proto: IProtocol, buffer: AbstractBuffer, ctx: SerializationCtx, dispatchHelper: IRdWireableDispatchHelper)
Link copied to clipboard
override fun preBind(lf: Lifetime, parent: IRdDynamic, name: String)

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.

Link copied to clipboard
open override fun print(printer: PrettyPrinter)
Link copied to clipboard
fun synchronizeWith(lifetime: Lifetime, otherBindable: RdBindableBase, accepts: (Any?) -> Boolean = { true })
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun view(lifetime: Lifetime, handler: (Lifetime, Map.Entry<K, V>) -> Unit)
open override fun view(lifetime: Lifetime, handler: (Lifetime, K, V) -> Unit)