package se.chalmers.gdcn.network;
import net.tomp2p.p2p.Peer;
import net.tomp2p.peers.PeerAddress;
import se.chalmers.gdcn.communicationToUI.ClientInterface;
import se.chalmers.gdcn.deceitful.DeceitfulWork;
import se.chalmers.gdcn.deceitful.Deceitful;
import se.chalmers.gdcn.replica.ReplicaManager.ReplicaID;
import java.util.Random;
/**
* Created by HalfLeif on 2014-05-23.
*/
public abstract class AbstractDeceitfulWork implements DeceitfulWork {
protected final TaskPasser taskPasser;
protected final ClientInterface client;
protected final WorkerID myWorkerID;
protected final Random random = new Random();
public AbstractDeceitfulWork(ClientInterface client, TaskPasser taskPasser, Peer peer) {
this.myWorkerID = new WorkerID(peer.getPeerBean().getKeyPair().getPublic());
this.client = client;
this.taskPasser = taskPasser;
}
@Deceitful
protected final void notifyJobOwner(TaskPasser taskPasser, PeerAddress jobOwner, WorkerID myWorkerID, ReplicaID replicaID){
taskPasser.sendNoReplyMessage(jobOwner, new TaskMessage(TaskMessageType.RESULT_UPLOADED, myWorkerID,
replicaID));
}
}