Jump to content
OpenSplice DDS Forum
arose

Create topic with type name having '.' instead of '::'

Recommended Posts

Hi,

I am trying to subscribe to a publisher whose type name is formatted as "a.b.c" and written with RTI but when I try to replicate the '.' instead of '::' in opensplice I get an error when trying to create the topic.  Has anyone tried this before?  Is it even possible with opensplice?

A bit of background: I've generated the files from the .idl and have changed the '::' to '.' in the generated Xsacdcps.c file to no avail.  The error is that the type is not found.  The type is registered without an errors; the retcode is OK.

Thank you.

Share this post


Link to post
Share on other sites

editing output of idlpp is generally a bad-thing to do so I doubt that anybody else has experienced that same issue.

I'm trying to understand what you'd like to achieve .. is it about modules in the IDL (and related 'fully-qualified-type-names that migh have ::) ?

Otherwise, if its about topi-names, those can't have a '.' in them.

 

Share this post


Link to post
Share on other sites

I realise that editing the output of idlpp isn't the correct thing to do but I just wanted to try and see if it'd work.

I have a publisher (which I don't have the source code for) that has a type of parentModule.childModule.structAType (sorry, I can't post the actual type) and a topic of structA.

I've generated code using idlpp from the given idl (which does have :: in it).  When running the subscriber (without editing) it has a type of parentModule::childModule::structAType and I'm giving it a topic of structA, but when I publish I receive nothing in the subscriber.  They're on the same domain.

I thought that changing the type to be the same would fix it (hence why I edited the output of idlpp) but that just gives me the aforementioned ospl error.

Share this post


Link to post
Share on other sites

In OpenSplice the typename you pass to the register_type operation is only used inside the participant itself to locate the the meta-data given the type_name parameter of your create_topic operation. However, in the builtin topics the IDL name is always advertised, regardless of the type_name you specified in your register_type call. This is to avoid two applications compiling the same IDL but using different type_names from not being able to communicate with each other.

The IDL typename used in the builtin topic is always fully scoped, using the IDL scoping operator "::". So interopeability with other vendors is going to be hard if you do not pick the IDL type name when registering your datatype.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...