ISubscriptionOnlineManagerState
State storage for SubscriptionOnlineManager.
Methods
public void AddAlias(long id, ISubscriptionOnlineInfo info)
iSubscriptionOnlineManagerState.AddAlias(id, info)
Alias a transaction onto a subscription, for replies that name an order rather than the subscription reporting it.
public void AddSkipSubscription(long id)
iSubscriptionOnlineManagerState.AddSkipSubscription(id)
Add skip subscription.
public ISubscriptionOnlineInfo AddSubscriber(ValueTuple<DataType, SecurityId> key, long subscriberId, ISubscriptionMessage request, Func<ISubscriptionMessage> createSubscription, bool isOpener)
result = iSubscriptionOnlineManagerState.AddSubscriber(key, subscriberId, request, createSubscription, isOpener)
Record that a subscriber holds the shared subscription of a data type and security, opening it when it is the first to ask.
- key
- Data type and security the subscription carries.
- subscriberId
- Transaction the subscriber asked under.
- request
- What this subscriber asked for.
- createSubscription
- Builds the subscription to send upstream, for a new one.
- isOpener
- when this subscriber opened it and the request has to go upstream.
Returns: The subscription, or when this subscriber already holds one.
public void AddUnsubscribeRequest(long id)
iSubscriptionOnlineManagerState.AddUnsubscribeRequest(id)
Add unsubscribe request.
public void Clear()
iSubscriptionOnlineManagerState.Clear()
Clear all state, including the ids of subscriptions that ended with the connection.
public bool ContainsSkipSubscription(long id)
result = iSubscriptionOnlineManagerState.ContainsSkipSubscription(id)
Check if contains skip subscription.
public bool ContainsSubscriptionById(long id)
result = iSubscriptionOnlineManagerState.ContainsSubscriptionById(id)
Check whether a transaction names a subscriber or an alias.
public bool ContainsUnsubscribeRequest(long id)
result = iSubscriptionOnlineManagerState.ContainsUnsubscribeRequest(id)
Check if contains unsubscribe request.
public ISubscriptionOnlineInfo CreateLinkedSubscriptionInfo(ISubscriptionOnlineInfo main)
result = iSubscriptionOnlineManagerState.CreateLinkedSubscriptionInfo(main)
Create a linked view onto a subscription, for routing replies that name something else.
public void DiscardSubscription(ISubscriptionOnlineInfo info)
iSubscriptionOnlineManagerState.DiscardSubscription(info)
Give a subscription up entirely, subscribers and aliases with it.
public void EndWithConnection()
iSubscriptionOnlineManagerState.EndWithConnection()
Forget every subscription because the connection ended, remembering the ids that held them until the connection ends again, so that an unsubscribe already on its way can still be answered.
public void RemoveAlias(long id)
iSubscriptionOnlineManagerState.RemoveAlias(id)
Drop an alias.
public bool RemoveEndedWithConnection(long id)
result = iSubscriptionOnlineManagerState.RemoveEndedWithConnection(id)
Forget one id that held a subscription when the connection ended.
- id
- The id.
Returns: if the id held a subscription that ended with the connection.
public bool RemoveSkipSubscription(long id)
result = iSubscriptionOnlineManagerState.RemoveSkipSubscription(id)
Remove skip subscription.
public bool RemoveSubscriber(long subscriberId, ISubscriptionOnlineInfo info, bool wasLast)
result = iSubscriptionOnlineManagerState.RemoveSubscriber(subscriberId, info, wasLast)
Drop one subscriber.
- subscriberId
- Transaction the subscriber asked under.
- info
- What it was holding.
- wasLast
- when it was the last holder and the subscription has to be given up upstream.
Returns: when it held anything.
public void StopSubscription(ISubscriptionOnlineInfo info)
iSubscriptionOnlineManagerState.StopSubscription(info)
Stop a subscription being joined, while the subscribers it still has keep being answered.
public bool TryGetAndRemoveSubscriber(long id, ISubscriptionOnlineInfo info)
result = iSubscriptionOnlineManagerState.TryGetAndRemoveSubscriber(id, info)
Drop a subscriber and report what it was holding, for one whose subscription was refused.
public bool TryGetSubscriptionById(long id, ISubscriptionOnlineInfo info)
result = iSubscriptionOnlineManagerState.TryGetSubscriptionById(id, info)
Try get a subscription by a subscriber's transaction or by an alias.
public bool TryGetSubscriptionByKey(ValueTuple<DataType, SecurityId> key, ISubscriptionOnlineInfo info)
result = iSubscriptionOnlineManagerState.TryGetSubscriptionByKey(key, info)
Try get the shared subscription of a data type and security.