//// 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;
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
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 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);
        }
Exemplo n.º 4
0
        //// 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)
        {
        }
Exemplo n.º 5
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;
        }