1 // Copyright (c) 2011-present, Facebook, Inc. All rights reserved. 2 // This source code is licensed under both the GPLv2 (found in the 3 // COPYING file in the root directory) and Apache 2.0 License 4 // (found in the LICENSE.Apache file in the root directory). 5 6 package org.rocksdb; 7 8 /** 9 * TraceWriter allows exporting RocksDB traces to any system, 10 * one operation at a time. 11 */ 12 public interface TraceWriter { 13 14 /** 15 * Write the data. 16 * 17 * @param data the data 18 * 19 * @throws RocksDBException if an error occurs whilst writing. 20 */ write(final Slice data)21 void write(final Slice data) throws RocksDBException; 22 23 /** 24 * Close the writer. 25 * 26 * @throws RocksDBException if an error occurs whilst closing the writer. 27 */ closeWriter()28 void closeWriter() throws RocksDBException; 29 30 /** 31 * Get the size of the file that this writer is writing to. 32 * 33 * @return the file size 34 */ getFileSize()35 long getFileSize(); 36 } 37