Class CompositeSubscription
Composite subscription that can hold a dynamic number of inner subscriptions.
Inheritance
Implements
Namespace: Reaqtive
Assembly: Reaqtive.Core.dll
Syntax
public sealed class CompositeSubscription : Object, ICompositeSubscription, IEnumerable<ISubscription>, IEnumerable, ISubscription, IDisposable
Constructors
CompositeSubscription(ISubscription[])
Creates a new composite subscription with the specified inner subscriptions.
Declaration
public CompositeSubscription(params ISubscription[] subscriptions)
Parameters
| Type | Name | Description |
|---|---|---|
| ISubscription[] | subscriptions | Inner subscriptions. |
CompositeSubscription(IEnumerable<ISubscription>)
Creates a new composite subscription with the specified inner subscriptions.
Declaration
public CompositeSubscription(IEnumerable<ISubscription> subscriptions)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Collections.Generic.IEnumerable<ISubscription> | subscriptions | Inner subscriptions. |
CompositeSubscription(Int32)
Creates a new composite subscription with the specified initial capacity.
Declaration
public CompositeSubscription(int capacity)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | capacity | Initial capacity of the number of inner subscriptions the composite subscription can hold. |
Properties
Count
Gets the number of inner subscriptions.
Declaration
public int Count { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Remarks
This number can change immediate after being read in the presence of multi-threaded usage.
Methods
Accept(ISubscriptionVisitor)
Accepts a visitor that will be dispatched through the subscription, causing all inner subscriptions to be visited.
Declaration
public void Accept(ISubscriptionVisitor visitor)
Parameters
| Type | Name | Description |
|---|---|---|
| ISubscriptionVisitor | visitor | Visitor to accept. |
Add(ISubscription)
Adds the specified subscription to the list of subscriptions that this instance manages. If the CompositeSubscription is already disposed, then the passed in subscription also gets disposed
Declaration
public void Add(ISubscription subscription)
Parameters
| Type | Name | Description |
|---|---|---|
| ISubscription | subscription | Subscription to add. |
Dispose()
Disposes the composite subscription, causing all inner subscriptions to be disposed.
Declaration
public void Dispose()
GetEnumerator()
Gets an enumerator to iterate over the inner subscriptions.
Declaration
public IEnumerator<ISubscription> GetEnumerator()
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.IEnumerator<ISubscription> | Enumerator to iterate over a snapshot of the inner subscriptions. |
Remarks
This method causes a snapshot of inner subscriptions to be created. While iteration is in progress, subscriptions may be added or removed due to multi-threaded accesses.
Remove(ISubscription)
Removes the specified subscription from the list of subscriptions that this instance manages and disposes the removed subscription, if found.
Declaration
public void Remove(ISubscription subscription)
Parameters
| Type | Name | Description |
|---|---|---|
| ISubscription | subscription | Subscription to remove. |