@Override public void untakeWithKeys(List<? extends PartitionKey> partitionKeys) { ConsumerWorkingSet workingSet = readState(); untake(workingSet, partitionKeys); statePersistor.persistState(workingSet.toBytes()); }
@Override public PartitionConsumerResult consumePartitions(PartitionAcceptor acceptor) { ConsumerWorkingSet workingSet = readState(); PartitionConsumerResult partitionsResult = doConsume(workingSet, acceptor); statePersistor.persistState(workingSet.toBytes()); return partitionsResult; }
@Override public void onFinishWithKeys(List<? extends PartitionKey> partitionKeys, boolean succeeded) { ConsumerWorkingSet workingSet = readState(); doFinish(workingSet, partitionKeys, succeeded); statePersistor.persistState(workingSet.toBytes()); }
private void testSerDe(ConsumerWorkingSet stateToSerialize) { byte[] bytes = stateToSerialize.toBytes(); // Assert that the serialization format version is 0 Assert.assertEquals(0, bytes[0]); ConsumerWorkingSet deserializedState = ConsumerWorkingSet.fromBytes(bytes); Assert.assertEquals(stateToSerialize, deserializedState); }