pub trait ParseCache: Send + Sync {
// Required methods
fn get(&self, frame_number: u64) -> Option<Arc<CachedParse>>;
fn put(&self, frame_number: u64, parsed: Arc<CachedParse>);
fn reader_passed(&self, reader_id: usize, frame_number: u64);
fn register_reader(&self) -> usize;
fn unregister_reader(&self, reader_id: usize);
// Provided methods
fn get_or_insert_with(
&self,
frame_number: u64,
f: Box<dyn FnOnce() -> Arc<CachedParse> + '_>,
) -> (Arc<CachedParse>, bool) { ... }
fn stats(&self) -> Option<CacheStats> { ... }
fn reset_stats(&self) { ... }
}Expand description
Cache for parsed packet data.
Implementations must be thread-safe as multiple readers may access the cache concurrently.
Required Methods§
Sourcefn get(&self, frame_number: u64) -> Option<Arc<CachedParse>>
fn get(&self, frame_number: u64) -> Option<Arc<CachedParse>>
Get cached parse result for a frame, if available.
Sourcefn put(&self, frame_number: u64, parsed: Arc<CachedParse>)
fn put(&self, frame_number: u64, parsed: Arc<CachedParse>)
Store parse result for a frame.
Sourcefn reader_passed(&self, reader_id: usize, frame_number: u64)
fn reader_passed(&self, reader_id: usize, frame_number: u64)
Hint that a reader has finished with frames up to this number.
Used for eviction decisions. When all active readers have passed a frame, it can be safely evicted.
Sourcefn register_reader(&self) -> usize
fn register_reader(&self) -> usize
Register a new reader and get its ID.
Sourcefn unregister_reader(&self, reader_id: usize)
fn unregister_reader(&self, reader_id: usize)
Unregister a reader (e.g., when stream completes).
Provided Methods§
Sourcefn get_or_insert_with(
&self,
frame_number: u64,
f: Box<dyn FnOnce() -> Arc<CachedParse> + '_>,
) -> (Arc<CachedParse>, bool)
fn get_or_insert_with( &self, frame_number: u64, f: Box<dyn FnOnce() -> Arc<CachedParse> + '_>, ) -> (Arc<CachedParse>, bool)
Get cached result or compute and cache it. Returns (result, was_hit).
Sourcefn stats(&self) -> Option<CacheStats>
fn stats(&self) -> Option<CacheStats>
Get cache statistics (if available).
Sourcefn reset_stats(&self)
fn reset_stats(&self)
Reset statistics counters. Default implementation does nothing.