package com.netifera.platform.net.sniffing;
import java.util.Collection;
import com.netifera.platform.net.packets.IPacketHeader;
import com.netifera.platform.net.packets.link.ARP;
import com.netifera.platform.net.packets.tcpip.IPv4;
import com.netifera.platform.net.packets.tcpip.IPv6;
import com.netifera.platform.net.pcap.ICaptureInterface;
import com.netifera.platform.net.sniffing.stream.IBlockSniffer;
import com.netifera.platform.net.sniffing.stream.IBlockSnifferHandle;
import com.netifera.platform.net.sniffing.stream.IStreamSniffer;
import com.netifera.platform.net.sniffing.stream.IStreamSnifferHandle;
public interface ISniffingEngineService {
Collection<ICaptureInterface> getInterfaces();
ISnifferHandle createRawHandle(ICaptureInterface iface,
IPacketFilter filter, IPacketSniffer<IPacketHeader> sniffer);
ISnifferHandle createArpHandle(ICaptureInterface iface,
IPacketFilter filter, IPacketSniffer<ARP> sniffer);
ISnifferHandle createIPv4Handle(ICaptureInterface iface,
IPacketFilter filter, IPacketSniffer<IPv4> sniffer);
ISnifferHandle createIPv6Handle(ICaptureInterface iface,
IPacketFilter filter, IPacketSniffer<IPv6> sniffer);
IStreamSnifferHandle createTcpStreamHandle(ICaptureInterface iface,
IPacketFilter filter, IStreamSniffer sniffer);
IBlockSnifferHandle createTcpBlockHandle(ICaptureInterface iface,
IPacketFilter filter, IBlockSniffer sniffer);
ICaptureFileInterface createCaptureFileInterface(String path);
int getSnaplen();
int getTimeout();
boolean getPromiscuous();
}