Code Monkey home page Code Monkey logo

iceoryx-gateway-dds's People

Contributors

dkroenke avatar eclipsewebmaster avatar mossmaurice avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

iceoryx-gateway-dds's Issues

Integrate Request-Response into DDS gateway

Brief feature description

Currently the DDS gateway only supports the publish-subscribe messaging patter

Detailed information

In order to support all iceoryx messaging pattern, the generic gateway class as well as the DDS gateway need to be extended.

Fix CI job

Brief feature description

  • CI job is properly running

DDS Gateway Housekeeping

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

Option to disable service discovery in DDS Gateways.

Brief feature description

A configuration option to disable dynamic discovery in the dds gateways.

Detailed information

There are use-cases where one might want the dds gateway to only forward data for specific topics rather than every topic that appears in the system.
This can be achieved by specifying the topics to forward (i.e. by the existing config file feature) and disabling service discovery in the gateway (missing).

Propagate and handle errors in dds gateway

Brief feature description

In iox_to_dds.inl and dds_to_iox.inl methods which are returning an cxx::expected are called but the error case is dismissed with IOX_DISCARD_RESULT. Either the cxx::expected is propagated to the user so that they can handle it or it has to be handled internally.

When this issue is closed the IOX_DISCARD_RESULT has to be gone and whenever the gateway is unable to work the user should be notified via the API.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.