Class LastSeenCacheTracker<TKey, TValue>
- Namespace
- FishMMO.Auth.Core.Collections
- Assembly
- FishMMO-ServerAuth.dll
Queue/index tracker for key-value caches whose entries expire by last-seen timestamp. Optimized for high-frequency touch and bounded head-first TTL sweeps.
public sealed class LastSeenCacheTracker<TKey, TValue>
Type Parameters
TKeyCache key type.
TValueCache value type.
- Inheritance
-
LastSeenCacheTracker<TKey, TValue>
- Inherited Members
Constructors
LastSeenCacheTracker(IEqualityComparer<TKey>?)
Initializes a new tracker with an optional key comparer.
public LastSeenCacheTracker(IEqualityComparer<TKey>? comparer = null)
Parameters
comparerIEqualityComparer<TKey>
Methods
Clear()
Clears all cached entries.
public void Clear()
Remove(TKey)
Removes a cached key if present.
public void Remove(TKey key)
Parameters
keyTKeyThe cache key to remove.
SweepExpired(DateTime, TimeSpan, int, int)
Sweeps entries whose last-seen exceeds the provided TTL.
public int SweepExpired(DateTime nowUtc, TimeSpan ttl, int maxScan, int maxRemove)
Parameters
nowUtcDateTimeCurrent UTC time.
ttlTimeSpanMaximum age before an entry is swept.
maxScanintMaximum number of entries to inspect per sweep.
maxRemoveintMaximum number of entries to remove per sweep.
Returns
- int
Number of entries removed.
TryGetAndTouch(TKey, DateTime, out TValue)
Tries to get a cached value and refreshes its last-seen timestamp.
public bool TryGetAndTouch(TKey key, DateTime nowUtc, out TValue value)
Parameters
keyTKeyThe cache key to look up.
nowUtcDateTimeCurrent UTC time; used to update the last-seen timestamp.
valueTValueThe cached value if found; otherwise,
default.
Returns
- bool
trueif the key was found; otherwise,false.
Upsert(TKey, TValue, DateTime)
Inserts or updates a cached value and sets its last-seen timestamp.
public void Upsert(TKey key, TValue value, DateTime nowUtc)
Parameters
keyTKeyThe cache key.
valueTValueThe value to store.
nowUtcDateTimeCurrent UTC time used as the last-seen timestamp.