CacheManager class
Manages a two-tier (memory + disk) cache with per-entry TTL.
Usage:
final cache = CacheManager();
await cache.init();
await cache.set('key', {'data': 42}, CacheManager.packageMetadataTtl);
final result = await cache.get('key'); // {'data': 42}
Constructors
- CacheManager({String? cacheDir})
- Creates a new cache manager.
Properties
- cacheDir → String
-
The resolved cache directory path.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- memoryEntryCount → int
-
Number of entries currently in the memory tier (useful for diagnostics).
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
clear(
) → Future< void> - Remove all entries from both tiers.
-
get(
String key) → Future< Map< String, dynamic> ?> -
Retrieve a cached value by
key. -
init(
) → Future< void> - Ensure the disk cache directory exists.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
remove(
String key) → Future< void> -
Remove a specific
keyfrom both tiers. -
set(
String key, Map< String, dynamic> value, Duration ttl) → Future<void> -
Store a
valueunderkeywith a giventtl. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- changelogTtl → const Duration
- TTL for changelogs that may be updated with new releases.
- flutterDocsTtl → const Duration
- TTL for Flutter documentation pages.
- packageMetadataTtl → const Duration
- TTL for pub.flutter-io.cn package metadata (versions list, etc.).
- versionDetailsTtl → const Duration
- TTL for immutable version-specific data (a released version never changes).