//// Concrete methods - cannot be overridden by a derived class /// <summary> /// Initializes a new instance of the CommonProcessing class /// </summary> /// <param name="theProgressWindowForm">The instance of the progress window form to use for reporting progress of the processing</param> /// <param name="theDebugInformation">The object that provides for the logging of debug information</param> /// <param name="performLatencyAnalysisProcessing">Boolean flag that indicates whether to perform latency analysis processing for data read from the packet capture</param> /// <param name="theLatencyAnalysisProcessing">The object that provides the latency analysis processing for data read from the packet capture</param> /// <param name="performBurstAnalysisProcessing">Boolean flag that indicates whether to perform burst analysis processing for data read from the packet capture</param> /// <param name="theBurstAnalysisProcessing">The object that provides the burst analysis processing for data read from the packet capture</param> /// <param name="performTimeAnalysisProcessing">Boolean flag that indicates whether to perform time analysis processing for data read from the packet capture</param> /// <param name="theTimeAnalysisProcessing">The object that provides the time analysis processing for data read from the packet capture</param> /// <param name="theSelectedPacketCapturePath">The path of the selected packet capture</param> /// <param name="useAlternativeSequenceNumber">Boolean flag that indicates whether to use the alternative sequence number in the data read from the packet capture, required for legacy recordings</param> /// <param name="minimizeMemoryUsage">Boolean flag that indicates whether to perform reading from the packet capture using a method that will minimize memory usage, possibly at the expense of increased processing time</param> protected CommonProcessing(ProgressWindowForm theProgressWindowForm, Analysis.DebugInformation theDebugInformation, bool performLatencyAnalysisProcessing, Analysis.LatencyAnalysis.Processing theLatencyAnalysisProcessing, bool performBurstAnalysisProcessing, Analysis.BurstAnalysis.Processing theBurstAnalysisProcessing, bool performTimeAnalysisProcessing, Analysis.TimeAnalysis.Processing theTimeAnalysisProcessing, string theSelectedPacketCapturePath, bool useAlternativeSequenceNumber, bool minimizeMemoryUsage) { this.theProgressWindowForm = theProgressWindowForm; this.theDebugInformation = theDebugInformation; this.performLatencyAnalysisProcessing = performLatencyAnalysisProcessing; this.theLatencyAnalysisProcessing = theLatencyAnalysisProcessing; this.performBurstAnalysisProcessing = performBurstAnalysisProcessing; this.theBurstAnalysisProcessing = theBurstAnalysisProcessing; this.performTimeAnalysisProcessing = performTimeAnalysisProcessing; this.theTimeAnalysisProcessing = theTimeAnalysisProcessing; this.theSelectedPacketCapturePath = theSelectedPacketCapturePath; this.useAlternativeSequenceNumber = useAlternativeSequenceNumber; this.minimizeMemoryUsage = minimizeMemoryUsage; // Provide a default value for the network datalink type this.thePacketCaptureNetworkDataLinkType = (uint)PacketCapture.CommonConstants.NetworkDataLinkType.Invalid; // Provide a default value for the timestamp accuracy - not used for PCAP Next Generation and PCAP packet captures so default to zero this.thePacketCaptureTimestampAccuracy = 0.0; }
/// <summary> /// Initializes a new instance of the Processing class /// </summary> /// <param name="theDebugInformation">The object that provides for the logging of debug information</param> /// <param name="theBinaryReader">The object that provides for binary reading from the packet capture</param> /// <param name="performLatencyAnalysisProcessing">Boolean flag that indicates whether to perform latency analysis processing for data read from the packet capture</param> /// <param name="theLatencyAnalysisProcessing">The object that provides the latency analysis processing for data read from the packet capture</param> /// <param name="performBurstAnalysisProcessing">Boolean flag that indicates whether to perform burst analysis processing for data read from the packet capture</param> /// <param name="theBurstAnalysisProcessing">The object that provides the burst analysis processing for data read from the packet capture</param> /// <param name="performTimeAnalysisProcessing">Boolean flag that indicates whether to perform time analysis processing for data read from the packet capture</param> /// <param name="theTimeAnalysisProcessing">The object that provides the time analysis processing for data read from the packet capture</param> /// <param name="useAlternativeSequenceNumber">Boolean flag that indicates whether to use the alternative sequence number in the data read from the packet capture, required for legacy recordings</param> public Processing(Analysis.DebugInformation theDebugInformation, System.IO.BinaryReader theBinaryReader, bool performLatencyAnalysisProcessing, Analysis.LatencyAnalysis.Processing theLatencyAnalysisProcessing, bool performBurstAnalysisProcessing, Analysis.BurstAnalysis.Processing theBurstAnalysisProcessing, bool performTimeAnalysisProcessing, Analysis.TimeAnalysis.Processing theTimeAnalysisProcessing, bool useAlternativeSequenceNumber) { this.theDebugInformation = theDebugInformation; this.theBinaryReader = theBinaryReader; //// Create instances of the processing classes for each protocol this.theICMPv6PacketProcessing = new ICMPv6Packet.Processing(theBinaryReader); this.theTCPPacketProcessing = new TCPPacket.Processing( theDebugInformation, theBinaryReader, performLatencyAnalysisProcessing, theLatencyAnalysisProcessing, performBurstAnalysisProcessing, theBurstAnalysisProcessing, performTimeAnalysisProcessing, theTimeAnalysisProcessing, useAlternativeSequenceNumber); this.theUDPDatagramProcessing = new UDPDatagram.Processing( theDebugInformation, theBinaryReader, performLatencyAnalysisProcessing, theLatencyAnalysisProcessing, performBurstAnalysisProcessing, theBurstAnalysisProcessing, performTimeAnalysisProcessing, theTimeAnalysisProcessing, useAlternativeSequenceNumber); this.theEIGRPPacketProcessing = new EIGRPPacket.Processing(theBinaryReader); }
/// <summary> /// Initializes a new instance of the Processing class /// </summary> /// <param name="theDebugInformation">The object that provides for the logging of debug information</param> /// <param name="theBinaryReader">The object that provides for binary reading from the packet capture</param> /// <param name="performLatencyAnalysisProcessing">Boolean flag that indicates whether to perform latency analysis processing for data read from the packet capture</param> /// <param name="theLatencyAnalysisProcessing">The object that provides the latency analysis processing for data read from the packet capture</param> /// <param name="performBurstAnalysisProcessing">Boolean flag that indicates whether to perform burst analysis processing for data read from the packet capture</param> /// <param name="theBurstAnalysisProcessing">The object that provides the burst analysis processing for data read from the packet capture</param> /// <param name="performTimeAnalysisProcessing">Boolean flag that indicates whether to perform time analysis processing for data read from the packet capture</param> /// <param name="theTimeAnalysisProcessing">The object that provides the time analysis processing for data read from the packet capture</param> /// <param name="useAlternativeSequenceNumber">Boolean flag that indicates whether to use the alternative sequence number in the data read from the packet capture, required for legacy recordings</param> public Processing(Analysis.DebugInformation theDebugInformation, System.IO.BinaryReader theBinaryReader, bool performLatencyAnalysisProcessing, Analysis.LatencyAnalysis.Processing theLatencyAnalysisProcessing, bool performBurstAnalysisProcessing, Analysis.BurstAnalysis.Processing theBurstAnalysisProcessing, bool performTimeAnalysisProcessing, Analysis.TimeAnalysis.Processing theTimeAnalysisProcessing, bool useAlternativeSequenceNumber) { this.theDebugInformation = theDebugInformation; this.theBinaryReader = theBinaryReader; //// Create instances of the processing classes for each supported type for an Ethernet frame this.theARPPacketProcessing = new ARPPacket.Processing( theDebugInformation, theBinaryReader); this.theDECDNARemoteConsolePacketProcessing = new DECDNARemoteConsolePacket.Processing( theBinaryReader); this.theIPv4PacketProcessing = new IPPacket.IPv4Packet.Processing( theDebugInformation, theBinaryReader, performLatencyAnalysisProcessing, theLatencyAnalysisProcessing, performBurstAnalysisProcessing, theBurstAnalysisProcessing, performTimeAnalysisProcessing, theTimeAnalysisProcessing, useAlternativeSequenceNumber); this.theIPv6PacketProcessing = new IPPacket.IPv6Packet.Processing( theDebugInformation, theBinaryReader, performLatencyAnalysisProcessing, theLatencyAnalysisProcessing, performBurstAnalysisProcessing, theBurstAnalysisProcessing, performTimeAnalysisProcessing, theTimeAnalysisProcessing, useAlternativeSequenceNumber); this.theLLDPPacketProcessing = new LLDPPacket.Processing( theDebugInformation, theBinaryReader); this.theLoopbackPacketProcessing = new LoopbackPacket.Processing( theDebugInformation, theBinaryReader); this.theRARPPacketProcessing = new RARPPacket.Processing( theDebugInformation, theBinaryReader); }
//// Concrete methods - override abstract methods on the base class /// <summary> /// Initializes a new instance of the Processing class /// </summary> /// <param name="theProgressWindowForm">The instance of the progress window form to use for reporting progress of the processing</param> /// <param name="theDebugInformation">The object that provides for the logging of debug information</param> /// <param name="performLatencyAnalysisProcessing">Boolean flag that indicates whether to perform latency analysis processing for data read from the packet capture</param> /// <param name="theLatencyAnalysisProcessing">The object that provides the latency analysis processing for data read from the packet capture</param> /// <param name="performBurstAnalysisProcessing">Boolean flag that indicates whether to perform burst analysis processing for data read from the packet capture</param> /// <param name="theBurstAnalysisProcessing">The object that provides the burst analysis processing for data read from the packet capture</param> /// <param name="performTimeAnalysisProcessing">Boolean flag that indicates whether to perform time analysis processing for data read from the packet capture</param> /// <param name="theTimeAnalysisProcessing">The object that provides the time analysis processing for data read from the packet capture</param> /// <param name="theSelectedPacketCapturePath">The path of the selected packet capture</param> /// <param name="useAlternativeSequenceNumber">Boolean flag that indicates whether to use the alternative sequence number in the data read from the packet capture, required for legacy recordings</param> /// <param name="minimizeMemoryUsage">Boolean flag that indicates whether to perform reading from the packet capture using a method that will minimize memory usage, possibly at the expense of increased processing time</param> public Processing(ProgressWindowForm theProgressWindowForm, Analysis.DebugInformation theDebugInformation, bool performLatencyAnalysisProcessing, Analysis.LatencyAnalysis.Processing theLatencyAnalysisProcessing, bool performBurstAnalysisProcessing, Analysis.BurstAnalysis.Processing theBurstAnalysisProcessing, bool performTimeAnalysisProcessing, Analysis.TimeAnalysis.Processing theTimeAnalysisProcessing, string theSelectedPacketCapturePath, bool useAlternativeSequenceNumber, bool minimizeMemoryUsage) : base( theProgressWindowForm, theDebugInformation, performLatencyAnalysisProcessing, theLatencyAnalysisProcessing, performBurstAnalysisProcessing, theBurstAnalysisProcessing, performTimeAnalysisProcessing, theTimeAnalysisProcessing, theSelectedPacketCapturePath, useAlternativeSequenceNumber, minimizeMemoryUsage) { }
/// <summary> /// Initializes a new instance of the Processing class /// </summary> /// <param name="theDebugInformation">The object that provides for the logging of debug information</param> /// <param name="theBinaryReader">The object that provides for binary reading from the packet capture</param> /// <param name="performLatencyAnalysisProcessing">Boolean flag that indicates whether to perform latency analysis processing for data read from the packet capture</param> /// <param name="theLatencyAnalysisProcessing">The object that provides the latency analysis processing for data read from the packet capture</param> /// <param name="performBurstAnalysisProcessing">Boolean flag that indicates whether to perform burst analysis processing for data read from the packet capture</param> /// <param name="theBurstAnalysisProcessing">The object that provides the burst analysis processing for data read from the packet capture</param> /// <param name="performTimeAnalysisProcessing">Boolean flag that indicates whether to perform time analysis processing for data read from the packet capture</param> /// <param name="theTimeAnalysisProcessing">The object that provides the time analysis processing for data read from the packet capture</param> /// <param name="useAlternativeSequenceNumber">Boolean flag that indicates whether to use the alternative sequence number in the data read from the packet capture, required for legacy recordings</param> public Processing(Analysis.DebugInformation theDebugInformation, System.IO.BinaryReader theBinaryReader, bool performLatencyAnalysisProcessing, Analysis.LatencyAnalysis.Processing theLatencyAnalysisProcessing, bool performBurstAnalysisProcessing, Analysis.BurstAnalysis.Processing theBurstAnalysisProcessing, bool performTimeAnalysisProcessing, Analysis.TimeAnalysis.Processing theTimeAnalysisProcessing, bool useAlternativeSequenceNumber) { this.theDebugInformation = theDebugInformation; this.theBinaryReader = theBinaryReader; }