add max cache size to StreamHub (initial) #1289
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add functionality to specify a maximum size for the in-memory storage of the internal Cache list and prune the earliest items when the max size is met.
Interface Changes:
MaxCacheSize
property toIStreamHub
interface insrc/_common/Observables/IStreamHub.cs
.PruneCache
method toIStreamHub
interface.StreamHub Class Changes:
MaxCacheSize
property inStreamHub
class insrc/_common/Observables/StreamHub.cs
.PruneCache
method inStreamHub
class to remove earliest items from Cache list.Add
andAppendCache
methods inStreamHub
class to check Cache size and prune items if max size is exceeded.Observable Changes:
NotifyObserversOnPrune
method insrc/_common/Observables/StreamHub.Observable.cs
to notify observers when items are pruned from the Cache list.Observer Changes:
OnPrune
method toIStreamObserver
interface insrc/_common/Observables/IStreamObserver.cs
.OnPrune
method inStreamHub
class insrc/_common/Observables/StreamHub.Observer.cs
to handle prune notifications.Tests:
tests/indicators/_common/Observables/StreamHub.CacheMgmt.Tests.cs
to verify the functionality of theMaxCacheSize
property and the pruning of the Cache list.