How eclipse-score/communication works
LoLa is safety-oriented Adaptive AUTOSAR communication middleware for low-latency intra-ECU IPC. Its main workflow registers a provider’s service, lets consumers discover and subscribe, then publishes events into shared memory and notifies consumers through the messaging layer. The graph also shows method messaging, binding runtime and tracing, plus the Linux/QNX transport alternatives. Workflow stages follow the README; sampled source confirms the shared-memory storage and transport-engine responsibilities, but does not expose every call path, so uncertain wiring is omitted.
Main entry points: proxy.cpp Proxy · message_passing_service.cpp Messaging Service · skeleton.cpp Skeleton · service_discovery_client.cpp Discovery Client
Components 19
Service API
- Skeleton
score/mw/com/impl/bindings/lola/skeleton.cpp - Proxy
score/mw/com/impl/bindings/lola/proxy.cpp - Event Endpoints
score/mw/com/impl/bindings/lola - Method Endpoints
score/mw/com/impl/bindings/lola/methods - LoLa Runtime
score/mw/com/impl/bindings/lola/runtime.cpp
Discovery
- Discovery Client
score/mw/com/impl/bindings/lola/service_discovery/client/service_discovery_client.cpp - Flag Crawler
score/mw/com/impl/bindings/lola/service_discovery/flag_file_crawler.cpp - Registration Flags
score/mw/com/impl/bindings/lola/service_discovery/flag_file.cpp
Shared Data
- Service Data
score/mw/com/impl/bindings/lola/service_data_storage.h - Event Slots
score/mw/com/impl/bindings/lola/event_data_storage.cpp - Shared Memory
score/memory/shared - Tracing Runtime
score/mw/com/impl/bindings/lola/tracing/tracing_runtime.cpp
Messaging
- Messaging Service
score/mw/com/impl/bindings/lola/messaging/message_passing_service.cpp - Message Engine
score/message_passing/engine.h
Platform Transport
- Unix Engine
score/message_passing/unix_domain/unix_domain_engine.cpp - QNX Engine
score/message_passing/qnx_dispatch/qnx_dispatch_engine.cpp
Other components
- Provider App
- Consumer App
- Operating System
Connections 23
- Provider App → Skeleton: offers service
- Consumer App → Discovery Client: searches service
- Skeleton → Service Data: registers elements
- Service Data → Event Slots: maps event slots
- Discovery Client → Flag Crawler: looks up services
- Flag Crawler → Registration Flags: reads registrations
- Discovery Client → Proxy: returns matches
- Consumer App → Proxy: uses service
- Provider App → Event Endpoints: publishes events
- Event Endpoints → Event Slots: accesses slots
- Event Slots → Shared Memory: stores samples
- Proxy → Shared Memory: reads samples
- Skeleton → Messaging Service: sends notifications
- Proxy → Messaging Service: receives notifications
- Provider App → Method Endpoints: serves calls
- Consumer App → Method Endpoints: invokes methods
- LoLa Runtime → Messaging Service: uses messaging
- Messaging Service → Message Engine: uses engine
- Message Engine → Unix Engine: selects on Unix
- Message Engine → QNX Engine: selects on QNX
- Unix Engine → Operating System: uses sockets
- QNX Engine → Operating System: uses dispatch
- LoLa Runtime → Tracing Runtime: supports tracing