CachedContextProvider mixin

A caching mixin that ensures:

  • Throttled collection (via cacheDuration)
  • In‑flight deduplication (concurrent callers share one collection Future)
  • Resilience (errors return {} and do not break the pipeline)

The internal state is stored inside final wrapper cells to comply with @immutable (fields themselves are final; only the inner values change).

Superclass constraints
Mixin applications

Properties

cacheDuration Duration
Cache TTL for this provider. Keep short for dynamic data, longer for static.
no setter
hashCode int
The hash code for this object.
no setterinherited
manualReportOnly bool
If true, this context is collected only for manual user‑initiated reports (e.g., when the user taps "Send diagnostics"), and not for automatic background reporting.
no setterinherited
name String
The key under which this provider's map is attached to the report context.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

clearCache() → void
Clears the cached value, forcing the next call to hit collect.
collect() FutureOr<Map<String, dynamic>>
Override this instead of getData to implement the actual data collection.
getData() Future<Map<String, dynamic>>
Collects context data. Implementations must never throw; if an internal error occurs, return an empty map instead.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited
validateData(Map<String, dynamic> data) bool
Optional validation; return true to keep the data in the report. The default keeps any non‑empty map.
inherited

Operators

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