ILookupTrackingManagerState
State storage for LookupTrackingMessageAdapter. Stores active lookup requests, queued lookups and timeout tracking.
Properties
PreviousTime : DateTime
Previous time for diff calculation.
Methods
AddLookup(long, ISubscriptionMessage, TimeSpan)
Add a tracked lookup with timeout.
- transactionId
- Transaction ID.
- subscription
- Subscription message (cloned).
- timeout
- Timeout duration.
Clear()
Clear all state.
IncreaseTimeOut(long[])
Increase timeout for subscriptions that received data.
- subscriptionIds
- Subscription IDs that received data.
ProcessTimeouts(TimeSpan, long[]) : IEnumerable<ValueTuple<ISubscriptionMessage, Message>>
Process time elapsed and return timed-out lookups. Removes timed-out entries from tracking.
- diff
- Time elapsed since last check.
- ignoreIds
- Subscription IDs to skip (they just received data).
Returns: Timed-out lookups.
TryDequeueFromAnyType(long) : Message
Try to dequeue from any type queue after removing the specified ID.
- removingId
- Transaction ID to remove.
Returns: Next queued message, or null.
TryDequeueNext(MessageTypes, long) : Message
Try to dequeue the next subscription of the given type after removing the specified ID.
- type
- Message type.
- removingId
- Transaction ID to remove from queue.
Returns: Next queued message, or null.
TryEnqueue(MessageTypes, long, ISubscriptionMessage) : bool
Try to enqueue a subscription into the per-type queue.
- type
- Message type.
- transactionId
- Transaction ID.
- message
- Subscription message (cloned).
Returns: True if the subscription was queued (not the first in queue), false if it should proceed immediately.
TryGetAndRemoveLookup(long, ISubscriptionMessage) : bool
Try get and remove a tracked lookup.
- transactionId
- Transaction ID.
- subscription
- Found subscription, or null.
Returns: True if found and removed.