Skip to content

Implement missing QoS when using intraprocess communication #752

@ivanpauno

Description

@ivanpauno

Feature request

Feature description

Implement KEEP_ALL history policy with intraprocess communication (see #727).
Implement non-volatile durability with intraprocess communication.

Implementation considerations

For sizing the buffers when KEEP_ALL history policy is used, resource limits qos policy will be needed (ros2/rmw#176).

For implementing TRANSIENT_LOCAL durability:

  • With history keep_last, the intra_process_manager could store the last message send of each publisher. Adding a map, with publisher_id as keys and storing a shared_ptr to the message sounds reasonable.
  • With history KEEP_ALL, the intra_process_manager should never pop from the internal buffer.
  • When a new subscription is created with TRANSIENT_LOCAL durability, all the messages from publishers in the same topic with TRANSIENT_LOCAL durability should be delivered (depending on subscriber and publisher history policy if the last of all the messages are delivered). When the publisher history policy was keep_last, if the message is not found in the buffer (because it was popped), it should be taken from the last_message map (mentioned above).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions