iceoryx icon indicating copy to clipboard operation
iceoryx copied to clipboard

Service discovery example with multiple monitoring conditions

Open MatthiasKillat opened this issue 2 years ago • 0 comments

Brief feature description

The example shall follow a SOA approach and have an API that is similar to Autosar startFindService and stopFindService. The API should be more generic where possible but illustrate the support of the use case by iceoryx.

  • monitor multiple services (or more generally, discovery conditions)
  • react on changes of this conditions by calling user specified callbacks
  • support multiple callbacks identified by handles
  • register and deregister callbacks to start monitoring

Detailed information

Except for the fact that we have some kind of discovery ABA problem, this kind of complex example can be implemented with the existing findService API and additional building blocks like listener and cxx::function.

ABA Problem: we can only react on the latest discovery change on application side, previous changes may go unnoticed. Only the Roudi knows about these changes, and we are not storing the callbacks at Roudi (as they are to be executed by the app and not remotely).

This is a generalization of #1103

MatthiasKillat avatar Feb 24 '22 15:02 MatthiasKillat