public class ReplicaPushRequest
extends java.lang.Object
Implementors of KetchReplica
must
populate the command result fields, setRefs(Map)
, and call one of
setException(Repository, Throwable)
or done(Repository)
to
finish processing.
Modifier and Type | Field and Description |
---|---|
private java.util.Collection<ReceiveCommand> |
commands |
private java.lang.Throwable |
exception |
private boolean |
notified |
private java.util.Map<java.lang.String,Ref> |
refs |
private KetchReplica |
replica |
Constructor and Description |
---|
ReplicaPushRequest(KetchReplica replica,
java.util.Collection<ReceiveCommand> commands)
Construct a new push request for a replica.
|
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
describe(java.lang.String heading) |
void |
done(Repository repo)
Mark the request as completed without exception.
|
java.util.Collection<ReceiveCommand> |
getCommands()
Get commands to be executed, and their results.
|
java.lang.Throwable |
getException()
Get exception thrown, if any.
|
java.util.Map<java.lang.String,Ref> |
getRefs()
Get remote references, usually from the advertisement.
|
void |
setException(Repository repo,
java.lang.Throwable err)
Mark the request as crashing with a communication error.
|
void |
setRefs(java.util.Map<java.lang.String,Ref> refs)
Set references observed from the replica.
|
private final KetchReplica replica
private final java.util.Collection<ReceiveCommand> commands
private java.util.Map<java.lang.String,Ref> refs
private java.lang.Throwable exception
private boolean notified
public ReplicaPushRequest(KetchReplica replica, java.util.Collection<ReceiveCommand> commands)
replica
- the replica being pushed to.commands
- commands to be executed.public java.util.Collection<ReceiveCommand> getCommands()
@Nullable public java.util.Map<java.lang.String,Ref> getRefs()
public void setRefs(java.util.Map<java.lang.String,Ref> refs)
refs
- references observed from the replica.@Nullable public java.lang.Throwable getException()
public void setException(@Nullable Repository repo, java.lang.Throwable err)
This method may take significant time acquiring the leader lock and updating the Ketch state machine with the failure.
repo
- local repository reference used by the push attempt.err
- exception thrown during communication.public void done(Repository repo)
This method may take significant time acquiring the leader lock and updating the Ketch state machine with results from this replica.
repo
- local repository reference used by the push attempt.private java.lang.String describe(java.lang.String heading)