Package com.illumon.iris.binarystore
Interface BinaryStoreV2RowBufferProcessor
- All Known Implementing Classes:
BatchedImportRowBufferProcessor
,BinaryStoreV2RowBufferProcessor.Uninitialized
public interface BinaryStoreV2RowBufferProcessor
Interface for row buffer processors, which are usually generated code to fill and write a row batch data structure.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final class
Row buffer processor to use when a real one has not yet been set, and hence rows are unexpected. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Do any row processing previously deferred by this implementation'sprocessRow(Row.Flags, int)
.boolean
isDirty()
Check whether this buffer processor has any deferred row data to process viadoDeferredProcessing()
.void
processRow
(Row.Flags flags, int rowSize) Process a binary row entry.void
setDataBuffer
(ByteBuffer dataBuffer, long txTimestamp, long rxTimestamp) Advise this buffer processor of the incoming data buffer and its associated timestamps to be used in subsequent calls toprocessRow(Row.Flags, int)
.
-
Method Details
-
setDataBuffer
Advise this buffer processor of the incoming data buffer and its associated timestamps to be used in subsequent calls toprocessRow(Row.Flags, int)
. This buffer processor should record this information, and may need to clear cached objects (e.g. duplicate buffers) linked to the buffer.- Parameters:
dataBuffer
- The data buffertxTimestamp
- The transmit timestamp from the sourcerxTimestamp
- The receive timestamp at this destination
-
processRow
Process a binary row entry. Data is guaranteed to be complete and to have passed checksum verification if such verification is enabled. The data buffer will be positioned to begin reading variable columns.Implementations may internally "defer" part or all of this processing until a later time, for example in order to batch transformation or columnar writing tasks. They may assume that
doDeferredProcessing()
will be called before the contents of the current data buffer are mutated.- Parameters:
flags
- The flags for this row- Throws:
IOException
-
doDeferredProcessing
Do any row processing previously deferred by this implementation'sprocessRow(Row.Flags, int)
.This must be invoked explicitly:
- before changing the contents of the current data buffer
- before processing a record
- Throws:
IOException
-
isDirty
boolean isDirty()Check whether this buffer processor has any deferred row data to process viadoDeferredProcessing()
.- Returns:
- Whether this buffer processor has any deferred row data to process
-