diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-21 21:27:31 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-21 21:27:31 +0300 |
| commit | 0841f0f9a1e3f3708d8c511a6290344e73607aab (patch) | |
| tree | 4ae7fe60878b693d6975093acb491d977d247acd /src/main/java/simulator/engine/AbstractSimulationEngine.java | |
| parent | ce82046a11521b0537ac2150a07a4de54aec883a (diff) | |
Move test scripts to scripts/ directory and fix simulation completion
- Moved test-protocols.sh, test-quick.sh, test-verbose.sh to scripts/
- Updated references in README.md and docs/testing-guide.md
- Fixed HeadlessSimulationRunner to properly run simulations to completion
- Fixed message delivery timing (now respects 500-2000ms delays)
- Added proper process time synchronization
- Fixed HeadlessProtocolRunner to exit cleanly
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'src/main/java/simulator/engine/AbstractSimulationEngine.java')
| -rw-r--r-- | src/main/java/simulator/engine/AbstractSimulationEngine.java | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/main/java/simulator/engine/AbstractSimulationEngine.java b/src/main/java/simulator/engine/AbstractSimulationEngine.java index 21be5c7..45b2522 100644 --- a/src/main/java/simulator/engine/AbstractSimulationEngine.java +++ b/src/main/java/simulator/engine/AbstractSimulationEngine.java @@ -16,7 +16,7 @@ public abstract class AbstractSimulationEngine implements SimulationEngine { protected final VSPrefs prefs; protected final List<VSInternalProcess> processes; protected final List<SimulationVisualizer> visualizers; - protected final VSTaskManager taskManager; + protected VSTaskManager taskManager; protected VSLogging loging; protected long time; @@ -38,19 +38,16 @@ public abstract class AbstractSimulationEngine implements SimulationEngine { @Override public void sendMessage(VSMessage message) { + // Calculate proper delivery time + long deliveryTime = calculateDeliveryTime(message); + // Schedule message delivery to all processes (broadcast model) - scheduleMessageDelivery(message, time); + scheduleMessageDelivery(message, deliveryTime); // Notify visualizers for (SimulationVisualizer visualizer : visualizers) { visualizer.onMessageSent(message); } - - // Log the message - if (loging != null) { - loging.log("Message sent; ID: " + message.getMessageID() + - "; Protocol: " + message.getName()); - } } protected abstract long calculateDeliveryTime(VSMessage message); @@ -100,6 +97,14 @@ public abstract class AbstractSimulationEngine implements SimulationEngine { return taskManager; } + /** + * Set the task manager for this engine. + * Used when integrating with existing simulation infrastructure. + */ + public void setTaskManager(VSTaskManager taskManager) { + this.taskManager = taskManager; + } + @Override public long getTime() { return time; |
