public override int GetHashCode() { int hash = 1; if (CanWatch != false) { hash ^= CanWatch.GetHashCode(); } if (MaxAudiences != 0) { hash ^= MaxAudiences.GetHashCode(); } if (DelayMS != 0) { hash ^= DelayMS.GetHashCode(); } if (CacheMS != 0) { hash ^= CacheMS.GetHashCode(); } if (BufferBytes != 0) { hash ^= BufferBytes.GetHashCode(); } if (LastSize != 0) { hash ^= LastSize.GetHashCode(); } if (NeedReplay != false) { hash ^= NeedReplay.GetHashCode(); } return(hash); }
/// <summary> /// Gets next packet data. /// </summary> private async Task <byte[]> NextBuffer(uint length = 512) { var buffer = await socket.InputStream.ReadAsync(new Windows.Storage.Streams.Buffer(length), length, InputStreamOptions.None); var resultArray = BufferBytes.Get(buffer); return(resultArray); }
public void ClearMatchUnits() { MatchUnits.Clear(); BufferBytes.Clear(); MaxDataLengthBytes = 0; MinDataLengthBytes = 0; ScanResult = new ScanResult(); BufferAsString = string.Empty; ContainsTextSearchUnit = false; MatchUnitIsAddeded = false; }
/// <summary> /// Initializes a new instance of the <see cref="ExFatBootSector"/> class. /// </summary> internal ExFatBootSector(byte[] bytes) { _bytes = bytes; var buffer = new Buffer(_bytes); JmpBoot = new BufferBytes(buffer, 0, 3); OemName = new BufferByteString(buffer, 3, 8); VolumeLengthSectors = new BufferUInt64(buffer, 72); FatOffsetSector = new BufferUInt32(buffer, 80); FatLengthSectors = new BufferUInt32(buffer, 84); ClusterOffsetSector = new BufferUInt32(buffer, 88); ClusterCount = new BufferUInt32(buffer, 92); RootDirectoryCluster = new BufferUInt32(buffer, 96); VolumeSerialNumber = new BufferUInt32(buffer, 100); FileSystemRevision = new BufferUInt16(buffer, 104); VolumeFlags = new BufferUInt16(buffer, 106); BytesPerSector = new CacheValueProvider <uint>(new ShiftValueProvider(new BufferUInt8(buffer, 108))); SectorsPerCluster = new ShiftValueProvider(new BufferUInt8(buffer, 109)); NumberOfFats = new BufferUInt8(buffer, 110); DriveSelect = new BufferUInt8(buffer, 111); PercentInUse = new BufferUInt8(buffer, 112); }
public virtual void CheckData() { ScanResult = new ScanResult(); if (MinDataLengthBytes > BufferBytes.Count) { return; } foreach (AbstractMatchUnitCore match_unit in MatchUnits) { if (match_unit is MatchUnitText) { ((MatchUnitText)match_unit).Checking(BufferAsString); } else if (match_unit is MatchUnitRegexp) { ((MatchUnitRegexp)match_unit).Checking(BufferAsString); } else if (match_unit is MatchUnitBytes) { ((MatchUnitBytes)match_unit).Checking(BufferBytes.ToArray()); } else { throw new Exception("Тип поискового юнита не определён"); } if (match_unit.SuccessMatch) { ScanResult.MatchUnit = match_unit; break; } } }
public void AddToBuffer(int NewByte) { if (NewByte < 0) { return; } if (!MatchUnitIsAddeded) { throw new Exception("Список поисковых юнитов не может быть пустым"); } BufferBytes.Add((byte)NewByte); BufferAsString = ContainsTextSearchUnit ? AdapterFileReader.EncodingMode.GetString(BufferBytes.ToArray()) : string.Empty; CheckData(); if (ScanResult.SuccessMatch) { if (ScanResult.MatchUnit.ReplacementData != null) { List <byte> clear_data_list_bytes = new List <byte>(); if (ScanResult.MatchUnit.GetType().IsSubclassOf(typeof(AbstractMatchUnitText))) { clear_data_list_bytes.AddRange(AdapterFileReader.EncodingMode.GetBytes(BufferAsString.Substring(0, ScanResult.MatchUnit.IndexOf))); if (ScanResult.MatchUnit.ReplacementData.Count > 0) { clear_data_list_bytes.AddRange(ScanResult.MatchUnit.ReplacementData); } if (ScanResult.MatchUnit is MatchUnitRegexp) { clear_data_list_bytes.AddRange(AdapterFileReader.EncodingMode.GetBytes(BufferAsString.Substring(ScanResult.MatchUnit.IndexOf + ((MatchUnitRegexp)ScanResult.MatchUnit).DetectedMatch.Length))); } else { clear_data_list_bytes.AddRange(AdapterFileReader.EncodingMode.GetBytes(BufferAsString.Substring(ScanResult.MatchUnit.IndexOf + ((MatchUnitText)ScanResult.MatchUnit).SearchExpression.Length))); } } else { if (ScanResult.MatchUnit.IndexOf > 0) { clear_data_list_bytes.AddRange(BufferBytes.Take(ScanResult.MatchUnit.IndexOf)); } if (ScanResult.MatchUnit.ReplacementData.Count > 0) { clear_data_list_bytes.AddRange(ScanResult.MatchUnit.ReplacementData); } if (ScanResult.MatchUnit.IndexOf + ScanResult.MatchUnit.GetDetectedSearchData().Length < BufferBytes.Count) { clear_data_list_bytes.AddRange(BufferBytes.Skip(ScanResult.MatchUnit.IndexOf + ScanResult.MatchUnit.ReplacementData.Count)); } } int filteredDataCount = BufferBytes.Count - clear_data_list_bytes.Count; FilteredDataCounter += filteredDataCount; BufferBytes.Clear(); BufferBytes.AddRange(clear_data_list_bytes); BufferAsString = ContainsTextSearchUnit ? AdapterFileReader.EncodingMode.GetString(BufferBytes.ToArray()) : string.Empty; } } }