当前位置: 首页>>代码示例>>C#>>正文


C# ByteArrayBuffer.Seek方法代码示例

本文整理汇总了C#中ByteArrayBuffer.Seek方法的典型用法代码示例。如果您正苦于以下问题:C# ByteArrayBuffer.Seek方法的具体用法?C# ByteArrayBuffer.Seek怎么用?C# ByteArrayBuffer.Seek使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ByteArrayBuffer的用法示例。


在下文中一共展示了ByteArrayBuffer.Seek方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Read

 protected override void Read(LocalObjectContainer file, ByteArrayBuffer reader)
 {
     NewTimerFileLock(file);
     OldEncryptionOff(file);
     CheckThreadFileLock(file, reader);
     reader.Seek(TransactionPointerOffset);
     file.SystemData().TransactionPointer1(reader.ReadInt());
     file.SystemData().TransactionPointer2(reader.ReadInt());
     reader.Seek(BlocksizeOffset);
     file.BlockSizeReadFromFile(reader.ReadInt());
     var systemData = file.SystemData();
     systemData.ClassCollectionID(reader.ReadInt());
     reader.ReadInt();
     // was freespace ID, can no longer be read
     _variablePart = CreateVariablePart(file);
     var variablePartId = reader.ReadInt();
     _variablePart.Read(variablePartId, 0);
 }
开发者ID:masroore,项目名称:db4o,代码行数:18,代码来源:FileHeader1.cs

示例2: DetectFileHeader

 private static FileHeader DetectFileHeader(LocalObjectContainer file, ByteArrayBuffer
     reader)
 {
     for (var i = 0; i < AvailableFileHeaders.Length; i++)
     {
         reader.Seek(0);
         var result = AvailableFileHeaders[i].NewOnSignatureMatch(file, reader);
         if (result != null)
         {
             return result;
         }
     }
     return null;
 }
开发者ID:masroore,项目名称:db4o,代码行数:14,代码来源:FileHeader.cs

示例3: Read

 protected override void Read(LocalObjectContainer container, ByteArrayBuffer reader
     )
 {
     NewTimerFileLock(container);
     OldEncryptionOff(container);
     CheckThreadFileLock(container, reader);
     reader.Seek(BlocksizeOffset);
     container.BlockSizeReadFromFile(reader.ReadInt());
     var systemData = container.SystemData();
     systemData.ClassCollectionID(reader.ReadInt());
     container.SystemData().IdSystemType(reader.ReadByte());
     _variablePart = CreateVariablePart(container);
     var variablePartAddress = reader.ReadInt();
     var variablePartLength = reader.ReadInt();
     _variablePart.Read(variablePartAddress, variablePartLength);
     _transactionPointerAddress = reader.ReadInt();
     if (_transactionPointerAddress != 0)
     {
         var buffer = new ByteArrayBuffer(TransactionPointerLength);
         buffer.Read(container, _transactionPointerAddress, 0);
         systemData.TransactionPointer1(buffer.ReadInt());
         systemData.TransactionPointer2(buffer.ReadInt());
     }
 }
开发者ID:masroore,项目名称:db4o,代码行数:24,代码来源:FileHeader2.cs

示例4: CheckThreadFileLock

 protected virtual void CheckThreadFileLock(LocalObjectContainer container, ByteArrayBuffer
     reader)
 {
     reader.Seek(AccessTimeOffset);
     var lastAccessTime = reader.ReadLong();
     if (LockedByOtherSession(container, lastAccessTime))
     {
         _timerFileLock.CheckIfOtherSessionAlive(container, 0, AccessTimeOffset, lastAccessTime
             );
     }
 }
开发者ID:masroore,项目名称:db4o,代码行数:11,代码来源:NewFileHeaderBase.cs

示例5: VersionsAreConsistentAndSeek

 private bool VersionsAreConsistentAndSeek(ByteArrayBuffer buffer)
 {
     var bytes = buffer._buffer;
     var length = OwnLength();
     var offsets = Offsets();
     var different = false;
     for (var i = 0; i < length; i++)
     {
         var b = bytes[offsets[0] + i];
         for (var j = 1; j < 4; j++)
         {
             if (b != bytes[offsets[j] + i])
             {
                 different = true;
                 break;
             }
         }
     }
     if (!different)
     {
         // The following line cements our checksum algorithm in stone.
         // Things should be safe enough if we remove the throw.
         // If all four versions of the header are the same,
         // it's bound to be OK. (unless all bytes are zero or
         // greyed out by some kind of overwriting algorithm.)
         var firstOffset = 0;
         if (!CheckSumOK(buffer, firstOffset))
         {
             throw new Db4oFileHeaderCorruptionException();
         }
         return true;
     }
     var firstPairDiffers = false;
     var secondPairDiffers = false;
     for (var i = 0; i < length; i++)
     {
         if (bytes[offsets[0] + i] != bytes[offsets[1] + i])
         {
             firstPairDiffers = true;
         }
         if (bytes[offsets[2] + i] != bytes[offsets[3] + i])
         {
             secondPairDiffers = true;
         }
     }
     if (!secondPairDiffers)
     {
         if (CheckSumOK(buffer, offsets[2]))
         {
             buffer.Seek(offsets[2]);
             return false;
         }
     }
     if (firstPairDiffers)
     {
         // Should never ever happen, we are toast.
         // We could still try to use any random version of
         // the header but which one?
         // Maybe the first of the second pair could be an 
         // option for a recovery tool, or it could try all
         // versions.
         throw new Db4oFileHeaderCorruptionException();
     }
     if (!CheckSumOK(buffer, 0))
     {
         throw new Db4oFileHeaderCorruptionException();
     }
     return false;
 }
开发者ID:masroore,项目名称:db4o,代码行数:69,代码来源:FileHeaderVariablePart2.cs

示例6: CheckSumOK

 private bool CheckSumOK(ByteArrayBuffer buffer, int offset)
 {
     var initialOffSet = buffer.Offset();
     var length = OwnLength();
     length -= ChecksumLength;
     buffer.Seek(offset);
     var readCheckSum = buffer.ReadLong();
     var checkSumBeginOffset = buffer.Offset();
     var bytes = buffer._buffer;
     var calculatedCheckSum = CRC32.CheckSum(bytes, checkSumBeginOffset, length);
     buffer.Seek(initialOffSet);
     return calculatedCheckSum == readCheckSum;
 }
开发者ID:masroore,项目名称:db4o,代码行数:13,代码来源:FileHeaderVariablePart2.cs

示例7: Marshall

 private void Marshall(ByteArrayBuffer buffer, bool shuttingDown)
 {
     var checkSumOffset = buffer.Offset();
     buffer.IncrementOffset(ChecksumLength);
     var checkSumBeginOffset = buffer.Offset();
     WriteBuffer(buffer, shuttingDown);
     var checkSumEndOffSet = buffer.Offset();
     var bytes = buffer._buffer;
     var length = checkSumEndOffSet - checkSumBeginOffset;
     var checkSum = CRC32.CheckSum(bytes, checkSumBeginOffset, length);
     buffer.Seek(checkSumOffset);
     buffer.WriteLong(checkSum);
     buffer.Seek(checkSumEndOffSet);
 }
开发者ID:masroore,项目名称:db4o,代码行数:14,代码来源:FileHeaderVariablePart2.cs


注:本文中的ByteArrayBuffer.Seek方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。