Skip to content

DDS Gateway Housekeeping #5

@mossmaurice

Description

@mossmaurice

Brief feature description

The following maintenance tasks need to be done to keep the dds gateway code healthy:

  • Update CMake build to retrieve cyclonedds-cxx library from the official github repository
  • Refactor gateways to use new publisher/subscriber APIs
  • Bring test coverage up to at least 70%
  • Utilize the improved waitset to make the gateways reactive
  • make DataWriter::write return a cxx::expected
  • add convertor from mepoo::ChunkHeader to dds::IoxChunkDatagramHeader
  • Findings budrus test run:
  • No documentation how to setup a config file
  • When building with the build script the cyclone libraries are in ...build/dependencies/install/lib64 (not documented but needed for setting LD_LIBRARY_PATH
  • The default config should include the icedelivery topic. This allows to have a first running example with icedelivery
  • "Terminated" endless loop when RouDi gets killed?
  • Replace Channel concept with cxx::pair (needs to be implemented)

These should be completed before further extension of the gateway.

Some ToDo items from #360:

  • Modify implementation of iox::dds::CycloneDataReader::hasNewSamples() so it can be made const
  • Resolve mismatch of uint sizes of nextSampleSize in CycloneDataReader::peekNextSize()
  • Add error handling to semaphore creation in Iceoryx2DDS main.cpp
  • Simplify three nested lambdas in void DDS2IceoryxGateway<channel_t, gateway_t>::forward(). For example
    auto maybeNextSize = reader->peakNextSize();
    if(!maybeNextSize)
    {
        continue;
    }
    auto& size = maybeNextSize.value();
    ...
    
    and only use for for reader->takeNext the approach with the lambda.
    It would be more code, but also less complex

Metadata

Metadata

Assignees

Labels

good first issueGood for newcomersrefactoringCode changes without introducing new features

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions