コード例 #1
0
 public void InsertAllTable(PacketSimpInfo packetSimpInfo
                            , PacketCompInfo packetCompInfo
                            , PacketInfo packetInfo
                            , RealTimeInfo realTimeInfo)
 {
     using (db = dbFactory.Open())
     {
         db.Insert <PacketSimpInfo>(packetSimpInfo);
         db.Insert <PacketCompInfo>(packetCompInfo);
         db.Insert <PacketInfo>(packetInfo);
         db.Insert <RealTimeInfo>(realTimeInfo);
     }
 }
コード例 #2
0
 //插入
 public bool InsertSimpPcap(PacketSimpInfo packetSimpInfo)
 {
     using (db = dbFactory.Open())
     {
         try
         {
             var flag = db.Insert <PacketSimpInfo>(packetSimpInfo);
             if (flag >= 0)
             {
                 return(true);
             }
         }
         catch (Exception)
         {
         }
         return(false);
     }
 }
コード例 #3
0
        private void refreshData(int capnum, int fraLen, DateTime dateTime, double seconds, string timeVal, string epochTime
                                 , string linkType, string sMac, string dMac, int linkHeadLen, string ethType, string sIp, string dIp, int TTL, int IpTotalLen
                                 , int ipHeadLen, int ipChecksum, int version, string ipType, int sPort, int dPort, long seqNum, long ackNum
                                 , int tranTotalLen, int tranHeadLen, int windowSize, int tranChecksum, int dataLen, string info, string flag, bool compMAC, bool compIP)
        {
            //1插入简单
            PacketSimpInfo packetSimpInfo = new PacketSimpInfo(capnum, timeVal, sIp, dIp, ipType, fraLen, info);

            ThreadPool.QueueUserWorkItem(delegate
            {
                this.Dispatcher.Invoke(new Action(() =>
                {
                    packetSimpInfos.Add(packetSimpInfo);
                }), null);
            });


            //2.插入复杂
            PacketCompInfo packetCompInfo = new PacketCompInfo(capnum, capnum, fraLen, fraLen, epochTime, sMac, dMac, ethType, sIp, dIp, sPort, dPort, timeVal, ipHeadLen, TTL, ipType, flag);

            packetCompInfos.Add(packetCompInfo);

            //3。插入完整
            PacketInfo packetInfo = new PacketInfo(capnum, fraLen, dateTime, seconds, timeVal, epochTime, linkType, sMac, dMac, ethType
                                                   , sIp, dIp, TTL, IpTotalLen, ipHeadLen, ipChecksum, version, ipType, sPort, dPort, seqNum
                                                   , ackNum, tranHeadLen, windowSize, tranChecksum, dataLen, info, flag);

            packetInfos.Add(packetInfo);
            //4.插入实时 (更改datetime)
            RealTimeInfo realTimeInfo = new RealTimeInfo(capnum, new DateTime(dateTime.Year, dateTime.Month, dateTime.Day, dateTime.Hour, dateTime.Minute, dateTime.Second), seconds, ethType, fraLen, ipType);

            //5.插入实时本地
            //System.Object lockthis = (System.Object)seconds;
            //lock (lockthis)
            //{
            if (!IOChartStatisticsWindow.RealTimeInfos.ContainsKey((int)seconds))
            {
                RealChartItem realChartItem = new RealChartItem((int)seconds, dateTime, 1, fraLen);
                IOChartStatisticsWindow.RealTimeInfos.Add((int)seconds, realChartItem);
            }
            else
            {
                IOChartStatisticsWindow.RealTimeInfos[(int)seconds].Count++;
                IOChartStatisticsWindow.RealTimeInfos[(int)seconds].SumLen += fraLen;
            }
            //}

            //统计1插入
            StatisticsInfo statisticsInfo = null;

            if (compIP == true)
            {//换
                if (compMAC == true)
                {
                    statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, dMac, sMac, linkHeadLen, ethType, dIp, sIp, IpTotalLen, ipHeadLen, ipType, dPort, sPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP);
                }
                else
                {
                    statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, sMac, dMac, linkHeadLen, ethType, dIp, sIp, IpTotalLen, ipHeadLen, ipType, dPort, sPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP);
                }
            }
            else
            {
                if (compMAC == true)
                {
                    statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, dMac, sMac, linkHeadLen, ethType, sIp, dIp, IpTotalLen, ipHeadLen, ipType, sPort, dPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP);
                }
                else
                {
                    statisticsInfo = new StatisticsInfo(fraLen, seconds, linkType, sMac, dMac, linkHeadLen, ethType, sIp, dIp, IpTotalLen, ipHeadLen, ipType, sPort, dPort, tranTotalLen, tranHeadLen, dataLen, compMAC, compIP);
                }
            }

            //5 更新数据库
            //serviceStackDBHelper.InsertAllTable(packetSimpInfo, packetCompInfo, packetInfo, realTimeInfo);
            new Thread(() =>
            {
                serviceStackDBHelper.InsertSimpPcap(packetSimpInfo);
                serviceStackDBHelper.InsertCompPcap(packetCompInfo);
                serviceStackDBHelper.InsertPcap(packetInfo);
                serviceStackDBHelper.InsertRT(realTimeInfo);
                serviceStackDBHelper.InsertStatistics(statisticsInfo);
            }).Start();
        }