Interface CellOutputStream

All Known Subinterfaces:
All Known Implementing Classes:
BaseEncoder, CellCodec.CellEncoder, CellCodecWithTags.CellEncoder, KeyValueCodec.KeyValueEncoder, KeyValueCodecWithTags.KeyValueEncoder, MessageCodec.MessageEncoder, SecureWALCellCodec.EncryptedKvEncoder, WALCellCodec.CompressedKvEncoder, WALCellCodec.EnsureKvEncoder

@Private @Evolving public interface CellOutputStream
Accepts a stream of Cells. This can be used to build a block of cells during compactions and flushes, or to build a byte[] to send to the client. This could be backed by a List<KeyValue>, but more efficient implementations will append results to a byte[] to eliminate overhead, and possibly encode the cells further.

To read Cells, use CellScanner

See Also:
  • Method Summary

    Modifier and Type
    Let the implementation decide what to do.
    Implementation must copy the entire state of the Cell.
  • Method Details

    • write

      void write(ExtendedCell cell) throws IOException
      Implementation must copy the entire state of the Cell. If the written Cell is modified immediately after the write method returns, the modifications must have absolutely no effect on the copy of the Cell that was added in the write.
      cell - Cell to write out
    • flush

      void flush() throws IOException
      Let the implementation decide what to do. Usually means writing accumulated data into a byte[] that can then be read from the implementation to be sent to disk, put in the block cache, or sent over the network.