Skip to content

Commit

Permalink
HollowProducer: expose the prior ReadState
Browse files Browse the repository at this point in the history
  • Loading branch information
dkoszewnik committed Apr 4, 2017
1 parent 2a280bc commit 04bd571
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@
import com.netflix.hollow.api.client.HollowBlobRetriever;
import com.netflix.hollow.api.client.HollowClient;
import com.netflix.hollow.api.consumer.HollowConsumer;
import com.netflix.hollow.api.consumer.HollowConsumer.ReadState;
import com.netflix.hollow.api.producer.HollowProducerListener.ProducerStatus;
import com.netflix.hollow.api.producer.HollowProducerListener.RestoreStatus;
import com.netflix.hollow.api.producer.HollowProducerListener.PublishStatus;
import com.netflix.hollow.api.producer.HollowProducerListener.RestoreStatus;
import com.netflix.hollow.core.read.engine.HollowBlobHeaderReader;
import com.netflix.hollow.core.read.engine.HollowBlobReader;
import com.netflix.hollow.core.read.engine.HollowReadStateEngine;
Expand All @@ -38,7 +39,6 @@
import com.netflix.hollow.core.write.HollowWriteStateEngine;
import com.netflix.hollow.core.write.objectmapper.HollowObjectMapper;
import com.netflix.hollow.tools.checksum.HollowChecksum;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
Expand All @@ -61,10 +61,6 @@ public class HollowProducer {
public void validate(HollowConsumer.ReadState readState) {}
};

public static WriteState newWriteState(long version, HollowObjectMapper objectMapper) {
return new WriteStateImpl(version, objectMapper);
}

private final Publisher publisher;
private final Validator validator;
private final Announcer announcer;
Expand Down Expand Up @@ -148,7 +144,7 @@ public void runCycle(Populator task) {
// 1a. Prepare the write state
writeEngine.prepareForNextCycle();
HollowObjectMapper objectMapper = this.objectMapper;
WriteState writeState = newWriteState(toVersion, objectMapper);
WriteState writeState = new WriteStateImpl(toVersion, objectMapper, readStates.current());

// 2. Populate the state
ProducerStatus.Builder populateStatus = listeners.firePopulateStart(toVersion);
Expand Down Expand Up @@ -383,6 +379,8 @@ public static interface WriteState {
HollowObjectMapper getObjectMapper();

HollowWriteStateEngine getStateEngine();

ReadState getPriorState();

long getVersion();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/
package com.netflix.hollow.api.producer;

import com.netflix.hollow.api.consumer.HollowConsumer.ReadState;
import com.netflix.hollow.core.write.HollowWriteStateEngine;
import com.netflix.hollow.core.write.objectmapper.HollowObjectMapper;

Expand All @@ -28,10 +29,12 @@
final class WriteStateImpl implements HollowProducer.WriteState {
private final long version;
private final HollowObjectMapper objectMapper;
private final ReadState priorReadState;

protected WriteStateImpl(long version, HollowObjectMapper objectMapper) {
protected WriteStateImpl(long version, HollowObjectMapper objectMapper, ReadState priorReadState) {
this.version = version;
this.objectMapper = objectMapper;
this.priorReadState = priorReadState;
}

@Override
Expand All @@ -53,4 +56,9 @@ public HollowWriteStateEngine getStateEngine() {
public long getVersion() {
return version;
}

@Override
public ReadState getPriorState() {
return priorReadState;
}
}

0 comments on commit 04bd571

Please sign in to comment.