Add new event subscription methods with sync/async/noread options

  • Polish commits
  • Function level documentation
  • Add tests for new interfaces
  • #1402 (closed)

Todos from our meeting on 2025-05-23, see https://mattermost.hzdr.de/tango-controls/pl/jks13tsysiruzjqqru3ho8qtdr:

  • Only use one thread for the async case, unify with the subscribe case from an event callback. Maybe this needs more fine grained locking of the event_not_connected map?!
  • Add stateless to EventSubMode
  • Test cases for all event sub modes where the event is not enabled on the attribute
  • Tests: More test assertions for the returned event data
  • Tests: rename k_XXX constants
  • Include !1460 (merged) here
  • Async/AsyncRead: Call callback when the subscription is finished. Introduce new member for that. An int (?!) could count the number of calls to the callback.
  • Followup issue for batched event subscriptions, #1447
  • Add entries for JSON of QueryEventPerformance if required
  • cleanup commits
  • More documentation on new event modes

Other todos:

  • Use create_zmq_event_consumer unconditionally in subscribe_event methods
  • Rebase once !1462 (merged) is merged
  • Don't add match overloads accepting a pointer as these don't output stringified objects anymore, adapt tests

Done:

  • Respond to code review from TI, flesh easy parts out into !1452 (merged)

Close #1344 (closed)

Edited by Thomas Braun

Merge request reports

Loading