Currently the application name has to start with a leading slash. This exposes an implementation details, since that name is used for the message queue name. Since there is already a Unix Domain Abstraction available we can switch now to UDS.
Detailed information
The default IPC protocol for communication between RouDi and Runtime shall be switched to UDS.
Since the registration at RouDi will happen with with a different IPC mechanism than a message queue, e.g. unix domain sockets, this implementation detail should not be exposed to the user. If the application name is used as name for an IPC channel and this channel has certain requirements for its name, those should be taken care of in the IPC abstraction.
[x] The check for the leading slash should be removed from the PoshRuntime.
[x] Switch to UDS in posh_types.hpp and adapt existing classes and test to the new protocol
[x] Rename abstract interface from "MQ" to "IPC" e.g. in RouDi
[x] Temporarly disabled outdated and broken MqInterface* tests
[x] Refactor classes for MqBase and MqInterfaces to more generic names
[x] Split into three hpp/cpp
[x] Rename to IpcInterfaceCreator, IpcInterfaceUser, IpcBase, IpcRuntimeInterface and IpcMessage
[x] Delete mqueue_MOCK
[x] Re-write iceoryx_posh/test/moduletests/test_mq_interface.cpp to test only POSH specific functionality of the IpcInterface e.g. getShmTopic(), IpcChannel is already covered by iceoryx_utils/test/moduletests/test_ipc_channel.cpp (will be addressed in #332)
[x] Fix output when publisher or subscriber is started before RouDi, command line is flooded with errors
Brief feature description
Currently the application name has to start with a leading slash. This exposes an implementation details, since that name is used for the message queue name. Since there is already a Unix Domain Abstraction available we can switch now to UDS.
Detailed information
The default IPC protocol for communication between RouDi and Runtime shall be switched to UDS. Since the registration at RouDi will happen with with a different IPC mechanism than a message queue, e.g. unix domain sockets, this implementation detail should not be exposed to the user. If the application name is used as name for an IPC channel and this channel has certain requirements for its name, those should be taken care of in the IPC abstraction.
PoshRuntime
.posh_types.hpp
and adapt existing classes and test to the new protocolMqInterface*
testsMqBase
andMqInterfaces
to more generic namesIpcInterfaceCreator
,IpcInterfaceUser
,IpcBase
,IpcRuntimeInterface
andIpcMessage
mqueue_MOCK
iceoryx_posh/test/moduletests/test_mq_interface.cpp
to test only POSH specific functionality of the IpcInterface e.g.getShmTopic()
, IpcChannel is already covered byiceoryx_utils/test/moduletests/test_ipc_channel.cpp
(will be addressed in #332)See also https://github.com/eclipse/iceoryx/pull/373/files#r525981221