Namespace Eco.Shared.View
Classes
ApplyOnViewAttribute
Tag interfaces with this to make them add themselves when autogenning views. Useful for interfaces that are shared among server/client in shared code.
EventSubscription
Subscription for ISubscribableEvent.
NoOpPropertySubscription
No operation Eco.Shared.View.PropertySubscription. Will do nothing on callback. May be used as replacement for removed subscription during subscription list processing. I.e. we have list [sub1, sub2] and sub2 removed in sub1 callback. If we just remove it then list iteration will fail with System.IndexOutOfRangeException when accessing index 1 of removed sub2. To avoid this we can just replace removed subscription with NoOpPropertySubscription until list processing finish and then remove all no-op subscriptions from the list.
ObservableExtensions
Extension methods for System.IObservable`1.
PropertySubscriptionBase
Base class for all property subscriptions.
SubscribableEvent<T>
Typed ISubscribableEvent. Not thread-safe. Simple wrapper around T
delegate. Can be used with EventSubscription.
SubscribableEventExtensions
"Syntax sugar" for SubscribableEvent<T>.
Subscriptions
Simple subscriptions collection which may be used for holding subset of subscriptions for class. It also may be used as ISubscription to keep sub-collection of subscriptions and unsubscribed together with main collection.
SubscriptionsExtensions
Extension methods for ISubscriptions<TSubscriptionsList>.
SyncFlags
View
View.ViewData
ViewClassFlags
ViewClassInfo
Represents the 'type' data about a server type, something which is also represented as a view. The server builds these viewclassinfos and sends them to the client, which can then use them for many purposes. Any information about a type can be transmitted from server to client on this class.
ViewController
ViewController.ToBsonDelegate
ViewManager
Manages Views on client. Read more details about View System in ViewSystem.md.
ViewMapper
ViewMemberFlags
ViewMemberInfo
Contains data about an individual member (property or method) that is accessible on the server from the client. Its analgous to a MemberInfo reflection class, it communicates to the client the type data on properties of a ViewClassInfo.
ViewRPC
ViewRPC.RPCFlags
ViewSelectorFlags
WeakPropertySubscription
// Weak reference wrapper class for delegate storage without user defined removal.
Interfaces
IObservable
Interface for objects which may be subscribed (observed) for property changes.
IPropertySubscription
Interface for property change subscriptions. Holds information about observable subject, invocation target and method. May be invoked to notify subscription.
ISubscribableEvent
Interface for subscribable events (i.e. SubscribableEvent<T>). Declared as interface so all classes may work with common interface no matter which type of wrapped event.
ISubscription
Interface for all subscription classes. May be either Subscriptions for subscriptions group or IPropertySubscription.
ISubscriptions
Untyped version of ISubscriptions<TSubscriptionsList> with UnsubscribeAll() and ReleaseSubscriptionsList() methods which may be useful for destroy/dispose methods which unaware of subscriptions list type.
ISubscriptions<TSubscriptionsList>
This is a replacement for IAnonymousSubscriber. This simplifies Subscription management, because you can use it with extension methods for easy subscription management.
ISubscriptionsList
Base interface for subscriptions lists (may be thread-safe or thread-unsafe list implementation). It also may support pooling.
ISupportNestedSubscriptions<TNestedSubscriptionsList>
Interface which may be implemented for nested subscriptions support.
IThreadUnsafeSubscriptions
Thread-unsafe implementation of ISubscriptions<TSubscriptionsList>. Suitable for client code where all subscriptions happens in main-thread.