How nicolelozadaleon/nicolelozadacuda works
Equipetrol Delivery is a multithreaded, accelerated-time courier-delivery simulator, with a live map view and JSON event log/summary. Its main workflow is order generation, dispatcher ranking and assignment, courier pickup and delivery, and event recording. Simulation owns the runtime objects and threads; shared monitors coordinate work, while the street graph supports travel and estimates. The README documents the runtime interactions used here; source excerpts are limited, so unshown implementation details and optional behavior are not expanded.
Main entry points: Simulation.cpp Simulation owner · Courier.cpp Courier workers · Dispatcher.cpp Dispatcher · EventLog.cpp Event log
Components 17
Runtime orchestration
- Program entry
src/main.cpp - Simulation owner
src/app/Simulation.cpp - Run settings
src/core/Settings.h
Delivery workflow
- Order generator
src/actors/OrderGenerator.cpp - Dispatcher
src/actors/Dispatcher.cpp - Courier workers
src/actors/Courier.cpp
Shared coordination
- Fleet coordination
src/actors/Fleet.cpp - Pending orders
src/shared/OrderBook.cpp - Pickup slots
src/shared/Restaurant.cpp - Estimate pool
src/parallel/EstimatePool.h
Simulation model
- Configuration
src/core/Config.cpp - Street graph
src/core/Graph.cpp - Order data
src/core/Order.h - Simulation clock
src/core/SimClock.h
Output and view
- Event log
src/shared/EventLog.cpp - Live map window
src/view/Window.cpp
Other components
- Operator
Connections 27
- Operator → Program entry: starts run
README.md - Program entry → Configuration: loads config
README.md - Program entry → Simulation owner: starts simulation
README.md - Program entry → Live map window: draws frames
README.md - Simulation owner → Order generator: starts thread
README.md - Simulation owner → Dispatcher: starts thread
README.md - Simulation owner → Courier workers: starts threads
README.md - Simulation owner → Estimate pool: shuts down
README.md - Simulation owner → Run settings: uses settings
README.md - Simulation owner → Street graph: builds graph
README.md - Simulation owner → Event log: writes stop event
README.md - Order generator → Pending orders: submits orders
README.md - Order generator → Event log: records events
README.md - Dispatcher → Pending orders: takes orders
README.md - Dispatcher → Estimate pool: submits estimates
README.md - Dispatcher → Fleet coordination: waits for change
README.md - Dispatcher → Courier workers: offers orders
README.md - Dispatcher → Event log: records rejection
README.md - Courier workers → Fleet coordination: notifies changes
README.md - Courier workers → Pickup slots: acquires slots
README.md - Courier workers → Event log: records delivery events
README.md - Courier workers → Street graph: routes travel
README.md - Live map window → Courier workers: reads snapshots
README.md - Live map window → Pending orders: reads delivery nodes
README.md - Live map window → Street graph: draws map nodes
README.md - Event log → Simulation clock: timestamps events
- Pending orders → Order data: stores orders