plugin library
I'm just dropping here a link and few short observations... It's more a post-it note than anything else.
We were discussing long ago about having a proper plugin scheme in Wolf allowing clean separated development & smaller libraries articulated around a wolf_core
.
I had to dig a bit in how rosplugin
does it for another project and seen that its actually a wrapper for a ROS-independent lib called class_loader
.
Briefly, class_loader
deals with the factory aspect of the plugin scheme. Registering plugins (dll) and loading/unloading them given the full path to the library.
rosplugin
is a wrapper allowing to export the plugin in the ROS environment so that they can be found at runtime without specifying its full path but only the package that contains it and its registration key.
In short we could (easily?) use class_loader
in wolf so that most of our derived classes are independent plugins, but to do so we would need to develop a wrapper wolf_plugin
that allows to find painlessly the full path of a plugin (its dll) at runtime.