ParseCache

Trait ParseCache 

Source
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§

Source

fn get(&self, frame_number: u64) -> Option<Arc<CachedParse>>

Get cached parse result for a frame, if available.

Source

fn put(&self, frame_number: u64, parsed: Arc<CachedParse>)

Store parse result for a frame.

Source

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.

Source

fn register_reader(&self) -> usize

Register a new reader and get its ID.

Source

fn unregister_reader(&self, reader_id: usize)

Unregister a reader (e.g., when stream completes).

Provided Methods§

Source

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).

Source

fn stats(&self) -> Option<CacheStats>

Get cache statistics (if available).

Source

fn reset_stats(&self)

Reset statistics counters. Default implementation does nothing.

Implementors§