Show / Hide Table of Contents

Class SubscriptionsExtensions

Extension methods for ISubscriptions<TSubscriptionsList>.

Inheritance
System.Object
SubscriptionsExtensions
Namespace: Eco.Shared.View
Assembly: Eco.Shared.dll
Syntax
public static class SubscriptionsExtensions : Object

Fields

CreatePropertySubscription

Function which creates IPropertySubscription, for server it will create ImmutablePropertySubscription instead of PropertySubscription, because it is thread-safe

Declaration
public static Func<IObservable, string, Action, IPropertySubscription> CreatePropertySubscription
Field Value
Type Description
System.Func<IObservable, System.String, System.Action, IPropertySubscription>

Methods

AddSubscription<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, ISubscription)

Declaration
public static void AddSubscription<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, ISubscription subscription)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
ISubscription subscription
Type Parameters
Name Description
TSubscriptionsList

DestroyNestedSubscriptions<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, TSubscriptionsList)

Destroys nested subscriptions previously created with MakeNestedSubscriptions<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>). It will unsubscribe all subscriptions in nested and remove from subs. Destroyed nested subscriptions can't be used, because they will be recycled and continue using it will lead to unpredictable behavior.

Declaration
public static void DestroyNestedSubscriptions<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> subs, TSubscriptionsList nested)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> subs
TSubscriptionsList nested
Type Parameters
Name Description
TSubscriptionsList

MakeNestedSubscriptions<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>)

Makes nested subscriptions collection working as subset of ss. It will be unsubscribed when UnsubscribeAll<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, Func<ISubscription, Boolean>) called on ss, but may when UnsubscribeAll<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, Func<ISubscription, Boolean>) called on this it will only clear nested subscriptions.

Declaration
public static TSubscriptionsList MakeNestedSubscriptions<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss)
    where TSubscriptionsList : ISubscriptionsList, ISupportNestedSubscriptions<TSubscriptionsList>
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
Returns
Type Description
TSubscriptionsList
Type Parameters
Name Description
TSubscriptionsList

RemoveSubscription<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, ISubscription)

Unsubscribes specific subscription.

Declaration
public static bool RemoveSubscription<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, ISubscription subscription)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
ISubscription subscription
Returns
Type Description
System.Boolean
Type Parameters
Name Description
TSubscriptionsList

Subscribe<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IObservable, String, Action)

Declaration
public static ISubscription Subscribe<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IObservable s, string propertyName, Action changedCallback)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
IObservable s
System.String propertyName
System.Action changedCallback
Returns
Type Description
ISubscription
Type Parameters
Name Description
TSubscriptionsList

Subscribe<TSubscriptionsList, T>(ISubscriptions<TSubscriptionsList>, SubscribableEvent<T>, T)

Declaration
public static void Subscribe<TSubscriptionsList, T>(this ISubscriptions<TSubscriptionsList> ss, SubscribableEvent<T> eventAction, T callback)
    where TSubscriptionsList : ISubscriptionsList where T : Delegate
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
SubscribableEvent<T> eventAction
T callback
Type Parameters
Name Description
TSubscriptionsList
T

SubscribeAndCall<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IObservable, String, Action)

Declaration
public static void SubscribeAndCall<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IObservable s, string propname, Action changedCallback)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
IObservable s
System.String propname
System.Action changedCallback
Type Parameters
Name Description
TSubscriptionsList

SubscribeAndCall<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, SubscribableEvent<Action>, Action)

Declaration
public static void SubscribeAndCall<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, SubscribableEvent<Action> eventAction, Action callback)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
SubscribableEvent<System.Action> eventAction
System.Action callback
Type Parameters
Name Description
TSubscriptionsList

SubscribeUnique<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IObservable, String, Action)

Declaration
public static bool SubscribeUnique<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IObservable s, string propname, Action changedCallback)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
IObservable s
System.String propname
System.Action changedCallback
Returns
Type Description
System.Boolean
Type Parameters
Name Description
TSubscriptionsList

SubscribeUniqueAndCall<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IObservable, String, Action)

Declaration
public static bool SubscribeUniqueAndCall<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IObservable s, string propname, Action changedCallback)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
IObservable s
System.String propname
System.Action changedCallback
Returns
Type Description
System.Boolean
Type Parameters
Name Description
TSubscriptionsList

SubscribeWithoutTracking(IObservable, String, Action)

Creates a subscription but doesnt track it within a Subscriptions object. Should only be used when something is subscribing to its own properties, meaning both 'watched' and 'watcher' are a single object and die at the same time.

Declaration
public static ISubscription SubscribeWithoutTracking(IObservable observable, string propname, Action callback)
Parameters
Type Name Description
IObservable observable
System.String propname
System.Action callback
Returns
Type Description
ISubscription

TrySubscribe<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IPropertySubscription)

Tries to add subscription to ss. Internally it subscribes on Subject. If subscription already was added to same property with same callback then it will return false and won't add subscription.

Declaration
public static bool TrySubscribe<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IPropertySubscription subscription)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
IPropertySubscription subscription
Returns
Type Description
System.Boolean
Type Parameters
Name Description
TSubscriptionsList

Unsubscribe<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IObservable, String, Action)

Declaration
public static void Unsubscribe<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IObservable subject, string propertyName, Action changedCallback)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
IObservable subject
System.String propertyName
System.Action changedCallback
Type Parameters
Name Description
TSubscriptionsList

UnsubscribeAll<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, Boolean)

Unsubscribes all previously added subscriptions and cleans subscription collection.

Declaration
public static void UnsubscribeAll<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, bool release = false)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
System.Boolean release

by default Subscriptions list will be just cleared and then may be reused without recreation of list, but if Subscriptions won't be used anymore they may be released and returned to pool.

Type Parameters
Name Description
TSubscriptionsList

UnsubscribeAll<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, Func<ISubscription, Boolean>)

Unsubscribe all subscriptions matching predicate.

Declaration
public static void UnsubscribeAll<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, Func<ISubscription, bool> predicate)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
System.Func<ISubscription, System.Boolean> predicate
Type Parameters
Name Description
TSubscriptionsList

UnsubscribeAll<TSubscriptionsList, TPredicate>(ISubscriptions<TSubscriptionsList>, TPredicate)

Unsubscribe all subscriptions matching predicate.

Declaration
public static void UnsubscribeAll<TSubscriptionsList, TPredicate>(this ISubscriptions<TSubscriptionsList> ss, TPredicate predicate)
    where TSubscriptionsList : ISubscriptionsList where TPredicate : IPredicate<ISubscription>
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
TPredicate predicate
Type Parameters
Name Description
TSubscriptionsList
TPredicate

UnsubscribeAllForSubject<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, IObservable)

Unsubscribe all subscriptions for given subject.

Declaration
public static void UnsubscribeAllForSubject<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, IObservable subject)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss

this ref.

IObservable subject

subject to unsubscribe.

Type Parameters
Name Description
TSubscriptionsList

UnsubscribeFirst<TSubscriptionsList>(ISubscriptions<TSubscriptionsList>, Func<ISubscription, Boolean>)

Unsubscribes fist subscription matching predicate.

Declaration
public static bool UnsubscribeFirst<TSubscriptionsList>(this ISubscriptions<TSubscriptionsList> ss, Func<ISubscription, bool> predicate)
    where TSubscriptionsList : ISubscriptionsList
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
System.Func<ISubscription, System.Boolean> predicate
Returns
Type Description
System.Boolean

true if a match was found and unsubscribed.

Type Parameters
Name Description
TSubscriptionsList

UnsubscribeFirst<TSubscriptionsList, TPredicate>(ISubscriptions<TSubscriptionsList>, TPredicate)

Unsubscribes fist subscription matching predicate.

Declaration
public static bool UnsubscribeFirst<TSubscriptionsList, TPredicate>(this ISubscriptions<TSubscriptionsList> ss, TPredicate predicate)
    where TSubscriptionsList : ISubscriptionsList where TPredicate : IPredicate<ISubscription>
Parameters
Type Name Description
ISubscriptions<TSubscriptionsList> ss
TPredicate predicate
Returns
Type Description
System.Boolean

true if a match was found and unsubscribed.

Type Parameters
Name Description
TSubscriptionsList
TPredicate
☀
☾
In This Article
Back to top
Copyright (c) Strange Loop Games 2021
☀
☾