Feature #305

Implement plugin mechanism

Added by J. Moringen almost 13 years ago. Updated over 11 years ago.

Status:ResolvedStart date:05/20/2011
Priority:HighDue date:
Assignee:J. Moringen% Done:

100%

Category:C++Estimated time:8.00 hours
Target version:rsb-0.9

Description

Specification is here. Required steps:
  • Decide on suitable trigger for plugin loading (rsb::init vs. rsb::Factory constructor)
  • Option handler support for plugins.cpp.path and plugins.cpp.libraries
  • Loading mechanism (e.g. dlopen)
  • Initialization mechanism (e.g extern "C" { void rsb_plugin_init() {} })

Some of these aspects should probably be handled in RSC.

0001-Added-plugin-mechanism-in-src-rsb-Factory.-h-cpp.patch Magnifier (8.75 KB) J. Moringen, 09/16/2012 03:02 PM


Related issues

Related to Robotics Service Bus - Enhancement #286: Introspectable Configuration Options [C++] In Progress 05/12/2011
Related to Robotics Service Bus - Tasks #1166: Document plugin mechanism In Progress 12/10/2012
Blocks Robotics Service Bus - Tasks #43: Encapsulate Transport Implementations in Extension Libraries Closed 09/16/2012
Blocked by Robotics Systems Commons - Tasks #127: Create a plugin mechanism Resolved 09/29/2012

Associated revisions

Revision 3e754427
Added by J. Moringen over 11 years ago

Added plugin mechanism in src/rsb/Factory.{h,cpp}

fixes #305

We basically just configure RSC's plugin mechanism with an
RSB-specific default searchpath: $HOME/.rsb$MAJOR.$MINOR/plugins and
$libdir/rsb$MAJOR.$MINOR/plugins

  • src/rsb/Factory.{h,cpp}: added function configureSubsystem; used for
    logging and plugin configuration; pass RSB configuration to RSC
    plugin mechanism and add RSB-specific default searchpath
  • src/rsb/Version.{h,cpp}.in: added Version::libdir method for
    determining the library directory of the RSB installation
  • examples/plugin/Plugin.cpp: new file; contains a minimal plugin
  • examples/CMakeLists.txt: build minimal plugin as a shared library

History

#1 Updated by J. Wienke almost 13 years ago

  • Target version changed from 0.3 to rsb-0.9

#2 Updated by S. Wrede over 12 years ago

  • Category deleted (C++)
  • Priority changed from Normal to High

#4 Updated by J. Moringen over 11 years ago

  • Category set to C++

#5 Updated by J. Moringen over 11 years ago

  • Status changed from New to In Progress
  • Assignee set to J. Moringen

#6 Updated by J. Moringen over 11 years ago

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

#7 Updated by J. Moringen over 11 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 70 to 100

Applied in changeset rsb-cpp|commit:3e75442720fca84c390bbced1d4369bc34503c4a.

Also available in: Atom PDF