package cz.agents.agentpolis.darptestbed.siminfrastructure.logger;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import cz.agents.agentpolis.darptestbed.global.Utils;
import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.item.PassengerRequestLogItem;
import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.item.RequestConfirmedLogItem;
import cz.agents.agentpolis.darptestbed.siminfrastructure.logger.item.RequestRejectedLogItem;
import cz.agents.agentpolis.darptestbed.simmodel.agent.data.TimeWindow;
import cz.agents.agentpolis.siminfrastructure.logger.Logger;
import cz.agents.agentpolis.siminfrastructure.logger.PublishSubscribeLogger;
import cz.agents.alite.common.event.EventProcessor;
/**
* Logs the events concerning requests - when a new request is generated
*
* @author Lukas Canda
*/
@Singleton
public class RequestLogger extends Logger {
@Inject
public RequestLogger(PublishSubscribeLogger publishSubscribeLogger, EventProcessor eventProcessor) {
super(publishSubscribeLogger, eventProcessor);
}
public void logPassengerSentRequest(String passengerId, long fromNode, long toNode, long departFrom, long departTo,
long arrivalFrom, long arrivalTo, Utils utils) {
// Map<LogItemKey, Object> eventData = new HashMap<LogItemKey,
// Object>();
// eventData.put(ERequestLogItemKey.FROM_NODE, fromNode);
// eventData.put(ERequestLogItemKey.TO_NODE, toNode);
// if (departFrom > 0 && arrivalTo > 0) {
// eventData.put(ERequestLogItemKey.TIME_WIN_OPEN, departFrom);
// eventData.put(ERequestLogItemKey.TIME_WIN_CLOSE, arrivalTo);
// }
// logCommonEvent(passengerId,
// ERequestLogItemType.PASSENGER_SENT_REQUEST, eventData);
log(new PassengerRequestLogItem(passengerId, new TimeWindow(departFrom, departTo, arrivalFrom, arrivalTo),
fromNode, toNode, utils));
}
public void logPassengerSentRequest(String passengerId, long fromNode, long toNode, Utils utils) {
logPassengerSentRequest(passengerId, fromNode, toNode, -1, -1, -1, -1, utils);
}
public void logRequestConfirmed(String passengerId, String driverId, String vehicleId) {
log(new RequestConfirmedLogItem(getCurrentSimulationTime(), passengerId, driverId, vehicleId));
}
public void logRequestRejected(String passengerId) {
log(new RequestRejectedLogItem(getCurrentSimulationTime(), passengerId));
}
}