package org.ourgrid.peer.communication.sender;
import org.ourgrid.common.interfaces.LocalWorkerProviderClient;
import org.ourgrid.common.interfaces.management.WorkerManagement;
import org.ourgrid.common.internal.SenderIF;
import org.ourgrid.peer.response.WorkForBrokerResponseTO;
import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager;
import br.edu.ufcg.lsd.commune.identification.DeploymentID;
import br.edu.ufcg.lsd.commune.identification.ServiceID;
public class WorkForBrokerSender implements SenderIF<WorkForBrokerResponseTO> {
public void execute(WorkForBrokerResponseTO response, ServiceManager manager) {
ServiceID brokerServiceID = ServiceID.parse(response.getBrokerAddress());
LocalWorkerProviderClient lwpc = (LocalWorkerProviderClient) manager.getStub(brokerServiceID,
LocalWorkerProviderClient.class);
DeploymentID brokerDeploymentID = manager.getStubDeploymentID(lwpc);
WorkerManagement workerManagement = (WorkerManagement) manager.getStub(
ServiceID.parse(response.getWorkerManagementAddress()), WorkerManagement.class);
workerManagement.workForBroker(brokerDeploymentID);
}
}