internal BlobChunkVerificationResultInfo VerifyVersion(int expectedVersion) { var result = BlobChunkVerificationResultInfo.ValidResult; if (Version != expectedVersion) { result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.InvalidVersion, BlobChunkVerificationResultContext.Chunk, Version); } return(result); }
internal BlobChunkVerificationResultInfo VerifyVersionIsPositive() { var result = BlobChunkVerificationResultInfo.ValidResult; if (Version < 0) { result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.InvalidVersion, BlobChunkVerificationResultContext.Chunk, Version); } return(result); }
internal BlobChunkVerificationResultInfo VerifySignature(uint expectedSignature) { var result = BlobChunkVerificationResultInfo.ValidResult; if (Signature != expectedSignature) { result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.InvalidSignature, BlobChunkVerificationResultContext.Chunk, Signature); } return(result); }
/// <summary>Checks that there's enough chunk to store both this header and the <paramref name="expectedDataSize"/></summary> /// <param name="expectedDataSize">The minimum amount of bytes needed for the data (exlusive of header data)</param> /// <returns></returns> internal BlobChunkVerificationResultInfo VerifyDataSize(int expectedDataSize) { var result = BlobChunkVerificationResultInfo.ValidResult; if (Size < (expectedDataSize + kSizeOf)) { result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.InvalidSize, BlobChunkVerificationResultContext.Chunk, Size); } return(result); }
// Neither the header or footer even check touch the flags value internal BlobChunkVerificationResultInfo VerifyFlagsIsPostive() { var result = BlobChunkVerificationResultInfo.ValidResult; if ((int)Flags < 0) { result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.Invalid, BlobChunkVerificationResultContext.Chunk, (uint)Flags); } return(result); }
internal BlobChunkVerificationResultInfo VerifyAnyVersion(params int[] expectedVersions) { var result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.InvalidVersion, BlobChunkVerificationResultContext.Chunk, Version); foreach (var expected_version in expectedVersions) { if (Version != expected_version) { continue; } result = BlobChunkVerificationResultInfo.ValidResult; break; } return(result); }
BlobChunkVerificationResultInfo VerifyEndian(out bool requiresByteswap) { requiresByteswap = false; var result = BlobChunkVerificationResultInfo.ValidResult; if (EndianSignature != kEndianSignature) { requiresByteswap = Bitwise.ByteSwap.SwapInt16(EndianSignature) == kEndianSignature; if (!requiresByteswap) // the signature didn't match, even after byte swapping it { result = new BlobChunkVerificationResultInfo(BlobChunkVerificationResult.InvalidEndian, BlobChunkVerificationResultContext.Header, EndianSignature); } } return(result); }