package cz.agents.agentpolis.darptestbed.simmodel.agent.driver; import cz.agents.agentpolis.darptestbed.siminfrastructure.communication.dispatching.message.DispatcherRequestsInsertionMessage; import cz.agents.agentpolis.darptestbed.siminfrastructure.communication.requestconsumer.message.ProposalAccept; import cz.agents.agentpolis.darptestbed.siminfrastructure.communication.requestconsumer.message.ProposalReject; import cz.agents.agentpolis.darptestbed.siminfrastructure.communication.requestconsumer.receiver.RequestConsumerReceiverVisitor; import cz.agents.agentpolis.darptestbed.simmodel.agent.data.Request; import cz.agents.agentpolis.darptestbed.simmodel.agent.driver.logic.DriverDecentralizedLogic; import cz.agents.agentpolis.darptestbed.simmodel.agent.timer.TimerCallback; import cz.agents.agentpolis.simmodel.entity.EntityType; import cz.agents.agentpolis.simmodel.environment.model.query.AgentPositionQuery; import org.apache.log4j.Logger; public class DriverDecentralizedAgent extends DriverAgent<DriverDecentralizedLogic> implements TimerCallback, RequestConsumerReceiverVisitor { private static final Logger LOGGER = Logger.getLogger(DriverDecentralizedAgent.class); public DriverDecentralizedAgent(String agentId, EntityType agentType, DriverDecentralizedLogic logic, AgentPositionQuery positionQuery) { super(agentId, agentType, logic, positionQuery); // TODO Auto-generated constructor stub } /** * If the decentralized communication is used, this method is usually called * by a timer at regular intervals. */ @Override public void timerCallback() { logic.processRequests(); logic.processAcceptancesAndRejections(); } // --- @Override public void visit(Request request) { //LOGGER.debug(getId() + ":" + request.getClass().getSimpleName()); logic.processNewRequest(request); } @Override public void visit(ProposalReject proposalReject) { //LOGGER.debug(getId() + ":" + proposalReject.getClass().getSimpleName()); } @Override public void visit(ProposalAccept proposalAccept) { LOGGER.debug(getId() + ":" + proposalAccept.getClass().getSimpleName()); logic.processNewAcceptance(proposalAccept.proposal); } @Override public void visit(DispatcherRequestsInsertionMessage dispatcherRequestsInsertionMessage) { //To change body of implemented methods use File | Settings | File Templates. } }