Skip to content

Instantly share code, notes, and snippets.

@kevinherron
Created January 12, 2012 22:34
Show Gist options
  • Save kevinherron/1603587 to your computer and use it in GitHub Desktop.
Save kevinherron/1603587 to your computer and use it in GitHub Desktop.
public class WriteRequest extends AbstractWriteRequest<Integer> {
private static final int timeout = 1000;
private NodeMapDriver driver;
protected volatile int sequenceNumber;
public WriteRequest(NodeMapDriver driver, List<? extends WriteItem> items) {
super(items, timeout);
this.driver = driver;
}
@Override
public Object getKey() {
return sequenceNumber;
}
@Override
public boolean sendMessage() {
sequenceNumber = driver.getTransactionSequence().next();
driver.getExecutionManager().executeOnce(new Runnable() {
@Override
public void run() {
driver.messageDone(sequenceNumber);
}
});
return true;
}
@Override
public ReceiveAction receiveMessage(Integer message, Object key) {
for (WriteItem item : items) {
item.setWriteStatus(StatusCode.BAD_NOT_WRITABLE);
}
return ReceiveAction.Done;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment