package cz.agents.agentpolis.darptestbed.simmodel.agent.passenger;
import java.util.Set;
import cz.agents.agentpolis.darptestbed.simmodel.agent.passenger.logic.PassengerDecentralizedLogic;
import org.apache.log4j.Logger;
import org.joda.time.Duration;
import cz.agents.agentpolis.darptestbed.global.Utils;
import cz.agents.agentpolis.darptestbed.simmodel.agent.data.Request;
import cz.agents.agentpolis.darptestbed.simmodel.agent.data.generator.RequestGenerator;
import cz.agents.agentpolis.darptestbed.simmodel.agent.timer.TimerCallback;
import cz.agents.agentpolis.simmodel.agent.activity.TimeSpendingActivity;
import cz.agents.agentpolis.simmodel.entity.EntityType;
public class PassengerDecentralizedAgent extends PassengerAgent<PassengerDecentralizedLogic> implements TimerCallback {
private static final Logger LOGGER = Logger.getLogger(PassengerDecentralizedAgent.class);
public PassengerDecentralizedAgent(String agentId, EntityType agentType, PassengerDecentralizedLogic logic, Utils utils,
Duration startLife, TimeSpendingActivity timeSpendingActivity, Set<String> passengerRequirements,
RequestGenerator requestGenerator) {
super(agentId, agentType, logic, utils, startLife, timeSpendingActivity, passengerRequirements,
requestGenerator);
// 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.processProposals();
}
/**
* This method is usually called by a request generator.
*/
@Override
public void sendRequest(Request request) {
long statrTime = System.currentTimeMillis();
logic.sendRequest(request);
utils.logAlgRealTime(System.currentTimeMillis() - statrTime);
// LOGGER.debug("Passenger sent request: " + request);
// TODO: LOG REQEST
}
}