If I have a system which has a topic definition defined in my system module, and I want to use a 3rd party component which has a matching topic definition but has a different module name, how do I achieve this (without rebuilding the 3rd party component with a module name to match my system module) ?
The module is part of the type, so this is considered a different type by DDS. A Topic in a DDS Domain is uniquely identified by it's name and is associated with a type and a set of QoS policies.
The different types can therefore easily be used, but you cannot use the same topic name for these different types. If that is not the case you can simply register this type on your DomainParticipant and create a Topic for it.
Say I have a system with a module name myModule, which happens to have a camera attached to it with a type myCameraType and a topic myCameraTopic.
At some later date I want to change my camera and want to plug in another camera from a 3rd party supplier which has a matching topic name and type definition (apart from the module name, let's say it is 3rdPartyModule). As a 3rd party supplier they have no knowledge of my system or my system module name, so how would I achieve 'plug and play' ?
Would I have to agree a module definition with the 3rd party supplier (e.g. cameraModule) which would be used by both parties ?