Skip to content

Commit

Permalink
Fix. KnowledgeDataReceiver registration at KnowledgeDataReceiversHolder
Browse files Browse the repository at this point in the history
  • Loading branch information
Michal Kit committed Jun 30, 2014
1 parent 7b67388 commit f10baa5
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 28 deletions.
Original file line number Diff line number Diff line change
@@ -1,40 +1,53 @@
/**
*
*/
package cz.cuni.mff.d3s.deeco.network;
package cz.cuni.mff.d3s.deeco.simulation;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import cz.cuni.mff.d3s.deeco.network.KnowledgeData;
import cz.cuni.mff.d3s.deeco.network.KnowledgeDataReceiver;
import cz.cuni.mff.d3s.deeco.network.KnowledgeDataSender;

/**
* @author Michal
*
*
*/
public class DirectKnowledgeDataHandler implements KnowledgeDataSender, KnowledgeDataReceiversHolder {
public class DirectKnowledgeDataHandler implements KnowledgeDataSender,
KnowledgeDataReceiversHolder {

private final Map<String, KnowledgeDataReceiver> receivers;

public DirectKnowledgeDataHandler() {
this.receivers = new HashMap<String, KnowledgeDataReceiver>();
}

/* (non-Javadoc)
* @see cz.cuni.mff.d3s.deeco.network.KnowledgeDataSender#broadcastKnowledgeData(java.util.List)

/*
* (non-Javadoc)
*
* @see
* cz.cuni.mff.d3s.deeco.network.KnowledgeDataSender#broadcastKnowledgeData
* (java.util.List)
*/
@Override
public void broadcastKnowledgeData(String from,
List<? extends KnowledgeData> knowledgeData) {
for (String id: receivers.keySet()) {
for (String id : receivers.keySet()) {
KnowledgeDataReceiver receiver = receivers.get(id);
if (!from.equals(id)) {
receiver.receive(knowledgeData);
}
}
}

/* (non-Javadoc)
* @see cz.cuni.mff.d3s.deeco.network.KnowledgeDataSender#sendKnowledgeData(java.util.List, java.lang.String)
/*
* (non-Javadoc)
*
* @see
* cz.cuni.mff.d3s.deeco.network.KnowledgeDataSender#sendKnowledgeData(java
* .util.List, java.lang.String)
*/
@Override
public void sendKnowledgeData(List<? extends KnowledgeData> knowledgeData,
Expand All @@ -46,8 +59,9 @@ public void sendKnowledgeData(List<? extends KnowledgeData> knowledgeData,
}

@Override
public void addKnowledgeDataReceiver(String id, KnowledgeDataReceiver receiver) {
receivers.put(id, receiver);
public void addKnowledgeDataReceiver(String id,
KnowledgeDataReceiver receiver) {
receivers.put(id, receiver);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,26 @@
import cz.cuni.mff.d3s.deeco.network.KnowledgeDataSender;
import cz.cuni.mff.d3s.deeco.scheduler.CurrentTimeProvider;

public class SimpleSimulationHost extends AbstractHost implements SimulationTimeEventListenerHolder {
public class DirectSimulationHost extends AbstractHost implements SimulationTimeEventListenerHolder {

private final KnowledgeDataSender sender;
private KnowledgeDataReceiver receiver;
private final DirectKnowledgeDataHandler handler;
private SimulationTimeEventListener timeEventListener = null;

public SimpleSimulationHost(String id, CurrentTimeProvider timeProvider, KnowledgeDataSender sender) {
public DirectSimulationHost(String id, CurrentTimeProvider timeProvider, DirectKnowledgeDataHandler handler) {
super(id, timeProvider);
this.sender = sender;
this.handler = handler;
// TODO Auto-generated constructor stub
}

@Override
public KnowledgeDataSender getKnowledgeDataSender() {
return sender;
return handler;
}

@Override
public void setKnowledgeDataReceiver(
KnowledgeDataReceiver knowledgeDataReceiver) {
this.receiver = receiver;
this.handler.addKnowledgeDataReceiver(id, knowledgeDataReceiver);
}

public void setSimulationTimeEventListener(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package cz.cuni.mff.d3s.deeco.network;
package cz.cuni.mff.d3s.deeco.simulation;

import cz.cuni.mff.d3s.deeco.network.KnowledgeDataReceiver;

public interface KnowledgeDataReceiversHolder {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@
import org.matsim.withinday.trafficmonitoring.TravelTimeCollectorFactory;

import cz.cuni.mff.d3s.deeco.logging.Log;
import cz.cuni.mff.d3s.deeco.network.DirectKnowledgeDataHandler;
import cz.cuni.mff.d3s.deeco.simulation.SimpleSimulationHost;
import cz.cuni.mff.d3s.deeco.simulation.DirectKnowledgeDataHandler;
import cz.cuni.mff.d3s.deeco.simulation.DirectSimulationHost;
import cz.cuni.mff.d3s.deeco.simulation.Simulation;
import cz.cuni.mff.d3s.deeco.simulation.SimulationStepListener;
import cz.cuni.mff.d3s.deeco.simulation.task.SimulationStepTask;
Expand All @@ -36,7 +36,7 @@ public class MATSimSimulation extends Simulation implements
private final JDEECoWithinDayMobsimListener listener;
private final MATSimDataProvider matSimProvider;
private final MATSimDataReceiver matSimReceiver;
private final Map<String, SimpleSimulationHost> hosts;
private final Map<String, DirectSimulationHost> hosts;

private final DirectKnowledgeDataHandler knowledgeDataHandler;

Expand Down Expand Up @@ -98,11 +98,11 @@ public void notifyStartup(StartupEvent event) {
.getQSimConfigGroup().getStartTime());
}

public SimpleSimulationHost getHost(String id) {
public DirectSimulationHost getHost(String id) {

SimpleSimulationHost host = hosts.get(id);
DirectSimulationHost host = hosts.get(id);
if (host == null) {
host = new SimpleSimulationHost(id, this, knowledgeDataHandler);
host = new DirectSimulationHost(id, this, knowledgeDataHandler);
hosts.put(id, host);
}
return host;
Expand Down Expand Up @@ -148,7 +148,7 @@ public void at(long seconds, SimulationStepTask task) {
listener.setInputs(matSimProvider.getMATSimData());
// Add callback for the MATSim step
callAt(milliseconds + simulationStep, SIMULATION_CALLBACK);
SimpleSimulationHost host;
DirectSimulationHost host;
Callback callback;
// Iterate through all the callbacks until the MATSim callback.
while (!callbacks.isEmpty()) {
Expand All @@ -157,7 +157,7 @@ public void at(long seconds, SimulationStepTask task) {
break;
}
currentMilliseconds = callback.getAbsoluteTime();
host = (SimpleSimulationHost) hosts.get(callback.hostId);
host = (DirectSimulationHost) hosts.get(callback.hostId);
host.at(millisecondsToSeconds(currentMilliseconds));
}
}
Expand Down

0 comments on commit f10baa5

Please sign in to comment.