protected void compressInput() throws IOException { if (inputCursor <= 0) { return; // no need to dump } if (!headerWritten) { outputCursor = writeHeader(); headerWritten = true; } // Compress and dump the buffer content if (!hasSufficientOutputBufferFor(inputCursor)) { dumpOutput(); } writeBlockPreemble(); int compressedSize = Snappy.compress(inputBuffer, 0, inputCursor, outputBuffer, outputCursor + 4); // Write compressed data size writeInt(outputBuffer, outputCursor, compressedSize); outputCursor += 4 + compressedSize; inputCursor = 0; }