Tasks #127

Create a plugin mechanism

Added by J. Wienke about 11 years ago. Updated over 8 years ago.

Status:ResolvedStart date:09/29/2012
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Plugins
Target version:Robotics Service Bus - rsb-0.9

Description

This mechanism must allow to dynamically load extensions into previously defined registries from a directory of shared libraries.

0001-Added-a-plugin-system-in-src-rsc-plugins-.-h-cpp.patch Magnifier (27 KB) J. Moringen, 09/16/2012 03:09 PM


Subtasks

Tasks #1176: Implement plugin mechanism for WindowsResolvedJ. Moringen

Tasks #1177: Implement plugin mechanism for MacOSResolvedJ. Moringen

Tasks #1178: Add unit tests for plugin systemResolvedJ. Wienke


Related issues

Blocks Robotics Service Bus - Feature #305: Implement plugin mechanism Resolved 05/20/2011
Blocked by Robotics Systems Commons - Tasks #1420: Simplify plugin initialization with windows export symbols Resolved 02/14/2013

Associated revisions

Revision dbea211d
Added by J. Moringen about 9 years ago

Added a plugin system in src/rsc/plugins/*.{h,cpp}

refs #127

The entry point of the plugin system is the Manager class which
maintains a plugin loadpath and a list of plugins which Plugin
objects. Plugin object basically have a name, a load() and a unload()
method.

NOTE: the current implementation is for Linux and is not portable.

  • src/rsc/plugins/Provider.h: new file; API for plugin implementors
  • src/rsc/plugins/Plugin.{h,cpp}: new files; contain Plugin class
  • src/rsc/plugins/Manager.{h,cpp}: new files; contain Manager class, a
    singleton, which manages the plugin load path and plugin list
  • src/rsc/plugins/Configurator.{h,cpp}: new files; contain
    PluginConfigurator helper class which is used to configure the
    plugin load path and load certain plugins according to the
    configuration mechanism
  • src/CMakeLists.txt: added files src/rsc/plugins/*.{h,cpp}; link
    against libdl

Revision 8ffc839e
Added by J. Moringen about 9 years ago

Added a plugin system in src/rsc/plugins/*.{h,cpp}

refs #127

The entry point of the plugin system is the Manager class which
maintains a plugin loadpath and a list of plugins which Plugin
objects. Plugin object basically have a name, a load() and a unload()
method.

NOTE: the current implementation is for Linux and is not portable.

  • src/rsc/plugins/Provider.h: new file; API for plugin implementors
  • src/rsc/plugins/Plugin.{h,cpp}: new files; contain Plugin class
  • src/rsc/plugins/Manager.{h,cpp}: new files; contain Manager class, a
    singleton, which manages the plugin load path and plugin list
  • src/rsc/plugins/Configurator.{h,cpp}: new files; contain
    PluginConfigurator helper class which is used to configure the
    plugin load path and load certain plugins according to the
    configuration mechanism
  • src/CMakeLists.txt: added files src/rsc/plugins/*.{h,cpp}; link
    against libdl

Revision 1c00f507
Added by J. Moringen about 9 years ago

Added a plugin system in src/rsc/plugins/*.{h,cpp}

refs #127

The entry point of the plugin system is the Manager class which
maintains a plugin loadpath and a list of plugins which Plugin
objects. Plugin object basically have a name, a load() and a unload()
method.

NOTE: the current implementation is for Linux and is not portable.

  • src/rsc/plugins/Provider.h: new file; API for plugin implementors
  • src/rsc/plugins/Plugin.{h,cpp}: new files; contain Plugin class
  • src/rsc/plugins/Manager.{h,cpp}: new files; contain Manager class, a
    singleton, which manages the plugin load path and plugin list
  • src/rsc/plugins/Configurator.{h,cpp}: new files; contain
    PluginConfigurator helper class which is used to configure the
    plugin load path and load certain plugins according to the
    configuration mechanism
  • src/CMakeLists.txt: added files src/rsc/plugins/*.{h,cpp}; link
    against libdl

Revision 1f3f4b49
Added by J. Moringen about 9 years ago

Added a plugin system in src/rsc/plugins/*.{h,cpp}

refs #127

The entry point of the plugin system is the Manager class which
maintains a plugin loadpath and a list of plugins which Plugin
objects. Plugin object basically have a name, a load() and a unload()
method.

NOTE: the current implementation is for Linux and is not portable.

  • src/rsc/plugins/Provider.h: new file; API for plugin implementors
  • src/rsc/plugins/Plugin.{h,cpp}: new files; contain Plugin class
  • src/rsc/plugins/Manager.{h,cpp}: new files; contain Manager class, a
    singleton, which manages the plugin load path and plugin list
  • src/rsc/plugins/Configurator.{h,cpp}: new files; contain
    PluginConfigurator helper class which is used to configure the
    plugin load path and load certain plugins according to the
    configuration mechanism
  • src/CMakeLists.txt: added files src/rsc/plugins/*.{h,cpp}; link
    against libdl

History

#1 Updated by J. Wienke over 9 years ago

  • Assignee deleted (J. Wienke)

#2 Updated by J. Moringen about 9 years ago

  • Status changed from New to In Progress
  • Assignee set to J. Moringen
  • Target version set to rsb-0.9

#3 Updated by J. Moringen about 9 years ago

Any feedback (patch is attached in case my email did not get through)?

#4 Updated by J. Moringen about 9 years ago

  • Category changed from Registry to Plugins
  • % Done changed from 70 to 90

#5 Updated by J. Moringen over 8 years ago

  • Status changed from Feedback to Resolved

Also available in: Atom PDF