Raxol.Terminal.Cache.UnifiedCache (Raxol v0.5.0)
View SourceUnified caching system for the Raxol terminal emulator. This module provides a centralized caching mechanism for all terminal operations, including buffer operations, animations, scroll operations, and edge computing.
Summary
Functions
Returns a specification to start this module under a supervisor.
Clears the cache.
Gets a value from the cache.
Invalidates a cache entry.
Puts a value in the cache.
Starts the unified cache manager.
Gets cache statistics.
Types
@type cache_entry() :: %{ value: cache_value(), size: non_neg_integer(), created_at: integer(), last_access: integer(), access_count: non_neg_integer(), ttl: integer() | nil, metadata: map() }
@type cache_key() :: term()
@type cache_stats() :: %{ size: non_neg_integer(), max_size: non_neg_integer(), hit_count: non_neg_integer(), miss_count: non_neg_integer(), hit_ratio: float(), eviction_count: non_neg_integer() }
@type cache_value() :: term()
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
Clears the cache.
Parameters
opts
- Clear options:namespace
- Cache namespace (default: :default)
Gets a value from the cache.
Parameters
key
- The cache keyopts
- Get options:namespace
- Cache namespace (default: :default)
Invalidates a cache entry.
Parameters
key
- The cache keyopts
- Invalidate options:namespace
- Cache namespace (default: :default)
Puts a value in the cache.
Parameters
key
- The cache keyvalue
- The value to cacheopts
- Put options:namespace
- Cache namespace (default: :default):ttl
- Time-to-live in seconds:metadata
- Additional metadata
Starts the unified cache manager.
Options
:max_size
- Maximum cache size in bytes (default: 100MB):default_ttl
- Default time-to-live in seconds (default: 3600):eviction_policy
- Cache eviction policy (:lru, :lfu, :fifo) (default: :lru):compression_enabled
- Whether to enable compression (default: true)
Gets cache statistics.
Parameters
opts
- Stats options:namespace
- Cache namespace (default: :default)