Interface IReadOnlyBindableVariable<T>
Bindable variable interface useful for removing write capability from external access, while preserving the ability to subscribe to changes.
Namespace: Unity.XR.CoreUtils.Bindings.Variables
Syntax
public interface IReadOnlyBindableVariable<T>
Type Parameters
Name | Description |
---|---|
T | The type of the variable value. |
Properties
BindingCount
Get number of subscribed binding callbacks. Note that if you manually call Unsubscribe(Action<T>) with the same callback several times this value may be inaccurate. For best results leverage the IEventBinding returned by the subscribe call and use that to unsubscribe as needed.
Declaration
int BindingCount { get; }
Property Value
Type | Description |
---|---|
Int32 |
Value
Get internal variable value.
Declaration
T Value { get; }
Property Value
Type | Description |
---|---|
T |
Methods
Subscribe(Action<T>)
Register callback to the event that is invoked when the value is updated.
Declaration
IEventBinding Subscribe(Action<T> callback)
Parameters
Type | Name | Description |
---|---|---|
Action<T> | callback | Callback to register. |
Returns
Type | Description |
---|---|
IEventBinding | IEventBinding which allows for safe and easy bind, unbind, and clear functions. |
SubscribeAndUpdate(Action<T>)
Triggers the callback inline, followed by the Subscribe(Action<T>) function.
Declaration
IEventBinding SubscribeAndUpdate(Action<T> callback)
Parameters
Type | Name | Description |
---|---|---|
Action<T> | callback | Callback to register. |
Returns
Type | Description |
---|---|
IEventBinding | IEventBinding which allows for safe and easy bind, unbind, and clear functions. |
Task(T, CancellationToken)
Wait until BindableVariable is set to awaitState
.
Declaration
Task<T> Task(T awaitState, CancellationToken token = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
T | awaitState | Variable state to wait for. |
CancellationToken | token | Token used to trigger a cancellation of the task. |
Returns
Type | Description |
---|---|
Task<T> | Task to schedule. |
Task(Func<T, Boolean>, CancellationToken)
Wait until predicate is met, or until token is called. A null predicate can be passed to have it await any change.
Declaration
Task<T> Task(Func<T, bool> awaitPredicate, CancellationToken token = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
Func<T, Boolean> | awaitPredicate | Callback to be executed on completion of task. |
CancellationToken | token | Token used to trigger a cancellation of the task. |
Returns
Type | Description |
---|---|
Task<T> | Task to schedule. |
Unsubscribe(Action<T>)
Manually unsubscribe callback from Value update event, but no protections from multiple unsubscribe calls. If unsubscribing multiple times, reference count may not be accurate.
Declaration
void Unsubscribe(Action<T> callback)
Parameters
Type | Name | Description |
---|---|---|
Action<T> | callback |
ValueEquals(T)
Evaluates equality with the internal value held by the bindable variable.
Declaration
bool ValueEquals(T other)
Parameters
Type | Name | Description |
---|---|---|
T | other | Other value to compare equality against. |
Returns
Type | Description |
---|---|
Boolean | True if both values are equal. |