pako_tools/
analyzer.rs

1pub use pcap_parser::PcapBlockOwned;
2
3use crate::{context::*, error::Error, packet::Packet};
4
5/// Common trait for pcap/pcap-ng analyzers
6pub trait PcapAnalyzer {
7    /// Initialization function, called before reading pcap data (optional)
8    fn init(&mut self) -> Result<(), Error> {
9        Ok(())
10    }
11
12    /// Optional callback for every block of the pcap/pcapng file
13    fn handle_block(
14        &mut self,
15        _block: &PcapBlockOwned,
16        _block_ctx: &ParseBlockContext,
17    ) -> Result<(), Error> {
18        Ok(())
19    }
20
21    /// Callback function for every pcap Packet containing data
22    fn handle_packet(&mut self, packet: &Packet, ctx: &ParseContext) -> Result<(), Error>;
23
24    /// Teardown function, called after reading pcap data (optional)
25    fn teardown(&mut self) {}
26
27    fn before_refill(&mut self) {}
28}
29
30/// Common trait for pcap/pcap-ng analyzers (thread-safe version)
31pub trait SafePcapAnalyzer: PcapAnalyzer + Send + Sync {}