public void Consume()
 {
     consumeOffset++;
     if (markerCount == 0 && consumeOffset > (buffer.Size << 2))
     {
         buffer.RemoveBlock(consumeOffset);
         consumeOffset = 0;
     }
 }