[Bug 500] New: Howto load external toolkits

For more infomation about this bug, visit
Summary: Howto load external toolkits
Product: OCL
Version: trunk
Platform: All
OS/Version: All
Status: NEW
Severity: enhancement
Priority: P2
Component: Deployment
AssignedTo: orocos-dev [..] ...
ReportedBy: ruben [dot] smits [..] ...
CC: orocos-dev [..] ...
Estimated Hours: 0.0

Hi,

i'm using the deployment component to start my applications. Since i have no
ORO_main anymore i cannot load the KDL-toolkit for rtt.

I see two possibilities:

The not so nice one:
add RTT::Toolkit::Import( KDL::KDLToolkit ) in every component's constructor
that uses KDL::Types

The nice one:
add some functionality to the deployer to import toolkits.

Ruben

[Bug 500] Howto load external toolkits

For more infomation about this bug, visit

Peter Soetens
<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED

--- Comment #4 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-03-13 16:45:35 ---
I've back-ported this to RTT/OCL 1.4.1, without breaking binary compatibility.

[Bug 500] Howto load external toolkits

For more infomation about this bug, visit

Peter Soetens
<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
AssignedTo|orocos- |peter [dot] soetens [..] ...
|dev [..] ... |

--- Comment #3 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-03-10 11:42:50 ---
Created an attachment (id=246)
--> (https://www.fmtc.be/bugzilla/orocos/attachment.cgi?id=246)
Automatic plugin loading mechanism for DeploymentComponent.

$ svn ci -m"Fix for bug #500: Howto load external toolkits. The deployer will
look for plugins in lib/rtt/target/plugins. Please verify that this works for
you."
Sending deployment/DeploymentComponent.cpp
Sending deployment/DeploymentComponent.hpp
Transmitting file data ..
Committed revision 29027.

[Bug 500] Howto load external toolkits

For more infomation about this bug, visit

--- Comment #2 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-03-10 11:08:48 ---
$ svn di Toolkit.hpp
Index: Toolkit.hpp
===================================================================
--- Toolkit.hpp (revision 28899)
+++ Toolkit.hpp (working copy)
@@ -132,4 +132,25 @@

}

+/**
+ * Once you defined your Toolkit Plugin static object,
+ * you can use this macro to make it available as a
+ * plugin.
+ * @note Do not use this macro inside a namespace !
+ * For example: ORO_TOOLKIT_PLUGIN ( KDL::KDLToolkit )
+ * where KDL::KDLToolkit is a global object (not a classname !).
+ */
+#define ORO_TOOLKIT_PLUGIN( TOOLKIT ) \
+ namespace RTT { class TaskContext; } \
+ extern "C" { \
+ bool loadRTTPlugin(RTT::TaskContext* ) { \
+ RTT::Toolkit::Import( TOOLKIT ); \
+ return true; \
+ } \
+ std::string getRTTPluginName() { \
+ return TOOLKIT.getName(); \
+ } \
+}
+
+
#endif
+ sspr@lt00129:~/src/Orocos/trunk/rtt/src
$ svn ci Toolkit.hpp -m"Patch for bug #500: Howto load external toolkits. Add
ORO_TOOLKIT_PLUGIN macro for making an (external) toolkit a plugin."
Sending Toolkit.hpp
Transmitting file data .
Committed revision 29024.

Use this macro to make your toolkit a plugin. The deployer needs to be adapted
as well.

[Bug 500] Howto load external toolkits

For more infomation about this bug, visit

Peter Soetens
<peter [dot] soetens [..] ...> changed:

What |Removed |Added
--------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |peter [dot] soetens [..] ...
Target Milestone|--- |1.4.1

--- Comment #1 from Peter Soetens
<peter [dot] soetens [..] ...> 2008-02-13 17:08:53 ---
The plugin mechanism for toolkits, as discussed on the mailing list, is on my
TODO list.