weak_cache

Creator: coderz1093

Last updated:

0 purchases

TODO
Add to Cart

Description:

weak cache

Weak Cache #


Weak cache is a Map implementation that uses WeakReferences for holding
values and Finalizer to manage it's storage.
You can use this to cache data for a small amount of time until next garbage
collection cycle.

Note: Values cannot be numbers, strings, booleans, records, null,
dart:ffi pointers, dart:ffi structs, or dart:ffi unions.

Features #

Uses WeakReference for storing values.
Uses Finalizer to remove objects from internal storage upon their deletion.
Allows you iterate over keys/values.

While iterating, all stored values are temporarily made into strong
references, to prevent concurrent edit of storage, while iterating over it.


Optimized containsValue via internal managed Expando.
Implements full Map<K, V> interface.
WeakCache itself can be safely garbage collected and doesn't hold unto any
stored data.

Usage #
Create cache, add values, and they'll be removed once there no more strong
references to them.
// ID - Object cache
final cache = WeakCache<int, Object>();

Object? obj = Object();
cache[0] = obj;
// ...
obj = null;
// ...
// After garbage collection cache[0] will be removed.
cache[0] == null;
copied to clipboard
See example for detailed test case.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.