Exemplo n.º 1
0
 public void DeleteBytes(long index, long length)
 {
     try
     {
         long      num2;
         DataBlock nextBlock;
         long      num = length;
         for (DataBlock block = GetDataBlock(index, out num2); (num > 0L) && (block != null); block = (num > 0L) ? nextBlock : null)
         {
             long num3 = block.Length;
             nextBlock = block.NextBlock;
             long count = Math.Min(num, num3 - (index - num2));
             block.RemoveBytes(index - num2, count);
             if (block.Length == 0L)
             {
                 _dataMap.Remove(block);
                 if (_dataMap.FirstBlock == null)
                 {
                     _dataMap.AddFirst(new MemoryDataBlock(new byte[0]));
                 }
             }
             num  -= count;
             num2 += block.Length;
         }
     }
     finally
     {
         _totalLength -= length;
         OnLengthChanged(EventArgs.Empty);
         OnChanged(EventArgs.Empty);
     }
 }
Exemplo n.º 2
0
 private void ReInitialize()
 {
     _dataMap = new DataMap();
     _dataMap.AddFirst((DataBlock)new FileDataBlock(0L, _stream.Length));
     _totalLength = _stream.Length;
 }
Exemplo n.º 3
0
 private void ReInitialize()
 {
     _dataMap = new DataMap();
     _dataMap.AddFirst((DataBlock) new FileDataBlock(0L, _stream.Length));
     _totalLength = _stream.Length;
 }