eclipse-score / eclipse-score/time

Improvement: Implement the callbacks envoking

Open
#59 0 comments 0 reactions 1 assignee Claimed by @florianfueller View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.