[RICH -- we can make a plugin be dependent on a subsystems, right?]
Right now a subsystem is just a collection that has no manifestation in
the plugin architecture. It literally is just a holder of many plugins
that each get loaded and was put in place to simplify grouping plugin
xml data. Because of this you cannot be dependent on it.
Thus (Curt) when you specify:
<subsystem name="GuiRenderFox">
the name is ignored.
So here is the idea. Register the subsystem as a plugin using the
StandardPlugin module as its mixin (and REQUIRE a name be supplied).
would have no behavior except being dependent on all plugins specified
within it. Then you name the GuiFoxRender subsystem GuiRender instead
like this:
BEGIN freeride\plugins\System_GuiRenderFox\plugin.xml
<subsystem name="GuiRender">
<plugin name="AppFrameRenderFox" version="1.0" autoload="true">
<require>plugins/System_GuiRenderFox/AppFrameRenderFox</require>
<module>FreeRIDE::AppFrameRenderFox</module>
<properties>properties/GuiRenderFox/AppFrameRenderFox.xml</properties>
<dependency state="LOADED" action="start">
<when plugin="Logger" version="*" state="RUNNING"/>
</dependency>
</plugin>
...
END
The point here is that you should not have duplicate rendering
subsystems working at the same time in freeride, but we do want them
pluggable. So the next framework that comes along to enable rendering
would also name its subsystem GuiRender (with its inner plugins still
named specific names like AppFrameRenderFox). If someone writes a
plugin that requires the Fox GuiRender subsystem, they would set their
dependencies as GuiRender AND AppFrameRenderFox. If they just need a
GuiRender subsystem, there is only the single (pluggable) dependency
that uses whatever renderer is installed. I could also raise a fatal
error on startup if two plugins try and register under the same name
(such as if you installed two rendering subsystems at the same time).
This would be really straightforward to implement.
Thoughts?
Curt
_______________________________________________
Freeride-devel mailing list
address@hidden
http://mail.freesoftware.fsf.org/mailman/listinfo/freeride-devel
_______________________________________________
Freeride-devel mailing list
address@hidden
http://mail.freesoftware.fsf.org/mailman/listinfo/freeride-devel