Class BinaryStoreBufferProcessorV1

All Implemented Interfaces:
BinaryStoreBufferProcessor, BinaryStoreReader, TableReader

public class BinaryStoreBufferProcessorV1
extends AbstractBinaryStoreReaderV1
implements BinaryStoreBufferProcessor
V1 Binary Store. Enables processing buffers of binary data, without providing a source (other than the buffer). All methods for reading more data from a source are disabled.
  • Constructor Details

  • Method Details

    • close

      public void close() throws IOException
      Description copied from interface: TableReader
      Close the input source for this TableReader.
      Specified by:
      close in interface TableReader
      Throws:
      IOException
    • readData

      protected void readData​(int minAmount, ByteBuffer dataBuffer) throws IOException
      We never actually read any data in the BinaryStoreBufferProcessors, instead we have a buffer passed in by the caller. If we end up needing to read data, we throw an exception, indicating that there is insufficient data to read the record; and the caller should pass in additional data.
      Specified by:
      readData in class AbstractBinaryStoreReader
      Parameters:
      minAmount - caller wants this many additional bytes
      dataBuffer - put the bytes in ths buffer. Must have minAmount additional capacity.
      Throws:
      IOException
    • readIntoByteBuffer

      protected void readIntoByteBuffer​(int requiredSize, ByteBuffer theBuffer) throws IOException, EofException
      This method is called by the AbstractBinaryStoreReaderV1 when more data is needed (with the minimum size needed). If our buffer has enough data, then we simply return. If there is not enough data, then we throw a ReadDataException, so that the caller is aware we have insufficient data to process the record, and setDataBuffer must be called with additional data before we can process the record.
      Overrides:
      readIntoByteBuffer in class AbstractBinaryStoreReader
      Parameters:
      requiredSize - how many bytes of data are required to continue processing
      theBuffer - the data buffer to populate
      Throws:
      IOException - if we encounter an EOF mid row
      EofException - if no data is available from the file
    • setDataBuffer

      public void setDataBuffer​(ByteBuffer buffer, long sentTimestamp, long recvTimestamp)
      The BinaryStoreBufferProcessors do not read their own data, but rather receive it externally through this call.
      Specified by:
      setDataBuffer in interface BinaryStoreBufferProcessor
      Parameters:
      buffer - the buffer that the BinaryStoreProcessor should consume data from.
      recvTimestamp - not used in this implementation
      sentTimestamp - not used in this implementation