public static RangeMeta operator -(RangeMeta lhs, RangeMeta rhs) { RangeMeta res = new RangeMeta(); res.TotalLen = lhs.TotalLen - rhs.TotalLen; res.Cinfo = lhs.Cinfo - rhs.Cinfo; return(res); }
public static RangeMeta operator +(RangeMeta lhs, MetaPacket rhs) { RangeMeta res = new RangeMeta(); res.TotalLen = lhs.TotalLen + rhs.Length; res.Cinfo = lhs.Cinfo + rhs.Cinfo; return(res); }
public RangeStatisticsInfo Query(DateTime start, DateTime end) { if (!fileLoaded) { throw new InvalidOperationException("No file has been loaded"); } // Check range if (start < Earliest || start > Latest || end < Earliest || end > Latest) { throw new ArgumentOutOfRangeException(); } int b = plist.BinarySearch(new MetaPacket { Timestamp = start }); if (b < 0) { b = ~b - 1; // assert: b >= 0 } int e = plist.BinarySearch(new MetaPacket { Timestamp = end }); if (e < 0) { e = (~e) - 1; // assert: e >= 0 } RangeMeta rm = presum[e] - presum[b]; double seconds = (plist[e].Timestamp - plist[b].Timestamp).TotalSeconds; RangeStatisticsInfo info = new RangeStatisticsInfo { Duration = plist[e].Timestamp - plist[b].Timestamp, TotalLen = rm.TotalLen, TotalCnt = e - b + 1, CInfo = rm.Cinfo }; return(info); }
public RangeMeta(RangeMeta other) { TotalLen = other.TotalLen; Cinfo = other.Cinfo; }