netkitty
Version:
Network tools kit
112 lines • 3.72 kB
TypeScript
import EventEmitter from 'events';
import { FileHandle } from 'node:fs/promises';
import { ReadStream, WriteStream } from 'node:fs';
import DuplexPair from 'duplexpair';
import { PcapParser } from './PcapParser';
import { IPcapPacketInfo } from './interfaces/IPcapPacketInfo';
export interface IPcapReaderOptions {
filename: string;
watch?: boolean;
chunkSize?: number;
onPacket?: (pcapPacketInfo: IPcapPacketInfo) => Promise<void> | void;
onStart?: () => Promise<void> | void;
onStop?: () => Promise<void> | void;
onDone?: () => Promise<void> | void;
onError?: (err: Error) => void;
}
export declare class PcapReader extends EventEmitter {
protected readonly filename: string;
protected readonly watch: boolean;
protected readonly chunkSize: number;
protected duplexPair: DuplexPair;
protected parser: PcapParser;
protected index: number;
protected offset: number;
protected readDone: boolean;
protected readBufferFileHandle: FileHandle | null;
protected onPacket?: (pcapPacketInfo: IPcapPacketInfo) => Promise<void> | void;
protected onStart?: () => Promise<void> | void;
protected onStop?: () => Promise<void> | void;
protected onDone?: () => Promise<void> | void;
protected onError?: (err: Error) => void;
protected paused: boolean;
protected get readStream(): ReadStream;
protected get writeStream(): WriteStream;
constructor(options: IPcapReaderOptions);
/**
* Pause read
* @protected
*/
protected pauseRead(): void;
/**
* Resume read
* @protected
*/
protected resumeRead(): void;
/**
* Initialize reader
* @protected
*/
protected initReader(): void;
/**
* Reset reader
* @protected
*/
protected reset(): Promise<void>;
/**
* Initialize read packet file handle
* @protected
*/
protected initReadPacketFileHandle(): Promise<FileHandle>;
/**
* Initialize read buffer file handle
* @protected
*/
protected initReadBufferFileHandle(): Promise<FileHandle>;
/**
* Read file buffer
* @protected
*/
protected readBuffer(): Promise<boolean>;
/**
* Read file continually
* @protected
*/
protected continualRead(): void;
/**
* Read the file straight
* @protected
*/
protected straightRead(): void;
/**
* Read packet data by record's offset and record's length
* @param offset
* @param length
*/
readPacket(offset: number, length: number): Promise<Buffer>;
/**
* Start reading pcap
*/
start(): Promise<void>;
/**
* Stop reading pcap
*/
stop(): Promise<void>;
/**
* Close pcap reader
*/
close(): Promise<void>;
on(eventName: 'packet', listener: (pcapPacketInfo: IPcapPacketInfo) => void): this;
on(eventName: 'done', listener: (...args: any[]) => void): this;
on(eventName: 'start', listener: (...args: any[]) => void): this;
on(eventName: 'stop', listener: (...args: any[]) => void): this;
on(eventName: 'close', listener: (...args: any[]) => void): this;
on(eventName: 'error', listener: (error: Error) => void): this;
once(eventName: 'packet', listener: (pcapPacketInfo: IPcapPacketInfo) => void): this;
once(eventName: 'done', listener: (...args: any[]) => void): this;
once(eventName: 'start', listener: (...args: any[]) => void): this;
once(eventName: 'stop', listener: (...args: any[]) => void): this;
once(eventName: 'close', listener: (...args: any[]) => void): this;
once(eventName: 'error', listener: (error: Error) => void): this;
}
//# sourceMappingURL=PcapReader.d.ts.map