Skip to content

New chunk available callback for the new C++ and C APIs  #350

Closed
@budrus

Description

Brief feature description

So far the new API allows for "normal" polling access and the usage in combination with a waitset. It shall also support the registration of callbacks similar to the old API

Detailed information

The old API had the receive handler for this see. But instead of a thread per subscriber we should go for a thread in the runtime that handles the callbacks (could even be extended to a configurable thread pool in future)

  • callbacks available for modern C++ API

  • callbacks available for C API

ToDo

  • Write design proposal with an usage example
  • enableEvent in WaitSet attachable classes should have a signature so that they can be reused by the ReactAl. Change the signature to:
/// @return invalidation callback used by the WaitSet and ReactAl
cxx::MethodCallback<void, uint64_t> enableEvent(
                     const EventTypeEnum event, 
                     iox::popo::TriggerHandle & triggerHandle);
  • Implement design proposal
  • Rename ActiveCallSet into Listener
  • [ ] Create use case based comparison table between WaitSet and callback proposal -> Extend documentation for 1.0 release and website #482
  • Update example and write a user documentation
  • Add hint that the Listener does not take ownership of the callback. (In doxygen and user docu)
  • Rename EventInfo into NotificationInfo
  • Update design document to be in sync with the final implementation
  • [ ] Update Waitset and Listener section in overview.md -> Extend documentation for 1.0 release and website #482
  • Separate WaitSet State enums from Listener Event enums (STATE_HAS_DATA, EVENT_DATA_RECEIVED)
  • hasTriggered/resetTrigger refactoring in user trigger since it is automatically resetted

Minor ToDo

  • [ ] active_call_set.hpp maybe merge indexmanager functionality into loffli -> Consolidate index queue and loffli  #680
  • Remove doesContainEventVariable from TriggerHandle.
  • Remove setEventVariable from ChunkQueuePopper.
  • [ ] Consider using the index_queue instead of loffli as active_call_set indexmanager -> Consolidate index queue and loffli  #680
  • do not iterate over array in addEvent ask event origin instead if event is already attached

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions