You need to sign in or sign up before continuing.
Newer
Older
package fucoin.actions.transaction;
import java.util.HashMap;
import akka.actor.ActorRef;
import akka.actor.UntypedActorContext;
import fucoin.Wallet;
import fucoin.supervisor.DistributedCommitedTransferRequest;
import fucoin.supervisor.SuperVisor;
public class ActionInvokeDistributedCommitedTransfer extends CoordinatorTransaction{
private ActorRef source;
private ActorRef target;
private int amount;
public ActionInvokeDistributedCommitedTransfer(ActorRef source,
ActorRef target, int amount) {
this.source=source;
this.target=target;
this.amount=amount;
}
@Override
protected void onAction(ActorRef sender, ActorRef self,
UntypedActorContext context, SuperVisor superVisor) {
log("invoke transaction "+source.path().name()+" sends "+amount+" to "+target.path().name());
long timeout = System.currentTimeMillis()+500;
DistributedCommitedTransferRequest ds = new DistributedCommitedTransferRequest(source,target,timeout);
superVisor.addDistributedCommitedTransferRequest(ds);
ActionPrepareDistributedCommitedTransfer apdct = new ActionPrepareDistributedCommitedTransfer(source,target,amount,timeout,ds.getId());
for(ActorRef neighbor : superVisor.getKnownNeighbors().values()){