Example usage for org.apache.cassandra.io.util SequentialWriter mark

List of usage examples for org.apache.cassandra.io.util SequentialWriter mark

Introduction

In this page you can find the example usage for org.apache.cassandra.io.util SequentialWriter mark.

Prototype

public DataPosition mark() 

Source Link

Usage

From source file:com.fullcontact.cassandra.io.compress.CompressedRandomAccessReaderTest.java

License:Apache License

private void testResetAndTruncate(File f, boolean compressed, int junkSize) throws IOException {
    final String filename = f.getAbsolutePath();

    try {/*from www .  java  2  s .  co  m*/
        SSTableMetadata.Collector sstableMetadataCollector = SSTableMetadata.createCollector()
                .replayPosition(null);
        SequentialWriter writer = compressed
                ? new CompressedSequentialWriter(f, filename + ".metadata", false,
                        new CompressionParameters(SnappyCompressor.instance), sstableMetadataCollector)
                : new SequentialWriter(f, CompressionParameters.DEFAULT_CHUNK_LENGTH, false);

        writer.write("The quick ".getBytes());
        FileMark mark = writer.mark();
        writer.write("blue fox jumps over the lazy dog".getBytes());

        // write enough to be sure to change chunk
        for (int i = 0; i < junkSize; ++i) {
            writer.write((byte) 1);
        }

        writer.resetAndTruncate(mark);
        writer.write("brown fox jumps over the lazy dog".getBytes());
        writer.close();

        assert f.exists();
        RandomAccessReader reader = compressed
                ? CompressedRandomAccessReader.open(new Path(filename),
                        new CompressionMetadata(filename + ".metadata", f.length(), fs), false, fs)
                : RandomAccessReader.open(new Path(f.getPath()), fs);
        String expected = "The quick brown fox jumps over the lazy dog";
        assertEquals(expected.length(), reader.length());
        byte[] b = new byte[expected.length()];
        reader.readFully(b);
        assert new String(b).equals(expected) : "Expecting '" + expected + "', got '" + new String(b) + "'";
    } finally {
        // cleanup
        if (f.exists())
            f.delete();
        File metadata = new File(filename + ".metadata");
        if (compressed && metadata.exists())
            metadata.delete();
    }
}