Пример #1
0
        /// <summary>
        /// This method processes each line.
        /// </summary>
        /// <param name="line">The data line.</param>
        /// <param name="report">The load report.</param>
        /// <returns>Returns true if the line was processes successfully.</returns>
        protected virtual void DataProcessLine(string line, NICLoadReport report)
        {
            try
            {
                string[] item = line.Split(new char[] { '|' }, StringSplitOptions.None);

                if (item[1] == "*")
                {
                    report.ParseSummary(line);
                    return;
                }

                if (item.Length < 4)// || item[6]=="ieft")
                    return;

                bool success = false;

                switch (item[2])
                {
                    case "ipv4":
                        //case "ipv6":
                        success = DataProcessRecord(item[3], item[1], item[4]);
                        break;
                }

                if (success)
                    report.AddRecord(item[2]);

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #2
0
        /// <summary>
        /// This method reads through each line in the stream and processes it.
        /// </summary>
        /// <param name="id">The NIC id.</param>
        public virtual NICLoadReport Load(string id, Stream strmData)
        {
            DisposeCheck();

            NICLoadReport report = new NICLoadReport();

            if (strmData == null)
                throw new ArgumentNullException("strmData is null");

            if (strmData.CanRead)
            {
                using (StreamReader sr = new StreamReader(strmData))
                {
                    bool firstLineProcessed = false;

                    while (strmData.CanRead && !sr.EndOfStream)
                    {
                        try
                        {
                            string line = sr.ReadLine();

                            if (line == null)
                                break;

                            //Skip commented lines
                            if (line.StartsWith("#"))
                                continue;

                            //Skip empty lines
                            if (line.Trim() == "")
                                continue;

                            //Process the first line.
                            if (!firstLineProcessed)
                            {
                                firstLineProcessed = true;
                                report.ParseHeader(line);
                                continue;
                            }

                            DataProcessLine(line, report);
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }
            }

            return report;
        }