eclipse-score / eclipse-score/time
Improvement: Implement the callbacks envoking
- Dominant language
- C++
- Stars
- 2
- Forks
- 12
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 24
Description
## Summary
`VehicleClockBackendImpl` (the production backend for `VehicleClock`) silently
ignores all registered callbacks. The four affected methods are no-ops:
- `SetTimeSlaveSyncDataReceivedCallback` / `UnsetTimeSlaveSyncDataReceivedCallback`
- `SetPDelayMeasurementFinishedCallback` / `UnsetPDelayMeasurementFinishedCallback`
- `SetStatusChangedCallback` / `UnsetStatusChangedCallback`
The API surface (`Clock::Subscribe()`) is fully defined and compiles,
but callbacks are never invoked at runtime.
## Location
`score/time/vehicle_time/src/details/td_impl/vehicle_clock_backend_impl.cpp`
## Acceptance Criteria
- [ ] Registered callbacks are invoked from a dedicated background thread when
new data arrives from the underlying IPC mechanism.
- [ ] `VehicleTimeStatus` callback fires unconditionally on first event after
registration, then only when flags differ from the last-fired value
(rate deviation excluded from comparison — per existing doc contract).
- [ ] `TimeSlaveSyncData` and `PDelayMeasurementData` callbacks fire on each
new frame received.
- [ ] Thread safety: concurrent `Subscribe` / `Unsubscribe` calls are safe with
respect to in-flight callback invocations.
- [ ] Existing unit tests for `vehicle_clock_backend_impl` are extended to cover
callback invocation.
- [ ] The `.. warning::` in `docs/features/time/index.rst` (VT3 section) is
removed once delivery is implemented.
## Related
- `score/time/vehicle_time/src/vehicle_clock_backend.h` — pure-virtual interface
- `docs/features/time/index.rst` — VT3 section (subscription use case)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.