Question
When ENABLE_MULTIPLE_ROUTING_MANAGERS is enabled, the configuration plugin is bypassed and configuration_impl is instantiated directly in application_impl.cpp:
#ifndef VSOMEIP_ENABLE_MULTIPLE_ROUTING_MANAGERS
auto its_plugin = plugin_manager::get()->get_plugin(plugin_type_e::CONFIGURATION_PLUGIN, VSOMEIP_CFG_LIBRARY);
// ... uses plugin to get configuration
#else
configuration_ =
std::dynamic_pointer_cast<configuration>(std::make_shared<vsomeip_v3::cfg::configuration_impl>(configuration_path));
// ... loads configuration directly
#endif
Additionally, the vsomeip3-cfg library is not built at all when this option is enabled (CMakeLists.txt lines 294-296).
What we're trying to understand
Why does the plugin architecture break down for multiple routing managers? Is this an implementation quirk, or is there an intentional design reason for this behavior?
Context
I'm trying to extend the configuration library for a specific use case. The plugin design works great for this - I can provide a custom configuration implementation via the plugin interface. However, it appears I cannot use this approach if I also need multiple routing managers enabled.
I could try enabling both features myself, but I want to understand what design constraint or edge case this was guarding against before doing so.
Question
When
ENABLE_MULTIPLE_ROUTING_MANAGERSis enabled, the configuration plugin is bypassed andconfiguration_implis instantiated directly inapplication_impl.cpp:Additionally, the
vsomeip3-cfglibrary is not built at all when this option is enabled (CMakeLists.txt lines 294-296).What we're trying to understand
Why does the plugin architecture break down for multiple routing managers? Is this an implementation quirk, or is there an intentional design reason for this behavior?
Context
I'm trying to extend the configuration library for a specific use case. The plugin design works great for this - I can provide a custom configuration implementation via the plugin interface. However, it appears I cannot use this approach if I also need multiple routing managers enabled.
I could try enabling both features myself, but I want to understand what design constraint or edge case this was guarding against before doing so.