eclipse-cyclonedds / cyclonedds-cxx

Other
96 stars 75 forks source link

Does Shm exchange support dynamic data types now? #422

Open allenwang-git opened 1 year ago

allenwang-git commented 1 year ago

I noticed that there is a pr #137 merged in 2021, based on the Tests in the SharedMemory.cpp, the dynamic type like sequence and string should have been supported, but in #353 discussion, seems like those dynamic size type is still unsupported. My experiments lead to the same result, and the reason is IDL generator still set such a module

module UnBounded
{
  struct Msg
  {
    string unbounded_string;
    sequence<long> unbounded_sequence_long;
    sequence<boolean> unbounded_sequence_bool;
  };
};

as not self-contained data type

template <> constexpr bool TopicTraits<::UnBounded::Msg>::isSelfContained()
{
  return false;
}

Lmk if I'm wrong. but I think only self-contained data type is shm supported. right now I always get such error

  what():  Error Unsupported - sample loan failed.
===============================================================================
Context     : void org::eclipse::cyclonedds::pub::AnyDataWriterDelegate::loan_sample
Node        : UnknownNode

when I tried to use shm to exchange dynamic types. I also tried the tests u added to tests/SharedMemory.cpp, and found the generated header has the same issue. So i'm wondering if the dyn type really be supported by cyclonedds. Do u have any idea @sumanth-nirmal ?