LruPlugin class

LRU Plugin - Least Recently Used cache management.

Bundles LRU conditions and hooks for easy installation.

Features

  • Touch hook: Updates last_accessed on reads
  • Init hook: Sets initial LRU metadata on writes
  • Recently accessed condition: Checks if entry was accessed within threshold
  • Frequently accessed condition: Checks if access count meets minimum

Example

final engine = HiEngine();
LruPlugin().install(engine);

// With access count tracking
LruPlugin(
  trackAccessCount: true,
  readEvents: ['read', 'get'],
).install(engine);

Constructors

LruPlugin({String metaKey = 'meta', String lastAccessedKey = 'last_accessed', String accessCountKey = 'access_count', List<String> readEvents = const ['read', 'get'], List<String> writeEvents = const ['write', 'put', 'writeMeta'], bool trackAccessCount = false, bool enableTouch = true, bool enableInit = true, int nowProvider()?})
Creates an LRU plugin with configurable options. writeEvents includes 'writeMeta' so init runs when the host emits writeMeta and persists via outDataTracked.

Properties

accessCountKey → String
Key in meta for access count.
final
enableInit → bool
Whether to register init hook.
final
enableTouch → bool
Whether to register touch hook.
final
hashCode → int
The hash code for this object.
no setterinherited
lastAccessedKey → String
Key in meta for last access timestamp.
final
metaKey → String
Metadata key in ctx.data for entry metadata.
final
nowProvider → int Function()?
Custom time provider for testing.
final
readEvents → List<String>
Events that trigger touch (update last_accessed).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
trackAccessCount → bool
Whether to track access count.
final
writeEvents → List<String>
Events that trigger init (set initial LRU metadata).
final

Methods

build() → HiPlugin
Builds the HiPlugin for installation.
frequentlyAccessedCondition({required int minAccessCount}) → HiCond
Creates a condition for "frequently accessed" with minimum count.
install(HiEngine engine) → void
Convenience method to build and install in one step.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
recentlyAccessedCondition({required int thresholdMs}) → HiCond
Creates a condition for "recently accessed" within threshold.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited