-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Revert "added ability to load a plugin using a operation on a task." #134
Revert "added ability to load a plugin using a operation on a task." #134
Conversation
Sounds reasonable to me. |
This merge destroyed the rtt-introspection functionality. What is the current alternative to |
I am not aware of any other quick and convenient solution, but adding this operation to each TaskContext interface is semantically wrong and might confuse users. On the long term, it would be an option to create a An easier, but more hacky solution would be to add the |
How would we register a global service ? The only reference I can get from the corba side is the TaskContext. |
That's correct and the reason why the first proposed approach would require a completely independent CORBA IDL, beyond the current TaskContext servers and proxies as an entry point. Because the remote side does not necessarily know which process is providing the named TaskContext and The second approach is probably more feasible and similar to the operation you added to the TaskContext interface, but I would only expose the access to |
I created a patch that implements the second solution: As promised, it is a bit hacky, but would solve the problem. Feel free to create a new PR if the patch also works for you, but it is more a proof-of-concept than something I would really consider to merge. Probably it would be better to implement a |
Hi, |
Hi, |
…trospection2 into rdt-toolchain-2.9 Second Introspection implementation Only the commits related to introspection of channel elements have been picked. The modifications to the TaskContext interface have later been reverted in orocos-toolchain#134.
…trospection2 into rdt-toolchain-2.9 Second Introspection implementation Only the commits related to introspection of channel elements have been picked. The modifications to the TaskContext interface have later been reverted in orocos-toolchain#134.
This PR reverts commits 9011cf9 and 9c9e008 from #90, that add a
loadPlugin()
operation to the TaskContext interface.Alternative solutions are:
import()
operation is doing exactly the same)loadPlugin()
operation to one application-specific subclass instead of to the base classTaskContext
It should be noted that there is a difference between loading a plugin (in the process) and loading a service (in a component or in the global service). Plugins can provide a service, but they can also provide typekits, transports or do something completely different. And of top of that there are packages, which are basically collections of component libraries and/or plugins. Some APIs in RTT do not clearly separate these two concepts (e.g.
PluginLoader::loadPlugin(name, path_list)
, which actually loads all plugins provided by a package calledname
).So generally loading a plugin is not related to a specific component (you are not passing the
this
pointer to anyone). What you probably wanted to do is to load a service plugin in the TaskContext based on the name of the plugin or package that provides this service (which may not be a 1:1 mapping if the package provides more than one service). This sounds more like an extension of the existingloadService()
operation than a task for a separate operation.