/// <summary> /// Chunks the buffer, calling back when chunks complete. /// </summary> public void PushBuffer(byte[] buffer, int startOffset, int count) { checked { while (count > 0) { while (count > 0 && _bytesInPushBuffer < MinPushBufferSize) { _pushBuffer.Value[_bytesInPushBuffer] = buffer[startOffset]; startOffset++; _bytesInPushBuffer++; count--; } if (_bytesInPushBuffer == MinPushBufferSize) { _regressionChunker.PushBuffer(new ArraySegment <byte>(_pushBuffer.Value)); _lastBufferFileOffset = _bufferFileOffset; _lastPushBuffer?.Dispose(); _lastPushBuffer = _pushBuffer; _bufferFileOffset += MinPushBufferSize; _pushBuffer = pool.Get(); _bytesInPushBuffer = 0; } } } }
/// <summary> /// Chunks the buffer, calling back when chunks complete. /// </summary> public void PushBuffer(byte[] buffer, int startOffset, int count) { _currentBuffer = new ArraySegment <byte>(buffer, startOffset, count); _regressionChunker.PushBuffer(_currentBuffer.Value); }